Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обработать событие ONCLICK программно созданной кнопки? [D7, WinXP]


Lamer666 ©   (2007-10-15 13:11:00) 

Всем добрый день!!
Как обработать событие ONCLICK программно созданной кнопки?
Чето поискал тут на форуме, ненашел....помню что было подобное обсуждение....
Помню что надо создать в TYPE объект с процедурой, а потом создать у этого объекта процедуру, и затем присвоить эту процедуру событию ONCLICK програмно созданной кнопки..
Помогите поажлта, спасибо"!


Lamer666   (2007-10-15 15:59:00) [1]

СПАСИБО ОГРОМНОЕ !!!


Ega23   (2007-10-15 13:58:00) [2]


> Да почему? Панель управления - Электропитание - и назначай
> как угодно! :)


Есть некое устройство, подключенное через USB. На устройстве есть "аппаратная" кнопка...  :)


homm   (2007-10-15 13:57:00) [3]

> [6] Dib@zol ©   (15.10.07 13:50)
> Да почему? Панель управления - Электропитание - и назначай
> как угодно! :)

Это частный случай, попрбуй назначить событие нажатию кнопки, которая находится на каком-нибудь станке :)


Dib@zol   (2007-10-15 13:50:00) [4]

> Уверяю тебя, это намного проще, нежели назначить событие
> аппаратно созданой кнопке :)

Да почему? Панель управления - Электропитание - и назначай как угодно! :)


homm   (2007-10-15 13:46:00) [5]

> Как обработать событие ONCLICK программно созданной кнопки?

Уверяю тебя, это намного проще, нежели назначить событие аппаратно созданой кнопке :)


Leonid Troyanovsky   (2007-10-15 13:36:00) [6]


> Lamer666   (15.10.07 13:11)  

> Помню что надо создать в TYPE объект с процедурой, а потом
> создать у этого объекта процедуру,


type TMyButton = class(TButton)
 procedure Click; override;
 ..
end;

procedure TMyButton.Click;
begin
 inherited;
 MyClick;
end;

И ничего назначать не потребуется.
--
Regards, LVT.


Ega23   (2007-10-15 13:28:00) [7]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure MyButtonClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 with TButton.Create(Self) do
  begin
    SetBounds(10, 10, 100, 25);
    Caption := 'My Button';
    OnClick := MyButtonClick;
    Parent := Self;
  end;
end;

procedure TForm1.MyButtonClick(Sender: TObject);
begin
 ShowMessage(TButton(Sender).Caption + ' Click!!!');
end;

end.


umbra   (2007-10-15 13:27:00) [8]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, stdctrls;

type
 TForm1 = class(TForm)
   procedure MyClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 with TButton.Create(self) do
    begin
      Parent := Self;
      OnClick := MyClick;
      Name := 'b1';
    end;

end;

procedure TForm1.MyClick(Sender: TObject);
begin
 showmessage('Привет, мир! Я новая кнопко!');
end;

end.


oldman   (2007-10-15 13:26:00) [9]


> потом создать у этого объекта процедуру


???

Событию можно присвоить уже существующую процедуру, имхо...


Наверх

Титульная страница Поиск, карта сайта Написать письмо