// Es wird vom Programm aus ein Mausklick erzeugt.

// Getestet mit D4 unter WinME

// Variante 1: Ohne den Mauspfeil zu verschieben

procedure mausklick(TWC:TWinControl;welche:TMouseButton);
begin
case
welche of
mbleft:
begin
sendmessage(TWC.handle,wm_lbuttondown,1,1);
sendmessage(TWC.handle,wm_lbuttonup,1,1);
end;
mbright:
begin
sendmessage(TWC.handle,wm_rbuttondown,1,1);
sendmessage(TWC.handle,wm_rbuttonup,1,1);
end;
else begin
sendmessage(TWC.handle,wm_mbuttondown,1,1);
sendmessage(TWC.handle,wm_mbuttonup,1,1);
end;
end;
end;

// Beispielaufruf
procedure TForm1.Button2Click(Sender: TObject);
begin
mausklick(CheckBox1,mbleft);
end;


// ---------------------------------------------------------

// Variante 2: Mauspfeil auf das Control setzen

procedure
mausklick(Form:TForm;TWC:TWinControl;welche:TMouseButton);
var
x,y:integer;
tasteup,tastedown:longword;
begin
case
welche of
mbleft:
begin
tastedown:=mouseeventf_leftdown;
tasteup:=mouseeventf_leftup;
end;
mbright:
begin
tastedown:=mouseeventf_rightdown;
tasteup:=mouseeventf_rightup;
end;
else
begin
tastedown:=mouseeventf_middledown;
tasteup:=mouseeventf_middleup;
end;
end;
if
Form.borderstyle<>bsnone then begin
y:=(Form.height-Form.clientheight)-2;
x:=6;
end else begin
x:=2;
y:=2;
end;
x:=x+TWC.left+Form.left;
y:=y+TWC.top+Form.top;
setcursorpos(x,y);
mouse_event(tastedown,0,0,0,0);
mouse_event(tasteup,0,0,0,0);
end;


// Beispielaufruf
procedure TForm1.Button2Click(Sender: TObject);
begin
mausklick(Form1,Button3,mbleft);
end;


Zugriffe seit 6.9.2001 auf Delphi-Ecke