Olá galera, nesta Quick Tips, irei continuar o exemplo do Client FTP, neste momento vamos implementar dois método importantes na nossa aplicação. Localize a seção Private da sua Unit, e vamos a declaração dos mesmos.
Antes, vamos adicionar algumas imagens no nosso TImageList, adicione apenas 3, a sua escolha, pois vamos usar estas logo nestes métodos, para quem esta com dúvidas você deve antes selecionar o TreeView, e ir na propriedades Images, e logo em seguida selecionar o Imagelist1, para ver o efeito que vamos mostrar logo abaixo.
private
{ Private declarations }
procedure ListarArquivos(NodePai : TTreeNode; Diretorio: String);
function CaminhoCompleto: String;Como nossos métodos declarados, vamos usar a combinação de Teclas CTRL + Shift + C, para implementarmos estes.
Implementando o método CaminhoCompleto
function TFrmPrincipal.CaminhoCompleto: String;
var
NoRaiz:TTreeNode;
S : String;
begin
if TreeView1.Selected = nil then
Exit;
S := '';
NoRaiz := TreeView1.Selected;
if not (NoRaiz = TreeView1.Selected.GetLastChild) then
While NoRaiz.Parent <> nil do
begin
NoRaiz := NoRaiz.Parent;
S := S + NoRaiz.Text + '/';
end;
Result := s + TreeView1.Selected.Text;
end;Implementando o método ListarArquivos
procedure TFrmPrincipal.ListarArquivos(NodePai: TTreeNode; Diretorio: String);
var
I, J: Integer;
Node : TTreeNode;
begin
Try
IdFTP1.Connect;
IdFTP1.ChangeDir(Diretorio);
IdFTP1.List(nil);
if NodePai <> Nil then
if NodePai.HasChildren then
NodePai.DeleteChildren;
for I := 0 to IdFTP1.DirectoryListing.Count - 1 do
begin
Node := TTreeNode.Create(TreeView1.Items);
Node.Text := IdFTP1.DirectoryListing.Items[I].FileName;
if (Node.Text = '.') or (Node.Text = '..') then
Continue;
if NodePai = Nil then
Node := TreeView1.Items.Add(Nil, Node.Text)
else
Node := TreeView1.Items.AddChild(NodePai, Node.Text);
if IdFTP1.DirectoryListing.Items[I].ItemType = ditDirectory then
Node.ImageIndex := 0
else
if IdFTP1.DirectoryListing.Items[I].ItemType = ditFile then
begin
Node.ImageIndex := 1;
Node.SelectedIndex := 2;
end;
end;
finally
IdFTP1.Disconnect;
end;
end;Fico por aqui ate à próxima Quick Tips. Aguarde a próxima parte.
Um abraço.