TreeView .Locate

Delphi

25/07/2005

Boa Tarde Pessoal!

Sou novo na área de programação e estou com uma dúvida que pode ser básica mas eu não estou conseguindo resolver.

Eu tenho um TreeView no meu Form, ele está funcionando blz, mas não estou conseguindo excluir as informações do banco no momento em que se é clicado o botão excluir... Ele exclui sempre o primeiro registro da tabela, e não o registro que eu selecione, sei que preciso fazer um ´locate´ para que no momento da seleção seja procurado o registro correspodente, mas não estou conseguindo.


Será que alguém pode me ajudar????

Edivaldo André Pereira


Edivaldo_ap

Edivaldo_ap

Curtidas 0

Respostas

Rjun

Rjun

25/07/2005

Eu não sei que tipo de informações você esta exibindo. Vamos supor que seja uma tabela de produtos e você esteja exibindo o nome do produto na treeview. Você teria que pegar o item selecionado no momento em que o botão de excluir é pressionado e dar um locate.

qryProduto.Locate(´Nome´, [texto], []);
qryProduto.Delete;


Na minha opinião, utilizar estrutura em árvoce para fazer edição de registros não é muito bom, ja que você teria que fazer tudo via código.


GOSTEI 0
Thiago Vidal

Thiago Vidal

25/07/2005

Eu costumo fazer assim:

Enquanto vc está montando o TreeView, vc pode definir a propriedade Data para o Bookmark atual do DataSet... e em seguida, vc só precisa recuperá-la.

Por Exemplo... enquanto vc monta o Tree
procedure TForm1.MontaTree;
var
n: TTreeNode;
begin
  ClientDataSet1.First;
  while not ClientDataSet1.Eof do
  begin
    n := TTreeNode.Create(TreeView1.Items);

[b]    n.Data := ClientDataSet1.GetBookmark;[/b]
    n.Text := ClientDataSet1.Fields[0].Text;

    TreeView1.Items.Add(n, n.Text);

    ClientDataSet1.Next;
  end;

end;

procedure TForm1.TreeView1Click(Sender: TObject);
begin
  ClientDataSet1.GotoBookmark(TreeView1.Selected.Data);
  ClientDataSet1.Delete;
  TreeView1.Selected.Delete;
end;


Claro que seria bom fazer algumas validações, mas o básico é isso aí.


GOSTEI 0
Edivaldo_ap

Edivaldo_ap

25/07/2005

Eu acho que é isso mesmo que estou procurando, vou testar...

Obrigado, Thiago Vidal.

Edivaldo André Pereira


GOSTEI 0
POSTAR