Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.016 c
3-1197899757
Андрей Пл
2007-12-17 16:55
2008.05.18
Вопрос по TIBQuery и его свойству Filter


15-1207322240
PZ
2008-04-04 19:17
2008.05.18
Microsoft провалил продажи Windows Vista


15-1207461552
@!!ex
2008-04-06 09:59
2008.05.18
IDE для FPC с нормальным дебагером


2-1208432755
Oyeme
2008-04-17 15:45
2008.05.18
Поиск по множеству из мемо


2-1208240580
francuz_diletant
2008-04-15 10:23
2008.05.18
Перехват клавиши