Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > папки в ComboBox


Автор: CompWorm 14.8.2006, 22:00
подскажите плиз какой-нибудь простой способ вывода названий  папок, лежащих в конкретной папке, в виде списка ComboBox
smile 

Автор: Foley 14.8.2006, 22:06
Для этого есть стандартные компаненты, которые находятся на палитре компанент (по моему вкладка Вин32 или что-то подобное) поищи.

Автор: CompWorm 14.8.2006, 22:20
несомненно есть.
и все же... 

нашел примерчик http://forum.vingrad.ru/index.php?showtopic=81378
но не получается переделать под ComboBox. smile 

Автор: Alexeis 15.8.2006, 00:21
Этот компанент называется TShellComboBox и находится на палитре Samples

Автор: Teran 15.8.2006, 08:27
Код

function GetDirs(const ADir: string): TStrings;
var
  lSR: TSearchRec;
  lDir, lTmp: string;
begin
  Result := TStringList.Create;
  if DirectoryExists(ADir) then
  begin
    lDir := IncludeTrailingPathDelimiter(ADir) + '*.*';
    if (FindFirst(lDir, faAnyFile, lSR) = 0) then
    begin
      try
        repeat
          if (lSR.Name <> '.') and (lSR.Name <> '..') then
          begin
            lTmp := ADir + lSR.Name;
            if DirectoryExists(lTmp) then
              Result.Add(lTmp);
          end;
        until FindNext(lSR) <> 0;
      finally
        FindClose(lSR);
      end;
    end;
  end;
end;

procedure TForm1.ButtonClick(Sender: TObject);
begin
ComboBox.Items:=GetDirs('c:\');
end;

а лучше использовать кже готовые TShellComboBox,TShellListView,TShellTreeView

Автор: Romikgy 15.8.2006, 09:22
Код

var lb: TListBox;

begin
lb:=TListBox.Create;
SendMessage(lb.Handle,LB_DIR,DDL_DIRECTORY    ,    
 Longint(Pchar(str+'*.*')));
ComboBox1.Items.Assign(lb.Items);
lb.Free;
end;

Автор: CompWorm 16.8.2006, 04:40
спасипа!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)