Delphi - Klasse mit Ereignis
Delphi - Klasse mit Ereignis
Unit mit Klasse
{
Author : http://developer.luckie-online.de
Date : 2005-03-22
License : PUBLIC DOMAIN
}
unit Unit2;
interface
uses
Controls, ExtCtrls, Classes, Dialogs, Forms;
type
TBallOnClick = procedure(Sender: TObject) of Object;
TBall = class(TWinControl)
private
FImage: TImage;
FBallOnClick: TBallOnClick;
procedure FImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
constructor Create(Owner: TComponent); override;
property BallOnClick: TBallOnClick read FBallOnClick write FBallOnClick;
end;
implementation
constructor TBall.Create(Owner: TComponent);
begin
inherited Create(Owner);
FImage := TImage.Create(Self);
FImage.Parent := Owner as TForm;
FImage.OnMouseDown := FImageMouseDown;
FImage.Picture.LoadFromFile('c:\winnt\winnt.bmp');
FImage.Left := 10;
FImage.Top := 10;
FImage.Width := 40;
FImage.Height := 40;
FImage.AutoSize := True;
FImage.Show;
end;
procedure TBall.FImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Assigned(BallOnClick) then
BallOnClick(self);
end;
end.
Anwendungsbeispiel
{
Author : http://developer.luckie-online.de
Date : 2005-03-22
License : PUBLIC DOMAIN
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
Ball: TBall;
procedure MyBallOnClick(Sender: TObject);
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyBallOnClick(Sender: TObject);
begin
ShowMessage('Klick');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Ball := TBall.Create(Form1);
Ball.BallOnClick := MyBallOnClick;
end;
end.