Hallo Zusammen,
ich will die Ereignisse von WndProc zu einen
Package weiter leiten.
Und kriege es nicht hin
Ereignisse umbiegen mach ich sonst täglich und Ohne Probleme...
auch in und mit
Package...
entweder ist es wirklich zuheiß
oder ich bin das auf was gestossen was ich mir nicht erklären kann?
Mein kleines Fenster
Delphi-Quellcode:
unit FoBase;
interface
uses
Forms, Classes, SysUtils, Messages, controls;
type
TOnEventWndProc =
function (
var Message: TMessage):boolean;
TFormBase =
class(TForm)
protected
FOnEventWndProc : TOnEventWndProc;
procedure WndProc(
var Message: TMessage);
override;
public
Property OnEventWndProc : TOnEventWndProc
read FOnEventWndProc
write FOnEventWndProc ;
end;
implementation
{$R *.DFM}
uses EventManager;
{ TFormBase }
procedure TFormBase.WndProc(
var Message: TMessage);
var
inherit : boolean;
begin
inherit := True;
if Assigned(FOnEventWndProc )
then
inherit := FOnEventWndProc(
Message);
if inherit
then
inherited;
end;
Mein Objekt was sich beim Fenster Anmeldet
Delphi-Quellcode:
unit NavForm;
interface
Uses Windows, classes, StdCtrls, Forms, Graphics, Controls, extctrls, Messages,
FoBase;
type
TNavForm =
class
private
FForm : TFormBase;
public
constructor create (xForm: TObject);
procedure Register();
function EventWndProc(
var Message: TMessage): Boolean;
end;
implementation
//##############################################################################
constructor TNavForm.create(xForm: TObject);
begin
FForm := TFormBase(xForm);
end;
function TNavForm.EventWndProc(
var Message: TMessage): Boolean;
begin
result := True;
// Mach was....
end;
procedure TNavForm.
Register;
begin
FForm.OnEventWndProc := Self.EventWndProc;
// <= HIER Meckert der Compiler
end;
[DCC Fehler] NavForm.pas(117): E2009 Inkompatible Typen: 'Reguläre Prozedur und Methodenzeiger'
Wenn das nicht <Instanz>.<Methode> entspricht ???.
Hat einer eine Idee?