Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.06.2008, 14:51
sid401 sid401 вне форума
Прохожий
 
Регистрация: 14.06.2008
Сообщения: 6
Репутация: 10
По умолчанию Создание элементов на форме созданной в run-time

Здравствуйте.

Такой вот вопрос.
Есть функция, внутри нее создается форма строчкой

AskForm:=TForm.Create(nil);

Теперь нужно на этой AskForm создать пару элементов, например типа TLabel или TButton.

Заранее спасибо за ответ.
Ответить с цитированием
  #2  
Старый 17.06.2008, 15:00
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Код:
var
AskButton:TButton;
begin
AskButton:=TButton.Create(AskForm);
AskButton.Parent:=AskButton;
AskButton.Caption:='Кнопка';
{далее идёт присвоение таких свойств как Left, Top, Height, Width и любое другое на твоё усмотрение}
__________________

Ответить с цитированием
  #3  
Старый 17.06.2008, 15:39
sid401 sid401 вне форума
Прохожий
 
Регистрация: 14.06.2008
Сообщения: 6
Репутация: 10
По умолчанию

Большое спасибо.

Только наверное вместо:
AskButton.Parent:=AskButton;

Нужно
AskButton.Parent:=AskForm;
Ответить с цитированием
  #4  
Старый 17.06.2008, 15:55
sid401 sid401 вне форума
Прохожий
 
Регистрация: 14.06.2008
Сообщения: 6
Репутация: 10
По умолчанию

Теперь не могу допереть как обрабатывать события по нажатию этой кнопки. Т.е. в обычном случае то понятно - двойной клик на Event - OnClick и процедура новая появляется. Здесь эту процедуру нужно как-то самому писать?



Да, кстати после того как выполнение этой функции закончиться, все элементы на ней и сама форма прекращают свое существование?
Ответить с цитированием
  #5  
Старый 17.06.2008, 16:54
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Цитата:
Сообщение от sid401
Теперь не могу допереть как обрабатывать события по нажатию этой кнопки. Т.е. в обычном случае то понятно - двойной клик на Event - OnClick и процедура новая появляется. Здесь эту процедуру нужно как-то самому писать?

В объявлении класса AskForm надо записать:
Код:
procedure DoButtonClick(Sender: TObject);
Наименование процедуры не имеет значения.
В секции implementation реализацию этой процедуры:
Код:
procedure AskForm.DoButtonClick(Sender: TObject);
begin
///
end;
В функции после создания кнопки, ее событию присвоить имя процедуры:
Код:
  ...
  AskButton.OnClick := DoButtonClick;
  ...
Цитата:
Сообщение от sid401
Да, кстати после того как выполнение этой функции закончиться, все элементы на ней и сама форма прекращают свое существование?
Нет, не прекращают. Надо явно пристрелить созданную форму:
Код:
AskForm.Free;
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #6  
Старый 18.06.2008, 10:40
sid401 sid401 вне форума
Прохожий
 
Регистрация: 14.06.2008
Сообщения: 6
Репутация: 10
По умолчанию

У меня форма объявляется так, внутри функции:

function AskYesNoRus(txt2: String):boolean;
var AskForm:TForm;
....

Не совсем понимаю что значит "В объявлении класса AskForm надо записать"

сорри за глупые вопросы
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025