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