|
|
Регистрация | << Правила форума >> | 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; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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
|
||||
|
||||
Цитата:
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |