Registriert seit: 22. Aug 2004
98 Beiträge
|
Re: virtuelle funktion
2. Apr 2010, 18: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
|
|
Zitat
|