Registriert seit: 10. Mai 2007
124 Beiträge
Delphi 10 Seattle Professional
|
AW: Eigene Klasse von TForm ableiten - Events
24. Mai 2011, 11:11
Also leider, passiert da nix. Ich habe das ganze wie folgt eingebunden:
Meine neue Klasse:
Delphi-Quellcode:
unit MyFormUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TMyEvent = procedure(Sender:TObject; sAction: String) of object;
TMyForm = class(TForm)
private
{ Private-Deklarationen }
FOnSetMyParams: TMyEvent;
public
{ Public-Deklarationen }
procedure SetMyParams(sAction: String);
property MyEvent: TMyEvent read FOnSetMyParams write FOnSetMyParams;
end;
var
MyForm: TMyForm;
implementation
{$R *.dfm}
procedure TMyForm.SetMyParams(sAction: String);
begin
if Assigned(FOnSetMyParams) then
FOnSetMyParams(Self, sAction);
end;
initialization
RegisterClass(TMyForm);
finalization
UnRegisterClass(TMyForm);
end.
Der Abkömmling:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MyFormUnit, StdCtrls;
type
TForm1 = class(TMyForm)
Edit1: TEdit;
procedure MyEvent(sAction: String);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyEvent(sAction: String);
begin
MessageDlg(sAction, mtWarning, [mbOK], 0);
end;
//Wichtig!
//Abschnitt um die Formularklasse im Programm bekannt zu machen!!!
initialization
RegisterClass(TForm1);
finalization
UnregisterClass(TForm1);
end.
Und der Aufruf:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
Form1.Color := clRed;
Form1.SetMyParams('TEST');
end;
Die Farbe wird verändert, aber mein Event wird nicht "gefeuert"...
|
|
Zitat
|