Главная страница
    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.032 c
11-1089096771
Igit
2004-07-06 10:52
2005.02.06
Tfilestream


1-1106300186
Garry_c
2005-01-21 12:36
2005.02.06
Есть форма F1 на которой есть CheсkBox1и F2 на которой есть


4-1103072621
casper24
2004-12-15 04:03
2005.02.06
падение программы при выгрузке DLL ки....


14-1106139129
Prohodil Mimo
2005-01-19 15:52
2005.02.06
Win98 и WinXP не видят друг друга. как лечить?


1-1106537456
Евг
2005-01-24 06:30
2005.02.06
Ошибка при закрытии книги в Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский