Thema: Delphi virtuelle funktion

Einzelnen Beitrag anzeigen

JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#8

Re: virtuelle funktion

  Alt 2. Apr 2010, 17:41
Zitat von NamenLozer:
Gut, eine Zeile Code sagt manchmal mehr als tausend Worte:
Delphi-Quellcode:
function WndProc(hWindow: HWND; dwMsg: ZDWORD; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  var
    wnd: TWindowBase; // Geändert
    msg : TMSG;
  begin
    if dwMsg = WM_NCCREATE then
    begin
      wnd := TWindowBase.Create(PCreateStruct(nlParam)^.lpCreateParams); // Geändert
      // (ich habe jetzt einfach mal geraten, dass hier der Konstruktor hin sollte)
      SetWindowLongPtr(hWindow, GWL_USERDATA, Integer(wnd));
    end;
    wnd := TWindowBase(GetWindowLongPtr(hWindow, GWL_USERDATA)); // Geändert

    if Assigned(wnd) then
    begin
      ZeroMemory(@msg, SizeOf(msg));
      msg.hwnd := hWindow;
      msg.message := dwMsg;
      msg.wParam := wParam;
      msg.lParam := lParam;
      wnd.EventHandler(msg); // Geändert
      Exit;
    end;
    Result := DefWindowProc(hWindow, dwMsg, nwParam, nlParam);
  end;

  TWindowBase = class // Umbenannt
     ..
  public
     function EventHandler(msg: TMsg): Boolean; virtual;
  end;
Hoffe, ich hab nichts übersehen.

danke sehr, dies sieht sehr uebersichtlich aus, very n1. werde es sofort testen
Peace on the world
  Mit Zitat antworten Zitat