Klingt sehr sinnig.
Delphi-Quellcode:
procedure myClass.trackbarPegelMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
pt: TPoint;
begin
// Da MOUSEEVENTF_LEFTDOWN das MouseDown Event erneut aufrufen würde,
// soll startMouseDownAgain eine Endlosschleife verhindern
if startMouseDownAgain then
begin
startMouseDownAgain := false;
trackBarPositionOnMousePoint(X);
GetCursorPos(pt);
Mouse_Event(MOUSEEVENTF_LEFTUP, pt.x, pt.y, 0, 0) ;
Mouse_Event(MOUSEEVENTF_LEFTDOWN, pt.x, pt.y, 0, 0) ;
end
else
begin
startMouseDownAgain := true;
end;
end;
startMouseDownAgain wird im Form Create auf false gesetzt.
Ich weiß nicht was ich falsch mache, aber es verhält sich fast genauso wie der Versuch ohne simuliertem LEFTUP und LEFTDOWN