Текущий архив: 2008.05.18;
Скачать: CL | DM;
Внизвход в папку в компоненте DirectoryListBox Найти похожие ветки
← →
Вход в папку (2008-04-17 14:07) [0]Есть компонент DirectoryListBox показывающий все папки на диске С, в цикле устанавливаю курсор по очереди на первую папку, потом на вторую, затем на третью и тд., пока не будут перебраны все папки находящиеся на диске С, в компоненте FileListBox отображается содержимое папки, в которой я нахожусь. Проблема в том, что когда я по циклу указываю на папку, то я не вхожу в неё и соответственно в FileListBox не отображается её содержимое, а отображается содержимое корня диска С. Подскажите пожалуйста, как можно сделать так, чтобы программа сама вошла в папку выбраную в компоненте DirectoryListBox?
← →
Kolan © (2008-04-17 14:09) [1]> то я не вхожу в неё
Так входи?
> чтобы программа сама вошла в папку выбраную
Сама программа ничего не сделает, пока ты не напишешь нужный код.
← →
Вход в папку (2008-04-17 14:14) [2]Подскажи пожалуйста, как будет выглядеть этот код. Наверняка там всего несколько строчек, просто чтобы FileListBox показывал содержимое папки выбранной в DirectoryListBox.
← →
Плохиш © (2008-04-17 14:19) [3]
> Вход в папку (17.04.08 14:14) [2]
> Подскажи пожалуйста, как будет выглядеть этот код. Наверняка
> там всего несколько строчек, просто чтобы FileListBox показывал
> содержимое папки выбранной в DirectoryListBox.
Там, вроде, и кода писать не надо, просто установить некоторые свойства. А в справку вместо Вас лезть мне в облом, тем более и задача-то учебная...
← →
Оригинал (2008-04-17 14:21) [4]
DirectoryListBox.OpenCurrent;
← →
Семеныч (2008-04-17 14:21) [5]> автор
Наводящий вопрос - у FileListBox есть свойство DirectoryListBox?
← →
Вход в папку (2008-04-17 14:28) [6]Нет, есть два компонента FileListBox и DirectoryListBox, нужно чтобы при наведении на определённую папку в DirectoryListBox в FileListBox отображались все файлы находящиеся в выделенной папке в компоненте DirectoryListBox.
← →
Palladin © (2008-04-17 14:35) [7]
> Вход в папку (17.04.08 14:28) [6]
когда в цикле "переходишь" после "перехода" вставь Application.ProcessMessages
← →
Вход в папку (2008-04-17 14:46) [8]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:50) [9]ммать... ты на кой это в таймер запихал то?
← →
Palladin © (2008-04-17 14:52) [10]читать до просветления
http://delphimaster.net/view/2-1208032052/
← →
Вход в папку (2008-04-17 14:55) [11]ну, у меня просто действия по таймеру выполняются. попробовал на кнопку поставить, всё нормально, переходит на след. строку, вот только не входит в тут папку которая указана в DirectoryListBox.
← →
Плохиш © (2008-04-17 15:01) [12]А можно объяснить, что-такое "вход в папку"?
← →
Palladin © (2008-04-17 15:03) [13]
> Вход в папку (17.04.08 14:55) [11]
ну а свойство DirectoryListBox.FileList назначено?
← →
Вход в папку (2008-04-17 15:11) [14]да, назначил - FileListBox1
← →
Вход в папку (2008-04-17 15:16) [15]
> А можно объяснить, что-такое "вход в папку"?
то есть нужно чтобы при выделении в DirectoryListBox например папку 1 диска С, программа не просто выделила эту папку, а вошла в неё, то есть чтобы в FileListBox отобразилось содержимое этой папке, ну как если просто щёлкнуть по папке мышкой, чтобы зайти туда, а нужно чтобы программа сама кабы щёлкнула.
← →
Palladin © (2008-04-17 15:17) [16]ну так и войди в нее... назначь DirectoryListBox.Directory новое значение...
← →
Вход в папку (2008-04-17 15:24) [17]добавил строчку: 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:29) [18]) интересный ты фрукт... несообразительный какой то...
осталось сделать несколько волшебных изменений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:31) [19]спасибо большое!!!
Страницы: 1 вся ветка
Текущий архив: 2008.05.18;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.052 c