Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
1

Выполнение действий при выборе ветви TreeView

12.02.2010, 21:34. Просмотров 1209. Ответов 9
Метки нет (Все метки)

Доброго времени суток!
есть вопрос по треевью, вроде бы прочитал статейку... вроде бы даже что то работает... но толи где то запутался с условиями\циклами, толи не доконца понял сам компонент...

в общем идея приведённого ниже кода в следующем...
как только пользователь выбирает ветвь, например, "музыка" то по компу происходит поиск всех муз. файлов... и в таком роде по всему дереву...
подскажите в чём ошибка...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.TreeView1Click(Sender: TObject);
var
  i:integer;
  name: TFileName;
begin
//if treeview1.Selected.Index <> 0 then begin
//for i:=0 to treeview1.Items.Count - 1 do begin
//while TreeView1.Selected.Index <> 0 do begin
  treeview1.Items[0].Selected:= true;
  music:= FindFirst('C:\Documents and Settings\user\My Documents\My Music\muza\*.mp3', faAnyFile, SR);
    while music = 0 do begin
      name:= SR.Name;
      music:= FindNext(SR);
    end;
  showmessage('find is compleated!');
  FindClose(SR);
 
end;
end;
закомментированное не особенно важно, просто что то работает а что я не могу понять..((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2010, 21:34
Ответы с готовыми решениями:

Выполнение действий при условии
Всем привет Как сделать чтобы при выполнении этого условия &lt;? if...

Изменение image при выборе в TreeView
Добрый день. При выборе элемента, меняется изображение, соответствующее ему, на значение...

Работа с treeView (событие при выборе )
Подскажите пожалуйста как быть есть treeView примерно такого содержание Схема1 Значение1 ...

Выполнение действий при наведении курсора
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt;...

9
105 / 104 / 9
Регистрация: 10.01.2010
Сообщений: 392
13.02.2010, 00:36 2
ну, как самое первое, а что такое music? нигде не декларировано.

Добавлено через 4 минуты
втрое:
Delphi
1
FindFirst
c вашими параметрами не будет
Цитата Сообщение от velikijmerlin Посмотреть сообщение
то по компу происходит поиск всех муз. файлов...
а будет искать только в папке, которую вы указали - бла-бла\muza.

Добавлено через 4 минуты
Delphi
1
sr: TSearchRec;
как бы тоже не помешает написать
0
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
14.02.2010, 12:44  [ТС] 3
не, ну это понятно что фаиндфёрст будет по папке смотреть, просто не так написал..)))
но всё же вот полный код программки, но я не знаю что выбрать чтобы программа работала правильно For, while или же if

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls;
 
type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    procedure TreeView1Click(Sender: TObject);
  private
    { Private declarations }
  public
music: integer;
SR: TSearchRec; //поисковая переменная
search_result: string;
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.TreeView1Click(Sender: TObject);
var
  i:integer;
  name: TFileName;
begin
//if treeview1.Selected.Index <> 0 then begin
//for i:=0 to treeview1.Items.Count - 1 do begin
//while TreeView1.Selected.Index <> 0 do begin
  treeview1.Items[0].Selected:= true;
  music:= FindFirst('C:\Documents and Settings\user\My Documents\My Music\muza\*.mp3', faAnyFile, SR);
    while music = 0 do begin
      name:= SR.Name;
      music:= FindNext(SR);
    end;
  showmessage('find is compleated!');
  FindClose(SR);
 
end;
end;
 
end.
Добавлено через 23 часа 31 минуту
темка ещё актуальна....
неужели никто не подскажет?((
0
65 / 65 / 16
Регистрация: 25.11.2009
Сообщений: 283
14.02.2010, 22:32 4
Цитата Сообщение от velikijmerlin Посмотреть сообщение
treeview1.Items[0].Selected:= true;
зачем выбирать всегда 1-й элемент.
затем
Цитата Сообщение от velikijmerlin Посмотреть сообщение
name:= SR.Name;
а вывод name где?? в никуда? к тому же Вы получаете только последний файл, а не все.
0
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
16.02.2010, 23:29  [ТС] 5
}{NiM, а как тогда получить не последний, а все файлы?

Добавлено через 11 минут
извиняюсь, уже разобрался..)))

Добавлено через 4 минуты
вот хочу обратно повториться, и спросить, что в этом коде надо исправить чтобы он выводил не на вторую подветку записи а на первую подветку, м?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Memo1: TMemo;
    procedure TreeView1Click(Sender: TObject);
  private
    { Private declarations }
  public
music: integer;
SR: TSearchRec; //ïîèñêîâàÿ ïåðåìåííàÿ
search_result: string;
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.TreeView1Click(Sender: TObject);
var
  name: TFileName;
begin
if treeview1.Selected.Index <> 0 then begin
  treeview1.Items[0].SelectedIndex:= 0;
  music:= FindFirst('C:\Documents and Settings\user\My Documents\My Music\muza\*.mp3', faAnyFile, SR);
    while music = 0 do begin
      name:= SR.Name;
      music:= FindNext(SR);
memo1.Lines.Add(name);
    end;
  showmessage('find is compleated!');
  FindClose(SR);
end;
 
end;
 
end.
0
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
20.02.2010, 23:18  [ТС] 6
тогда если так, то поставлю вопрос по другому...

как можно узнать номер дочерней ветки?
у меня дерево состоит из одной родительской ветке в которой есть 5 дочерних веток, мне надо узнать номер каждой из дочерних веток...
0
105 / 104 / 9
Регистрация: 10.01.2010
Сообщений: 392
20.02.2010, 23:24 7
ну почитайте уже хоть что-нибудь по treeView!!! да в любом мануале написано, как получить индекс!!!!
0
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
21.02.2010, 00:20  [ТС] 8
Motzart, либо я очень тупой и не могу понять как это сделать, либо что то не то читаю..((( не мог бы кинуть ссылку?
0
Motzart
21.02.2010, 01:01
  #9

Не по теме:

не вопрос, утром скину (просто бухаем сейчас :))

0
Junior Developer
43 / 43 / 7
Регистрация: 08.06.2009
Сообщений: 261
21.02.2010, 01:30  [ТС] 10
Motzart, ок)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2010, 01:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Автоматическое выполнение действий при заполнении таблицы
Имеется постоянно пополняемая таблица (хобби). 2 столбца. Задача. 1. При введении очередных...

Выполнение действий при нажатии на представление в уведомлении
Здравствуйте! Возник следующий вопрос: можно ли на нажатие в уведомлении на представление задать...

Автоматическое выполнение действий при загрузке страницы
Добрый день. Имеется input вида: &lt;input id=&quot;input_name_id_&quot;&gt;, в него загружаются данные из базы...

При выборе в treeview отображать определённую конфигурацию в datagridview
помогите плиз ..нужно чтобы при выборе в treeview отображалась бы определённая конфигурация в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.