TreeView e DBGrid

Delphi

17/06/2013

Boa Tarde!

Queria saber se tem algum jeito de quando eu Clicar em um nó da TreeView ele selecionar a linha relacionada a esse nó

pois na hora de excluir o eu consigo excluir o no da TreeView mas não da tabela.



Uso delphi 7
Eduardo Mendonça

Eduardo Mendonça

Curtidas 0

Respostas

Junior Miranda

Junior Miranda

17/06/2013

Posta como está fazendo a exclusão.

[]`s
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/06/2013

{Make sure somthing is selected, before trying to delete it}
  if(  TrV.Selected = nil  ) then
  begin
    Beep;
    ShowMessage('Nothing selected');
    Exit;
  end;

  {Dont allow user to delete the root node}
  if(TrV.Selected.Level = 0) then
  begin
    Beep;
    ShowMessage('Cant delete the root node');
    Exit;
  end;

  if Application.MessageBox(PChar('Deseja Realmente EXCLUIR '+
                     TNoData(TrV.Selected.Data).sText+'?'),'Pergunta', MB_YESNO+
                                     MB_ICONQUESTION+MB_DEFBUTTON2) <> IDNO then
  begin
    DM.tArq.Locate('nome_do_arquivo', TNoData(TrV.Selected.Data).sText,[]);
    {Apagar arquivos}
    Windows.DeleteFile(PChar(Trim(DM.TParCaminho.AsString)+TNoData(TrV.Selected.
                                                                  Data).sText));
   // dbgArquivo.SelectedRows.Delete;
    DM.qArq.Delete;

    {Free the class}
    if(TrV.Selected.Data <> nil) then
      TNoData(TrV.Selected.Data).Free;
    {Delete the node}
    TrV.Selected.Delete;

    DM.qArq.Close;
  end;


Só que quando estou excluindo ele da uma msg de erro + ele exclui o arquivo e exclui na hora da tree só não no banco
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/06/2013

Se possível queria ver como faço para excluir somente o ultimo registro do banco e da arvore.
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/06/2013

Oi! Bom Dia!

Eu Consegue Fazer a parte de Clicar e levar a seleção para o DBGrid só que ele não apaga a linha a linha do banco refente onde eu clico. Ficou assim o código do botão para apagar da árvore e do banco:
procedure TfVisualizador.btnDelArquivoClick(Sender: TObject);
var
  vNomeArquivo : String;
begin
  {Certifique-se de somthing é selecionado, antes de tentar apagá-lo}
  if(TrV.Selected = nil) then
  begin
    Beep;
    ShowMessage('Selecione um item');
    Exit;
  end;

  {Não permite que o usuário exclua o nó raiz} 
  if(TrV.Selected.Level = 0) then
  begin
    Beep;
    ShowMessage('Não é possível excluir o processo!');
    Exit;
  end;

  {Não permite que o usuário exclua os Nós que não seja o ultimo  }
  if not(TrV.Selected.Index = (DM.qQt.FieldByName('NUM_PAGINAS').Value -1)) then
  begin
    Beep;
    ShowMessage('Não é possível excluir o nó!');
    Exit;
  end;

  if Application.MessageBox(PChar('Deseja Realmente EXCLUIR '+ TNoData(TrV.Selected.Data).sText+'?'),'Pergunta', 
                                                               MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2) <> IDNO then                
                                     
  begin
    vNomeArquivo := TNoData(TrV.Selected.Data).sText;

    {Apagar arquivos}               {Cominho do Arquivo    + Nome Do arquivo} 
    Windows.DeleteFile (PChar(Trim(DM.TParCaminho.AsString)+vNomeArquivo));

    dbgArquivo.SelectedRows.Delete; // Já testei isso e não funfou para apagar a linha 

    DM.qArq.Delete;

    {Free the class}
    if(TrV.Selected.Data <> nil) then
      TNoData(TrV.Selected.Data).Free;

    {Deleta o no da Árvore } 
    TrV.Selected.Delete;

    btnArvoreClick(Self);
  end;
end;//Fim do btnDelArquivo OnClick
GOSTEI 0
POSTAR