Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

AW: Überprüfen ob Mausklick in bestimmten bereich war

  Alt 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
  Mit Zitat antworten Zitat