Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
DiogoDF83 Novato
Registrado: Sexta-Feira, 19 de Novembro de 2021 Mensagens: 20
|
Enviada: Sex Dez 10, 2021 5:46 pm Assunto: [RESOLVIDO]tlpListview |
|
|
Boa tarde pessoal
Estou trabalhando com um tlpListview.
Porém estou querendo inserir em um novo campo,
tipo, campo Informação, colocar um ícone ou imagem de um envelope.
código | nome | Idade | Informações
1 ...... Aluno...... 16 .......... <- aqui vai um icone ou imagem de um envelope, que ao clicar abre um novo form e insere Informações.
não consegui encontrar nenhum material sobre isso.
Se alguém tiver eu agradeço.
Abraço
Editado pela última vez por DiogoDF83 em Qui Dez 23, 2021 4:41 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qui Dez 16, 2021 5:57 pm Assunto: |
|
|
Adicione a imagem em um componente ImageList.
No listview você seta o ImageList na propriedade SmallImages.
E ao adicionar o item use a propriedade SubItemImages para setar o índice da imagem no Listview.
Veja um exemplo:
Código: | var
Item: TListItem;
begin
ListView1.SmallImages := ImageList1;
ListView1.ViewStyle := vsReport;
with Item do
begin
Item := ListView1.Items.Add;
Caption := '1'; // 1º coluna
SubItems.Add('Aluno'); // 2º coluna
SubItems.Add('16'); // 3º coluna
SubItems.Add(''); // 4º coluna
SubItemImages[2] := 0; // atribui primeira imagem do ImageList1 na coluna 4 do Listview
end;
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
DiogoDF83 Novato
Registrado: Sexta-Feira, 19 de Novembro de 2021 Mensagens: 20
|
Enviada: Qui Dez 23, 2021 9:23 am Assunto: cooredenadas do mouse |
|
|
Blz. entendi. Mas surgiu um novo problema.
Eu preciso agora ao clicar o mouse dentro do listview identifique qual coluna q eu cliquei
Código: |
var
pt : TPoint;
cel : TListItem;
begin
cel := ListaCartoes.Selected;
pt := ListaCartoes.ClientToScreen(cel.Position);
if ListaCartoes.Columns.Items[8].Caption = 'Observação Coleta' then
...
|
no IF quero testar se a coluna[]. caption é a coluna que cliquei
eu preciso de uma coordenada que identifique isso
Obrigado! |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qui Dez 23, 2021 3:41 pm Assunto: |
|
|
Veja se o código abaixo ajuda:
Adicione CommCtrl na uses do form:
Código: | var
pt: TPoint;
Item: TListItem;
hittestinfo: TLVHitTestInfo;
indice: Integer;
begin
indice:= -1;
pt := ListaCartoes.ScreenToClient(mouse.cursorpos);
Item := ListaCartoes.GetItemAt(pt.X, pt.Y);
FillChar(hittestinfo, sizeof(hittestinfo), 0);
hittestinfo.pt := pt;
If ListaCartoes.Perform(LVM_SUBITEMHITTEST, 0, lParam(@hittestinfo)) <> -1 then
indice := hittestinfo.iSubItem;
if indice > -1 then
begin
ShowMessage('Indice coluna clicada :' + IntToStr(indice));
ShowMessage('Titulo coluna clicada :' +ListaCartoes.Columns.Items[indice].Caption);
end
else
Showmessage('Não foi possível identificar a coluna clicada.')
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
DiogoDF83 Novato
Registrado: Sexta-Feira, 19 de Novembro de 2021 Mensagens: 20
|
Enviada: Qui Dez 23, 2021 4:38 pm Assunto: |
|
|
Deu certinho.
Muito Obrigado!
Abraço |
|
Voltar ao Topo |
|
|
|