Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   E2009 und Package (https://www.delphipraxis.net/152904-e2009-und-package.html)

yörsch 12. Jul 2010 11:20

E2009 und Package
 
Hallo Zusammen,

ich will die Ereignisse von WndProc zu einen Package weiter leiten.
Und kriege es nicht hin :wall:

Ereignisse umbiegen mach ich sonst täglich und Ohne Probleme...
auch in und mit Package...

:stupid: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?

Stevie 12. Jul 2010 11:23

AW: E2009 und Package
 
Delphi-Quellcode:
TOnEventWndProc = function (var Message: TMessage): Boolean of object;

yörsch 12. Jul 2010 11:31

AW: E2009 und Package
 
Dickes DANKE Stevie :thumb:


ich hab nur "of object" vergessen....



Jetzt kenn ich die Auswikrung und sollte meinenen Vetilator 2 Stufen höher schalten...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz