Array
(
)

listar nomes de arquivos usando combobox

Crcam
   - 27 fev 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???????


Aroldo Zanela
   - 27 fev 2006

Colega,

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

#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;



Crcam
   - 28 fev 2006

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?


Aroldo Zanela
   - 28 fev 2006

Colega,

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