listar nomes de arquivos usando combobox
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???????
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
Curtidas 0
Respostas
Aroldo Zanela
27/02/2006
Colega,
Acredito que não seja necessário adicionar nenhum esclarecimento além do já inserido no código:
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;
GOSTEI 0
Crcam
27/02/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?
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?
GOSTEI 0
Aroldo Zanela
27/02/2006
Colega,
Você pode dar um exemplo de um caminho extenso ou nome de um diretório elaborado para que eu possa testar?
Você pode dar um exemplo de um caminho extenso ou nome de um diretório elaborado para que eu possa testar?
GOSTEI 0