Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вход в папку в компоненте DirectoryListBox


Вход в папку ©   (2008-04-17 14:07:00) 

Есть компонент DirectoryListBox показывающий все папки на диске С, в цикле устанавливаю курсор по очереди на первую папку, потом на вторую, затем на третью и тд., пока не будут перебраны все папки находящиеся на диске С, в компоненте FileListBox отображается содержимое папки, в которой я нахожусь. Проблема в том, что когда я по циклу указываю на папку, то я не вхожу в неё и соответственно в FileListBox не отображается её содержимое, а отображается содержимое корня диска С. Подскажите пожалуйста, как можно сделать так, чтобы программа сама вошла в папку выбраную в компоненте DirectoryListBox?


Вход в папку   (2008-04-17 15:31:00) [1]

спасибо большое!!!


Palladin   (2008-04-17 15:29:00) [2]

) интересный ты фрукт... несообразительный какой то...

осталось сделать несколько волшебных изменений

procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:Integer;
 d:TStringList;
begin
 DirectoryListBox1.Directory:='I:\';
 d:=TStringList.Create;
 Try
  d.AddStrings[DirectoryListBox1.Items];
  for i:=0 to d.count-1 do
   begin
    DirectoryListBox1.Directory:='I:\'+d[i];
    Application.ProcessMessages;
    for j:=0 to FileListBox1.Items.count-1 do
     DeleteFile('I:\'+{ а путь то текущий пушки прибавлять будет? }+d[i]+'\'+FileListBox1.Items[j]);

   end;
 Finally
  d.Free;
 End;
end;

наслаждайся...


Вход в папку   (2008-04-17 15:24:00) [3]

добавил строчку:   DirectoryListBox1.Directory:=DirectoryListBox1.Items[i]; всё стало работать, в папку входит, но почему-то не выполняет действие в самой папке, хотя выполняет эти же действия до входа в папку, вот текст процедуры:

procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
begin
DirectoryListBox1.Directory:='I:\';
for i:=0 to DirectoryListBox1.Items.count-1 do
begin
 DirectoryListBox1.ItemIndex:=i;
 DirectoryListBox1.Directory:=DirectoryListBox1.Items[i];
 Application.ProcessMessages;
 for j:=0 to FileListBox1.Items.count-1 do
 begin
  DeleteFile('I:\'+FileListBox1.Items[j]);
 end;
end;
end;


Palladin   (2008-04-17 15:17:00) [4]

ну так и войди в нее... назначь DirectoryListBox.Directory новое значение...


Вход в папку   (2008-04-17 15:16:00) [5]


> А можно объяснить, что-такое "вход в папку"?

то есть нужно чтобы при выделении в DirectoryListBox например папку 1 диска С, программа не просто выделила эту папку, а вошла в неё, то есть чтобы в FileListBox отобразилось содержимое этой папке, ну как если просто щёлкнуть по папке мышкой, чтобы зайти туда, а нужно чтобы программа сама кабы щёлкнула.


Вход в папку   (2008-04-17 15:11:00) [6]

да, назначил - FileListBox1


Palladin   (2008-04-17 15:03:00) [7]


> Вход в папку   (17.04.08 14:55) [11]

ну а свойство DirectoryListBox.FileList назначено?


Плохиш   (2008-04-17 15:01:00) [8]

А можно объяснить, что-такое "вход в папку"?


Вход в папку   (2008-04-17 14:55:00) [9]

ну, у меня просто действия по таймеру выполняются. попробовал на кнопку поставить, всё нормально, переходит на след. строку, вот только не входит в тут папку которая указана в DirectoryListBox.


Palladin   (2008-04-17 14:52:00) [10]

читать до просветления
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1208032052&n=18


Palladin   (2008-04-17 14:50:00) [11]

ммать... ты на кой это в таймер запихал то?


Вход в папку   (2008-04-17 14:46:00) [12]

procedure TForm1.Timer1Timer(Sender: TObject);
var
i,j:Integer;
begin
DirectoryListBox1.Directory:='I:\';
for i:=0 to DirectoryListBox1.Items.count-1 do
begin
 DirectoryListBox1.ItemIndex:=i;
 Application.ProcessMessages;
 for j:=0 to FileListBox1.Items.count-1 do
 begin
  //какие-то действия
 end;
end;
end;

Пишу такую процедуру, после строки Application.ProcessMessages; управление передаётся на начало процедуры (begin), дальше не идёт...


Palladin   (2008-04-17 14:35:00) [13]


> Вход в папку   (17.04.08 14:28) [6]

когда в цикле "переходишь" после "перехода" вставь Application.ProcessMessages


Вход в папку   (2008-04-17 14:28:00) [14]

Нет, есть два компонента FileListBox и DirectoryListBox, нужно чтобы при наведении на определённую папку в DirectoryListBox в FileListBox отображались все файлы находящиеся в выделенной папке в компоненте DirectoryListBox.


Семеныч   (2008-04-17 14:21:00) [15]

> автор

Наводящий вопрос - у FileListBox есть свойство DirectoryListBox?


Оригинал   (2008-04-17 14:21:00) [16]

DirectoryListBox.OpenCurrent;


Плохиш   (2008-04-17 14:19:00) [17]


> Вход в папку   (17.04.08 14:14) [2]
> Подскажи пожалуйста, как будет выглядеть этот код. Наверняка
> там всего несколько строчек, просто чтобы FileListBox показывал
> содержимое папки выбранной в DirectoryListBox.

Там, вроде, и кода писать не надо, просто установить некоторые свойства. А в справку вместо Вас лезть мне в облом, тем более и задача-то учебная...


Вход в папку   (2008-04-17 14:14:00) [18]

Подскажи пожалуйста, как будет выглядеть этот код. Наверняка там всего несколько строчек, просто чтобы FileListBox показывал содержимое папки выбранной в DirectoryListBox.


Kolan   (2008-04-17 14:09:00) [19]

> то я не вхожу в неё

Так входи?


> чтобы программа сама вошла в папку выбраную

Сама программа ничего не сделает, пока ты не напишешь нужный код.


Наверх

Титульная страница Поиск, карта сайта Написать письмо