Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обратиться к объекту, если еасть его имя. [D7, WinXP]


Страницы:   1 2 3

tazik ©   (2005-01-25 21:01:00) 

Здравствуйте!

Пишу такую прогу. Есть уменя на форме объекты определенных типов. Хочу составить дерево этих объектов, подобно Object Explorer

пример кода:

procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
var Comp: TComponent;
begin
       Comp := TComponent(FindComponent(node.Text));
       if Assigned(Comp) then
       begin
          if Comp.ClassName = 'TTabSheet' then      (*)
           showMessage(comp.name);
       ...

Но когда выполяется (*) выскакивает Access violation. Что делать?


tazik   (2005-01-25 21:21:00) [41]

Дело в том, что если убрать проверку

if Assigned(Comp) then
,
то AV выскакивает именно в строке (*)


Gero   (2005-01-25 21:17:00) [42]

А ты уверен, что AV выскакивает именно на этой строчке?


begin...end   (2005-01-25 21:17:00) [43]

> tazik ©   (25.01.05 21:01)

> Comp := TComponent(FindComponent(node.Text) );

Кстати, а зачем здесь приведение типа к TComponent?
Можно ведь и попроще: Comp := FindComponent(node.Text).


tazik   (2005-01-25 21:14:00) [44]

to begin...end

Вот и я про тоже! Может есть в АПИ какая-то ф-я&


tazik   (2005-01-25 21:13:00) [45]

И как этого избежать?


begin...end   (2005-01-25 21:12:00) [46]

> [3] Gero ©   (25.01.05 21:11)

Хм, но ведь тогда не выполнилась бы ветка if Assigned(Comp) then ...


Gero   (2005-01-25 21:11:00) [47]


> Но почему, ведь я переменной comp явно назначаю значение

Вероятно FindComponent(node.Text) возвращает nil.


tazik   (2005-01-25 21:10:00) [48]

Но почему, ведь я переменной comp явно назначаю значение. Может с помощью указателя?


Gero   (2005-01-25 21:08:00) [49]

Вероятно Comp = nil.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо