Zitat von
Union:
Wieso dafür eigentlich eine eigene Klasse?....
Delphi-Quellcode:
type
TForm1 = class(TForm)
...
Äh... was ist TForm1 dann?
Egal, prinzipiell hast Du Recht, die Implementierung ist wirklich relativ simpel. Es sollen aber auch andere Applikationen magnetisch sein, denn es könnte sein, das ein 'Childfenster' in C++ oder -ja
das geht- in VB implementiert wird (Stichwort: Plugins). Und dann sollte man schon zu etwas generischen Methoden greifen.
Ich habe Windows-Messages und Shared Memory verwendet. Weiterhin ist meine Klasse skinfähig und wenn ein neuer Skin geladen wird, sollte das schon irgendwie mitgeteilt werden. Ergo kapselt man diese Funktionalität dann doch in eine eigene Klasse. Bei mir war das ein 'MagneticManager', der sich um die Visualisierung und das Management gekümmert hat.
Delphi-Quellcode:
...
Screen.Forms[i].Top := Screen.Forms[i].Top+Top-FTopLeft.X;
Screen.Forms[i].Left := Screen.Forms[i].Left+Left-FTopLeft.Y;
...
Wusste gar nicht, das das geht... Aber zappeln da die Fenster nicht?