Fórum Escrever valor de um parametro na TreeView #295795
16/09/2005
0
Estou com um pequeno problema, é não estou a ver a solução. Explicando, estou a cria uma treeview segundo uma tabela que é o menu o problema é que eu queria escrever o valor do campo ´Codigo´ na tree, para quando clicar nela com o mouse obtevesse esse código e procurava o formulário para o chamar. Esse código é númerico. Só que não estou conseguir nenhuma propriedade da treew que possa colocar. No MainMenu era fácil bastava escrever no propriedade TAG e no treeview alúém sabe?
Estou a cria os nós da tree com o seguinte código
Node := TreeView1.Items.Add(nil, Qry.FieldByName(´descrimenu´).AsString); ... Node := TreeView1.Items.Addchild(Nod, Qry.FieldByName(´descrimenu´).AsString);
Para o MainMenu era assim que fazia, mas para a Tree?
Item := TMenuItem.Create(nil); Item.Caption := Qry.FieldByName(´descrimenu´).AsString; Item.Tag := Qry.FieldByName(´CODIGO´).AsInteger; item.ImageIndex := Qry.FieldByName(´imagem´).AsInteger;
Porty
Curtir tópico
+ 0Posts
16/09/2005
Ipc$
Node := TreeView1.Items.Add(nil, Qry.FieldByName(´descrimenu´).AsString); Node.Data := AllocMem(4); Move(Qry.FieldByName(´CODIGO´).AsInteger, Node.Data^, 4);
var Codigo:Integer; begin Codigo := PInteger(TreeView1.Selected.Data)^; end;
Gostei + 0
16/09/2005
Ipc$
Codigo := Qry.FieldByName(´CODIGO´).AsInteger; Move(Codigo, Node.Data^, 4);
Gostei + 0
16/09/2005
Porty
Node := TreeView1.Items.Add(nil, Qry.FieldByName(´descrimenu´).AsString); Node.Data := AllocMem(4); Move(Qry.FieldByName(´CODIGO´).AsInteger, Node.Data^, 4);
[/quote:b74c46bcfa]
Ao colocar esre código dá o seguinte erro:
error unTree.ps(271):Variable required
Já agora pode dizer como faço isto:
Gostei + 0
16/09/2005
Ipc$
Gostei + 0
16/09/2005
Porty
Ao colocar o seguinte código dá Erro:
Move(Qry.FieldByName(´CODIGO´).AsInteger, Node.Data^, 4);
O erro que dá é: Error UnTree.pas(271): Variable required
Gostei + 0
16/09/2005
Ipc$
Codigo := Qry.FieldByName(´CODIGO´).AsInteger; Move(Codigo, Node.Data^, 4);
Gostei + 0
16/09/2005
Porty
Obrigada
Gostei + 0
16/09/2005
Ipc$
FreeMem(Node.Data);
Gostei + 0
16/09/2005
Porty
FreeMem(Node.Data);
Mas devo colocar este código qd? Depois de Criar a Tree, no momento de fechar aplicação??. Se for no momento de fechar aplicação acho que não é necessário pois o proprio delphi encarrega-se de fechar tudo certo?
Gostei + 0
16/09/2005
Ipc$
Libere quando vc não for mais precisar dos códigos armazenados lá.
Teoricamente no fechamento do aplicativo, toda a memória é liberada, mas particularmente prefiro liberar a memória que aloco.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)