Entwickler-Ecke

Sonstiges (Delphi) - Eine eigenen Komponente auf Knopfdruck bewegen


René R.Fo. - Do 19.11.09 21:15
Titel: Eine eigenen Komponente auf Knopfdruck bewegen
Kurze Frage:Wie muss ich denn Code umschreiben damit ich mit einer Booland Funktion einen eigenen Button bewegen kann?:


Delphi-Quelltext
1:
2:
3:
4:
begin 
  ReleaseCapture; 
  Perform(wm_syscommand,$f0120); 
end;

Ich habe Delphi5


René R.Fo. - So 20.12.09 13:45

Kennt keiner eine Antwort?
oder geht das nicht?


jaenicke - So 20.12.09 15:15

Klar geht das, du musst nur das Perform des Buttons nehmen...

Delphi-Quelltext
1:
2:
3:
btnXY.Perform...
// bzw.
(Sender as TControl).Perform...
Was du gemacht hast, ist ja das Perform des Formulars zu nehmen, und dieses lässt sich so nicht bewegen.

Ich würde es aber nicht mit solchen "magischen" Werten im Quelltext machen. Woher weißt du dann später was das $f012 ist, wenn du in den Quelltext schaust?

Delphi-Quelltext
1:
2:
3:
4:
5:
const
  SC_DRAGMOVE = $F012;
begin
  ReleaseCapture;
  (Sender as TControl).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);

// EDIT:
Nebenbei: es gibt da noch einige Möglichkeiten mehr, auch resizing und so:
http://thinksharp.org/how-to-provide-dragging-or-resizing-of-any-control/