![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго всем дня! И с первым днём лета. Вопрос вот в чём.
Создаю вот так форму и компоненты (динамически) при нажатии на кнопку на главной форме: Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
frmUser: TForm;
btnUser: TButton;
edUser:TEdit;
memUser:TMemo;
begin
frmUser := TForm.Create(Self);
frmUser.Caption := 'Message';
frmUser.Left := 290;
frmUser.Top := 196;
frmUser.Width := 368;
frmUser.Height := 437;
btnUser := TButton.Create(frmUser);
btnUser.Left := 296;
btnUser.Top := 344;
btnUser.Width := 25;
btnUser.Height := 25;
btnUser.Caption := '>';
btnUser.Parent := frmUser;
edUser := TEdit.Create(frmUser);
edUser.Left := 32;
edUser.Top := 344;
edUser.Width := 257;
edUser.Height := 25;
edUser.Text := '';
edUser.Parent := frmUser;
memUser:=TMemo.Create(frmUser);
memUser.Left := 32;
memUser.Top := 32;
memUser.Width := 289;
memUser.Height := 297;
memUser.Parent := frmUser;
memUser.Lines.Clear;
frmUser.Show;
end;
end.Мне нужно создать обработчик события нажатия кнопки, которая была создана динамически на динамически созданной форме. Помогите: как это сделать? Заранее благодарю! Последний раз редактировалось Admin, 01.06.2013 в 18:20. |
|
#2
|
||||
|
||||
|
Код:
procedure FooOnClick(sender: tobject); ... procedure TForm1.FooOnClick(sender: tobject) begin ... end; ... btn1.onclick := FooOnClick; |
|
#3
|
|||
|
|||
|
Цитата:
мне нужно чтобы в edUser при нажатии на btnUser появлялся какой нибудь текст. EdUser (edit) и btnUser (button) находятся на динамически созданной форме frmUser. Помогите переделать мой ранее предоставленный код. Всё должно быть в одном юните |
|
#4
|
|||
|
|||
|
Код:
procedure MyButtonClick(Self : TComponent; Sender : TButton);
begin
(Self.FindComponent('edUser') as TEdit).Text := 'hello';
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
frmUser: TForm;
btnUser: TButton;
edUser:TEdit;
memUser:TMemo;
Method : TMethod;
begin
frmUser := TForm.Create(Self);
frmUser.Caption := 'Message';
frmUser.Left := 290;
frmUser.Top := 196;
frmUser.Width := 368;
frmUser.Height := 437;
btnUser := TButton.Create(frmUser);
btnUser.Left := 296;
btnUser.Top := 344;
btnUser.Width := 25;
btnUser.Height := 25;
btnUser.Caption := '>';
btnUser.Parent := frmUser;
Method.Code := @MyButtonClick;
method.Data := frmUser; // Self будет твоя форма
btnUser.OnClick := TNotifyEvent (Method);
edUser := TEdit.Create(frmUser);
edUser.Name := 'edUser'; // Вот имя - обязательно. По нему будет обращение к компоненту
edUser.Left := 32;
edUser.Top := 344;
edUser.Width := 257;
edUser.Height := 25;
edUser.Text := '';
edUser.Parent := frmUser;
memUser:=TMemo.Create(frmUser);
memUser.Left := 32;
memUser.Top := 32;
memUser.Width := 289;
memUser.Height := 297;
memUser.Parent := frmUser;
memUser.Lines.Clear;
frmUser.Show;
end;Последний раз редактировалось M.A.D.M.A.N., 01.06.2013 в 21:56. |
|
#5
|
||||
|
||||
|
Цитата:
Цитата:
|