![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView [D7, WinXP]
CepJaNT © (2004-11-24 00:35:00)У меня к вам вопрос.
На форме у меня тривью и листвью. В тривью у меня находятся как-бы
папки а в папках файлы (у файлов значок с индексом 0, у папок - 1).
Нужно сделать следующее: при клике на папке, а именно, на элементе
в тривью с индексом иконки 1, необходимо занести все файлы этой папки, т.е.
все элементы с индексом 1 вложенные в выбранный в treeview.
Помогите пожлуйста.
Defunct (2004-11-27 02:22:00) [1]> OneFragLeft © (26.11.04 20:19) [15]
> Так быстрее писать - form1 написал, точку поставил
Позвольте с вами несогласиться.
1. Писать так как вы предлагаете не быстрее. Потому что можно было написать Tr нажать CTRL-Space и автоматически появился бы список в котором был бы идентификатор TreeView1.
2. Конкретный экзеспляр формы пасать вообще не правильно.
OneFragLeft (2004-11-26 20:19:00) [2]Так быстрее писать - form1 написал, точку поставил, и получил список всех объектов на форме. Просто слово form1 меньше всего по длинне:)
Игорь Шевченко (2004-11-26 01:11:00) [3]
> procedure TForm1.TreeView1Click(Sender: TObject);
> var i:integer;
> begin
> if form1.TreeView1.Selected.HasChildren then
> begin
> form1.ListView1.Items.Clear;
А зачем внутри метода объекта TForm1 вставлять ссылки на конкретный экземпляр form1 ?
CepJaNT (2004-11-26 01:00:00) [4]"Ушёл, ничё ни сказал. Вот и делай людям добро:("
Я не ушел!
Я только сейчас пришел на форум, времени не было.
А за ответ спасибо большое, щас попробую!
OneFragLeft (2004-11-25 01:36:00) [5]Ушёл, ничё ни сказал. Вот и делай людям добро:(
OneFragLeft (2004-11-25 01:04:00) [6]Можно было и по-другому, но не захотел.
OneFragLeft (2004-11-25 00:59:00) [7]Устраивает?
OneFragLeft (2004-11-25 00:58:00) [8]
procedure TForm1.TreeView1Click(Sender: TObject);
var i:integer;
begin
if form1.TreeView1.Selected.HasChildren then
begin
form1.ListView1.Items.Clear;
for i:=0 to form1.TreeView1.Selected.Count-1 do
begin
if form1.TreeView1.Selected.Item[i].ImageIndex=0 then
form1.ListView1.Items.Add.Caption:=form1.TreeView1.Selected.Item[i].Text;
end;
end;
end;
Вроде этого?
CepJaNT (2004-11-25 00:52:00) [9]" В чём там вообще запарка?"
Смотри пост 3 и 6
OneFragLeft (2004-11-25 00:43:00) [10]Извиняюся, я их просто на другую вкладку переставлял:)
Win32. Хотя Вы и так их используете. В чём там вообще запарка?
CepJaNT (2004-11-25 00:41:00) [11]Мне с файлами не надо!
Это все заносит в TreeView юзер.
А мне лишь надо все child'ы выбранного элемента занести в listview.
Это структура тривью:
Папка 1
- Подкаталог 1
- Файл 1
- Файл 2
- Файл 3
- Подкаталог 2
Папка 2
...
Папка N
Я кликаю п "Подкаталог 1" а мне в листвью надо чтобы добавилось "файл 1", "файл 2", "файл 3".
OneFragLeft (2004-11-25 00:33:00) [12]Компонентов для работы с файлами и папками хватает, вроде. Страница Additional - там всё, что нужно.
OneFragLeft (2004-11-25 00:32:00) [13]А может лучше взять готовые компоненты и не гемороиться?
CepJaNT (2004-11-25 00:21:00) [14]Помоему, это не то, что Вы написали.
Мне нужно следующее:
В TreeView такая структура:
Папка 1
- Подкаталог 1
- Файл 1
- Файл 2
- Файл 3
- Подкаталог 2
Папка 2
...
Папка N
Еще на форме есть ListView.
Так вот, когда я кликаю, например, по "Подкаталог 1" в ListView нужно отобразить
Файл 1, Файл 2, Файл 3 и т.д.
Т.е. все файлы, выбранного подкаталога.
Еще раз спасибо.
Defunct (2004-11-24 04:59:00) [15]В обработчике TreeView.OnChange написать что-то типа:
if Assigned(TreeView.Selected) then
if TreeView.Selected.ItemIndex = 1 then
begin
ListView.Clear;
// заполняем ListView
end;
Defunct (2004-11-24 04:59:00) [16]Всмысле не ItemIndex, а ImageIndex