Zitat von
Mystic:
... Subclassing ( TForm = class(Forms.TForm) ) gemacht. Allerdings war das mit etwas zu unsauber.
Das ist kein SubClassing, sondern eher die klassische Vererbung.
SubClassing verwende ich in meinem Beispiel. SubClassing bedeutet das man Botschaften, die für ein fremdes Fenster bestimmt sind abfängt und evt. verändert. Dadurch verändert sich auch das Verhalten des fremden Fensters. Das kann z.B. dadurch passieren, das man die registrierte Fensterprocedure austauscht. Das´geschieht in meinem Beispiel genau dort
Delphi-Quellcode:
procedure TJsMessageInterceptor .Loaded;
begin
inherited Loaded;
If (Owner<>Nil) and (Owner is TWinControl) then
begin
FOwnerWndProc:=TWinControl(Owner).WindowProc;
TWinControl(Owner).WindowProc:=WndProc; // Austauch der Fensterprocedure
end;
end;