Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Работа с динамически создаваемыми объектами.   Найти похожие ветки 

 
KPOT   (2005-01-23 02:26) [0]

Уважаемые мастера, я прочитал в инете что можно создать программу в основной (и модальных) форме которой нет ни одного уже созданного объекта, а они создаются во время работы программы по мере надобности. Как это делать я в инете не нашел, да и в хелпе тоже, так вот, я пробовал создавать объекты во время работы программы - все прекрастно работает. Загвоздка вот в чем - допустим создаем TListBox :


var
 L: TListBox;
 P: TWinControl;
begin
 L := TListBox.Create(Self);
 with TabbedNotebook1 do
 begin
   P := Pages.Objects[PageIndex] as TWinControl;
   L.Parent := P;
   L.SetBounds(10, 10, 100, 100);
   L.Items.Add(TTabPage(P).Caption);
 end;
end;


В программе при нажатии кнопки происходит выполнение некого кода в котором главную роль играет TlistBox. Компилятор ругается - мол нету такого объекта. Как исправить?


 
Dolt ©   (2005-01-23 02:35) [1]

L.name:="myListBox";

-----
Там, где обработчик нажатия кнопки пишем:
Var
L:TListBox;
begin
 L:=findComponent("myListBox");
If L<>nil Then Begin
 чего-то делаем...
 end;


 
Piter ©   (2005-01-23 02:36) [2]

KPOT   (23.01.05 2:26)
В программе при нажатии кнопки происходит выполнение некого кода в котором главную роль играет TlistBox


ну и где этот код?


 
ЮЮ ©   (2005-01-24 05:15) [3]

Когда ты кидаешь компонент на форму, Delphi сама прописывает в uses формы имя модуля, где описан класс этого компонента. В твоем случае это надо сделать самостоятельно, например, посмотрев имя модуля в Help-е по этому компоненту


 
Юрий Зотов ©   (2005-01-24 09:12) [4]

> KPOT   (23.01.05 02:26)  

> Как исправить?

Сделать переменную L полем формы, а не локальной переменной метода (ведь за пределами метода такая переменная недоступна, а поле формы доступно всем ее методам).

> Dolt ©   (23.01.05 02:35) [1]

FindComponent придется использовать в каждом методе, где нужен доступ. В итоге получим сильное замедление работы.


 
KSergey ©   (2005-01-24 09:16) [5]

Советую прочитать
http://www.delphikingdom.com/helloworld/runtime_comp.htm



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
9-1098905911
_Дельфин_
2004-10-27 23:38
2005.02.06
OpenGL и 3DSMax


4-1102973267
Вадим
2004-12-14 00:27
2005.02.06
SpeedButton Handle


3-1105198353
TechnoDreamer
2005-01-08 18:32
2005.02.06
Как программно изменить пароль на базе Access?


1-1106592244
MadGhost
2005-01-24 21:44
2005.02.06
StringGrid как запретить редактирование в определенном столбце?


3-1105272952
makey22
2005-01-09 15:15
2005.02.06
Создание отчета





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский