Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Überprüfen ob Mausklick in bestimmten bereich war
23. Mär 2012, 13:25
Klar, Regions sind manchmal etwas eklig, aber damit entfallen halt eine Menge eigener Berechnungen. Einfaches Beispiel:
Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
var
Rgn: hRGN;
Pt: TPoint;
begin
Rgn := CreateEllipticRgnIndirect(ClientRect);
if Rgn <> 0 then
try
Pt := ScreenToClient(Mouse.CursorPos);
if PtInRegion(Rgn, Pt.X, Pt.Y) then
ShowMessage('Innerhalb')
else
ShowMessage('Außerhalb');
finally
DeleteObject(Rgn);
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Brush.Color := clRed;
Canvas.Pen.Color := Canvas.Brush.Color;
Canvas.Ellipse(ClientRect);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
Invalidate;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|