![]() |
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:
[DCC Fehler] NavForm.pas(117): E2009 Inkompatible Typen: 'Reguläre Prozedur und Methodenzeiger'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; Wenn das nicht <Instanz>.<Methode> entspricht ???. Hat einer eine Idee? |
AW: E2009 und Package
Delphi-Quellcode:
TOnEventWndProc = function (var Message: TMessage): Boolean of object;
|
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