Einzelnen Beitrag anzeigen

tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#5

AW: Komponenten während der Laufzeit verschieben

  Alt 11. Jan 2012, 10:15
Hallo,
also ich habe folgenden gekürzten Code:

In einer Unit:
Code:
....
type
  TTermin = Class(TPanel)
....
Dann im Formular:
Code:
...
T:=TTermin.Create(Form1);
T.OnMouseMove:=Form1.ControlMouseMove;
...
Und diese Prozedur:
Code:
procedure TForm1.ControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if ssLeft in Shift then
  begin
    (Sender as TTermin).Dragging:=true;
    ReleaseCapture;
    (Sender as TControl).Perform(WM_SYSCOMMAND, $F012, 0);
    (Sender as TTermin).color:=clGreen;
  end;
end;
Die letzte Zeile mit der Farbzuweisung ist nur zum Testen und soll mein Verständnisproblem zeigen. Erst wenn ich mit dem Ziehen des Elements fertig bin, wird die Farbe grün zugewiesen. Ich verstehe das so, als ob der Code nach Perform auch erst nach dem Ziehen ausgeführt wird.

Du hast geschrieben:
Zitat:
In ControlMouseMove sollte man solche Prüfungen durchführen.
Ich verstehe nicht, wie ich das machen soll, wenn wie hier im Beispiel grün auch erst nach dem Verschieben zugewiesen wird, und nicht während dem Ziehen.

Danke und Grüße
Christof
  Mit Zitat antworten Zitat