Einzelnen Beitrag anzeigen

NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Eigene Klasse von TForm ableiten - Events

  Alt 24. Mai 2011, 10: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"...
  Mit Zitat antworten Zitat