Главная страница
    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.46 MB
Время: 0.037 c
1-1105717065
SpiDeR
2005-01-14 18:37
2005.02.06
parser


4-1102878566
MAINUSER
2004-12-12 22:09
2005.02.06
Получение буквы CD-ReWriter


3-1105376222
chir
2005-01-10 19:57
2005.02.06
OnChange - кто вызывает?


14-1105796546
Knight
2005-01-15 16:42
2005.02.06
Покойся с миром, Кудесник...


9-1099481937
ilopX
2004-11-03 14:38
2005.02.06
Скажите где найти хорошую инфу по DelphiX_d7.





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