![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в run-time создать форму с кнопочками [D7, WinXP]
чяс © (2005-05-23 22:17:00)Нашел статью Жизнь и смерт в Run-time
Создавать всё получается а чтобы что-нибудь при нажатии кнопки происходило тоже получается.
А вот создать форму а на ней кнопку чтобы что-нибудь при нажатии кнопки на созданной форме
что-нибудь происходило не получается
Приведите если можете код где это сделано полностью.
чяс (2005-05-24 00:15:00) [1]спасибо попробую
Юрий Зотов (2005-05-23 22:41:00) [2]> чяс
Форма - тоже компонент и с ней работают в run-time точно так же, как и с любым другим компонентом. Единственное исключение - если Вы не проектировали ее в design-time, то вызывать надо не Create, а CreateNew. Еще форма не требует установки Parent'а, вместо этого надо вызывать Show или ShowModal.
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormButtonClick(Sender: TObject);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Form: TForm;
begin
Form := TForm.CreateNew(Application);
Form.Position := poDefault;
with TButton.Create(Form) do
begin
Caption := 'Click me!';
Parent := Form;
SetBounds((Form.Width - Width) div 2, (Form.Height - Height) div 2, Width, Height);
OnClick := FormButtonClick
end;
Form.OnClose := FormClose;
Form.Show
end;
procedure TForm1.FormButtonClick(Sender: TObject);
begin
ShowMessage('Hello, world!')
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree
end;
Anatoly Podgoretsky (2005-05-23 22:32:00) [3]Когда ты бросаешь компонент на форму, то выполняются две вещи
1. Вызов Create
2. установка Parent
Все это можно сделать и в рантайм.
Eraser (2005-05-23 22:25:00) [4]чяс (23.05.05 22:17)
Нужно определить обработчик события для щелчка на кнопке (OnClick).
Gero (2005-05-23 22:21:00) [5]Что не получается?