Forum: Sonstige Fragen zu Delphi
by _frank_,
14. Mär 2009
was genau ist unklar? mousemove wird viel zu oft aufgerufen für diesen Zweck. probiers halt einfach mal im Mousdown aus...
die geänderte Zeile ist einfach nur dafür da, dass du für alle Panels die gleiche Methode verwenden kannst. weise die einfach deinen ganzen panels zu...
allerdings musste ich feststellen, dass es mit der perform-variante scheinbar nicht möglich ist, das ende der...
Forum: Sonstige Fragen zu Delphi
by _frank_,
12. Mär 2009
weil onMouseMove immer aufgerufen wird, wenn die maus innerhalb des Controls bewegt wird. die eigenschaft mit dem perform muss aber nur 1x gesetzt werden (intuitiv im Mousedown) und nix zig 1000 mal :)
haue den Code einfach mal ins Mousedown und du wirst sehen das reicht.
procedure TForm1.PanelMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// if ssLeft in Shift...
Forum: Sonstige Fragen zu Delphi
by _frank_,
11. Mär 2009
automatische Übersetzung und ihre tücken :)
damit ist gemeint, dass beim klick auf die Titelleiste an das zugehörige Control (das Fenster) eine WM_Syscommand-Message geschickt wird mit dem wert $F012.
appropos ist meiner Auffassung nach das MouseMove-Event falsch für den zweck. gehört eigentlich ins Mousedown, wenn man schon das komische $F012 nimmt.
dein Fehler kommt daher, dass der...
Forum: Sonstige Fragen zu Delphi
by _frank_,
10. Mär 2009
machst du es genauso wie larsi geschrieben hat? (also nur bewegen, wenn Shift-taste gedrückt ist)
oder per Mousedown/MouseUp?
bei ersterem wird es schwierig, den Ablegezeitpunkt zu ermitteln (timer u.ä. wäre in meinen Augen zu sehr gebastelt).
man könnte es evtl. noch mit onKeyUp probieren und beim loslassen der shift-taste die aktuelle position prüfen und ggf. an die alte (vor dem...
Forum: Sonstige Fragen zu Delphi
by _frank_,
8. Mär 2009
welchen Quelltext meinst du? den mit dem MouseOver/Down/Up? was genau ist da unklar?
naja, du musst halt beim Ablegen prüfen, ob an der position (bzw. etsprechend versetzt) das andere Panel liegt und entweder das ablegen erluben oder zurückspringen an die alte Position. für die Reihenfolge der "Scheiben" kannst du das Tag-Property verwenden und entsprechend darauf prüfen.
@larsi: bitte...
Forum: Sonstige Fragen zu Delphi
by _frank_,
7. Mär 2009
das hatten wir doch erst... ( http://www.delphipraxis.net/internal_redirect.php?t=153248 )
Gruß Frank