Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
1-1106607054
netmouse
2005-01-25 01:50
2005.02.06
Открыть URL или Mailto из формы


4-1103553881
GuAV
2004-12-20 17:44
2005.02.06
GlobalAddAtom - Limitations ?


3-1105347168
Orc
2005-01-10 11:52
2005.02.06
Список серверов SQL в сети


1-1106467912
4eshka)
2005-01-23 11:11
2005.02.06
Программа глючит через 1 год работы


9-1098938936
mudazvon
2004-10-28 08:48
2005.02.06
Как работает этот PixelCheck?