снова findcomponent()

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Linus
новенький
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

снова findcomponent()

Сообщение Linus »

Здравствуйте, пишу проект, не могу понять почему findcomponent ничего не находит (ни заранее созданные объекты ни run-time).

Уже для эксперимента отделил код, не относящийся к проекту:

Код: Выделить всё

var
ed:Tedit;
begin
    ed:=Tedit.Create(nil);
    ed.Parent:=form_editor;
    ed.Name:='my_edit';

if TEdit(form_editor.FindComponent('my_edit')) =nil then showmessage('!found') else showmessage('found');
 

Всегда возвращается nil. Перебрал множество вариаций, уже не знаю на что грешить.
(lazarus 0.9.30.4 FPC=2.6.0 linux debian i386 gtk2)
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Код: Выделить всё

    ed:=Tedit.Create(form_editor);

А вот так?
Linus
новенький
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Сообщение Linus »

аналогично.... form_editor это у меня панель (на всякий)
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Поищите компонент на форме, а не на панели.
Linus
новенький
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Сообщение Linus »

ну как бы компонент создается и ищется на одной форме, только на разных панелях, но все равно попробую.

...тоже нет, сменил родителя для компонента форму, сменил место поиска, и опять же nil. Странно все это.
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Да. Странно.

Изображение
Linus
новенький
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Сообщение Linus »

действительно странно.... создал новый проект, продублировал код, тоже заработало... посмотрим в проекте
Ответить