Fórum Problemas ListView #265055
12/01/2005
0
segue abaixo o código que utilizo para adicionar o ítem, onde lv é TListView
var oItem: TListItem; begin oItem := TListItem.Create(lv.Items); oItem.Caption := ´Teste´; oItem.ImageIndex := 0; lv.Items.AddItem(oItem);
Obrigado
Andremuller
Curtir tópico
+ 0Posts
12/01/2005
Andremuller
Gostei + 0
12/01/2005
Andremuller
Não sei porque motivo, mas deve-se setar o caption depois de adicionar o objeto. Como no código abaixo
var oItem: TListItem; begin oItem := TListItem.Create(lv.Items); oItem.ImageIndex := 0; lv.Items.AddItem(oItem); //tem que setar depois senão não funciona lv.Items[lv.Items.IndexOf(oItem)].Caption := ´Teste´; end;
Gostei + 0
12/01/2005
Macario
Gostei + 0
13/01/2005
Andremuller
var oItem: TListItem; begin oItem := TListItem.Create(lv.Items); oItem.ImageIndex := 0; oItem.Caption := ´Teste´; lv.Items.AddItem(oItem); lv.Invalidate;
Obrigado
Gostei + 0
13/01/2005
Massuda
Eu nunca tive o problema que você descreveu. O código que uso para incluir um item em um list view é algo do tipo...
var oItem: TListItem; begin oItem := lv.Items.Add; oItem.Caption := ´Teste´; oItem.ImageIndex := 0;
var oItem: TListItem; begin oItem := TListItem.Create(lv.Items); oItem.Caption := ´Teste´; oItem.ImageIndex := 0; lv.Items.AddItem(oItem);
Qual versão de Delphi você está usando?
A variável lv é um TListView?
Gostei + 0
13/01/2005
Andremuller
Achei que o método AddItem poderia então ter sido escrito aqui na empresa porém verifiquei que ele realmente é um método da ComCtrls (function TListItems.AddItem(Item: TListItem; Index: Integer): TListItem;) e consta no help do Delphi.
Apesar da solução postada por mim resultar no mesmo que postou o colega Massuda, achei o código dele mais coerente e organizado, vou adotá-lo.
Obrigado
Gostei + 0
13/01/2005
Massuda
Gostei + 0
13/01/2005
Macario
Pelo metodo OnData do ListView faço o seguinte
procedure TFrmBoletoLaser.lsvRetornoData(Sender: TObject; Item: TListItem); begin cdsRetorno.RecNo := (Item.Index+1); Item.Caption := cdsRetornoTIPO.DisplayText; Item.SubItems.Add(cdsRetornoDoc.DisplayText); Item.SubItems.Add(cdsRetornoTITULO.DisplayText); Item.SubItems.Add(cdsRetornoDESCRICAO.DisplayText); Item.SubItems.Add(cdsRetornoDATVEN.DisplayText); Item.SubItems.Add(cdsRetornoVLRTITULO.DisplayText); Item.SubItems.Add(cdsRetornoVLRPGTO.DisplayText); Item.SubItems.Add(cdsRetornoDATENT.DisplayText); Item.SubItems.Add(cdsRetornoDATLIQ.DisplayText); Item.SubItems.Add(cdsRetornoVLRJUROS.DisplayText); Item.SubItems.Add(cdsRetornoVLRIOF.DisplayText); Item.SubItems.Add(cdsRetornoVLRABAT.DisplayText); Item.SubItems.Add(cdsRetornoVLRDESC.DisplayText); Item.SubItems.Add(cdsRetornoVLRMORA.DisplayText); Item.SubItems.Add(cdsRetornoNBANCO.DisplayText); case StrToInt(cdsRetornoTIPO.AsString) of 2: Item.ImageIndex := 0; 3: Item.ImageIndex := 1; 6: Item.ImageIndex := 2; 10: Item.ImageIndex := 3; 11: Item.ImageIndex := 4; 12: Item.ImageIndex := 5; 15: Item.ImageIndex := 6; 17: Item.ImageIndex := 7; 23: Item.ImageIndex := 8; 26: Item.ImageIndex := 9; 34: Item.ImageIndex := 10; 51: Item.ImageIndex := 11; 52: Item.ImageIndex := 12; 53: Item.ImageIndex := 13; end; end;
Obs: Setar a propriedade Owner para [b:92c7adf6fa]True[/b:92c7adf6fa]
Uso isso no Delphi 6 usando ClientDataSet pra alimentar os dados
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)