![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вход в папку в компоненте 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]> то я не вхожу в неё
Так входи?
> чтобы программа сама вошла в папку выбраную
Сама программа ничего не сделает, пока ты не напишешь нужный код.