Hallo Christof,
ich füge hier mal einige Codeschnipsel aus meiner Komponente ein, vielleicht kannst Du damit etwas anfangen.
Delphi-Quellcode:
// Benötigte Variable
FDragging: Boolean;
procedure OnMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
...
// Drag wird begonnen
FDragging := True;
ReleaseCapture;
Perform(WM_SysCommand, $F012, 0);
// Folgende Zeile ist sehr wichtig! Sonst keine Auslösung
if Assigned(OnMouseUp) then MouseUp(Button, Shift, X, Y);
end;
procedure OnMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FDragging then
begin
...
end;
end;
procedure OnMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if FDragging then
begin
// Drag wird beendet
FDragging := False;
...
end;
end;
DoubleBuffered sollte auch aktiviert werden.
Gruß roga