Problemas ListView
Quando adiciono um item no ListView em run time não aparece o caption do ítem. Quando adiciono em design time aparece o caption que dou para ele. Alguém sabe porque isso? Estou esquecendo de setar alguma propriedade?
segue abaixo o código que utilizo para adicionar o ítem, onde lv é TListView
Obrigado
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
Curtidas 0
Respostas
Andremuller
12/01/2005
sobe
GOSTEI 0
Andremuller
12/01/2005
Resolvido.
Não sei porque motivo, mas deve-se setar o caption depois de adicionar o objeto. Como no código abaixo
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
Macario
12/01/2005
Pode-se usar o metodo Invalidate;
GOSTEI 0
Andremuller
12/01/2005
obrigado pela resposta, mas o método enviado não funcionou, segundo código abaixo:
De qualquer forma, como já envie no e-mail anterior, encontrei uma solução, apesar que eu preferiria utilizar algum método como o Invalidade para qualificar mais o código.
Obrigado
var oItem: TListItem; begin oItem := TListItem.Create(lv.Items); oItem.ImageIndex := 0; oItem.Caption := ´Teste´; lv.Items.AddItem(oItem); lv.Invalidate;
Obrigado
GOSTEI 0
Massuda
12/01/2005
Apenas por curiosidade...
Eu nunca tive o problema que você descreveu. O código que uso para incluir um item em um list view é algo do tipo...Entretanto, seu código...não compila... dá o erro
Qual versão de Delphi você está usando?
A variável lv é um TListView?
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);
Undeclared identifier: ´AddItem´
Qual versão de Delphi você está usando?
A variável lv é um TListView?
GOSTEI 0
Andremuller
12/01/2005
Utilizo Delphi6 e lv é um TListView .
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
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
Massuda
12/01/2005
Utilizo Delphi6 [...]
Tá explicado... no momento estou usando D5.GOSTEI 0
Macario
12/01/2005
Ola eu utilizado a ListView em substituição do DBGrid
Pelo metodo OnData do ListView faço o seguinte
Obs: Setar a propriedade Owner para [b:92c7adf6fa]True[/b:92c7adf6fa]
Uso isso no Delphi 6 usando ClientDataSet pra alimentar os dados
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