![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Такой вот вопрос. Есть функция, внутри нее создается форма строчкой AskForm:=TForm.Create(nil); Теперь нужно на этой AskForm создать пару элементов, например типа TLabel или TButton. Заранее спасибо за ответ. |
#2
|
||||
|
||||
![]() Код:
var AskButton:TButton; begin AskButton:=TButton.Create(AskForm); AskButton.Parent:=AskButton; AskButton.Caption:='Кнопка'; {далее идёт присвоение таких свойств как Left, Top, Height, Width и любое другое на твоё усмотрение} |
#3
|
|||
|
|||
![]() Большое спасибо.
Только наверное вместо: AskButton.Parent:=AskButton; Нужно AskButton.Parent:=AskForm; |
#4
|
|||
|
|||
![]() Теперь не могу допереть как обрабатывать события по нажатию этой кнопки. Т.е. в обычном случае то понятно - двойной клик на Event - OnClick и процедура новая появляется. Здесь эту процедуру нужно как-то самому писать?
Да, кстати после того как выполнение этой функции закончиться, все элементы на ней и сама форма прекращают свое существование? |
#5
|
|||
|
|||
![]() Цитата:
В объявлении класса AskForm надо записать: Код:
procedure DoButtonClick(Sender: TObject); В секции implementation реализацию этой процедуры: Код:
procedure AskForm.DoButtonClick(Sender: TObject); begin /// end; Код:
... AskButton.OnClick := DoButtonClick; ... Цитата:
Код:
AskForm.Free; Не забывайте делать резервные копии |
#6
|
|||
|
|||
![]() У меня форма объявляется так, внутри функции:
function AskYesNoRus(txt2: String):boolean; var AskForm:TForm; .... Не совсем понимаю что значит "В объявлении класса AskForm надо записать" сорри за глупые вопросы ![]() |
#7
|
|||
|
|||
![]() А, все, сорри, разобрался, сделал по примеру уже существующей формы Form1.
Спасибо. |
#8
|
|||
|
|||
![]() Подобного (локального) объявления переменной типа TForm мало чтобы с этой формой можно было полноценно работать.
Надо создавать модуль с объявлением собственного класса, наследника от формы. Ну, что поделаешь, если хочется обрабатывать еще и события от компонентов на этой форме, в таких случаях по другому не получится. Собственно, все такие временные "формочки" для запросов, оповещений и пр. нужд делаются одним и тем же способом: создается модуль через File > New > Forrm (или кнопкой "New form", которая находится в палитре инструментов) и уже в этом модуле делается все чего надо для конкретных целей. Из главной же формы (или других рабочих форм) эти "формочки" только создаются, вызываются и уничтожаются после того как становятся не нужными. К тому же, при создании таких форм в run-time нужно прописать окаянное количество свойств как самой формы, так и ее компонентов. Зачем горбатиться, если можно не прописывать большое количество строк кода для этого, а просто задать значения этих свойств в design-time. Не забывайте делать резервные копии Последний раз редактировалось san-46, 18.06.2008 в 11:19. |