listar nomes de arquivos usando combobox

27/02/2006

olá amigos por favor uma dúvida simples

eu tenho um diretório com inumeros documentos *.doc e *.txt

eles estão sempre em mudança....

como posso mostrar a lista deles em ordem alfabetica usando um combobox???????


Crcam

Respostas

27/02/2006

Aroldo Zanela

Colega,

Acredito que não seja necessário adicionar nenhum esclarecimento além do já inserido no código:

var I: Integer;
    SR: TSearchRec;// Não é uma classe e sim um Record, ou seja, não é instanciado
    Lista: TStringList;
begin
  cbb1.Clear;// Componente ComboBox no formulário

  Lista:= TStringList.Create;// Instanciar objeto da classe TStrinList
  I := FindFirst( ´c:\*.*´, faArchive, SR);// Zero se encontrar
  while I = 0 do
  begin
    if (sr.Attr and faArchive) = sr.Attr then
    begin
      Lista.Add(SR.Name)
    end;
    I := FindNext(SR);
  end;
  FindClose(SR);// Liberar

  Lista.Sort;// Classificar os itens adicionados na lista
  cbb1.Items.Assign(Lista);// "Carregar" o ComboBox com a lista já ordenada
  Lista.Free;
end;



Responder Citar

28/02/2006

Crcam

legal so que achei uma falha se o caminho for extenso ou conter um nome de dirtório elaborado o Lista: TStringList; fica () ou seja ele não carrega.

eu fiz uma pesquisa em uns livros e achei algo similar ao seu código mas tem a mesma falha

veja o codigo abaixo:
var TS: TSearchRec; iREt : Integer;
begin
// tratamento skin
iRet := FindFirst((ExtractFilePath(Application.ExeName))+´Skins\*.skn´, faAnyFile, TS);
While iRet = 0 do
begin
if (TS.Attr and $20) > 0 then
ComboBox_Skin.Items.Add((TS.Name));
iRet := FindNext(TS);
end;
FindClose(TS);
// fim tratamento skin
end;

o que pode estar occorrendo?


Responder Citar

28/02/2006

Aroldo Zanela

Colega,

Você pode dar um exemplo de um caminho extenso ou nome de um diretório elaborado para que eu possa testar?


Responder Citar