Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Eigenes Shape anklickbar machen

  Alt 29. Jan 2007, 00:06
So, jetzt wird der Bogen gezeichnet, und ist innerhalb der Region anklickbar.

Gruß Kostas

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if PtInRegion(Region, X, Y)
  then bsm('gefunden');
end;

Delphi-Quellcode:
procedure TForm1.Bogen;
var
  offset,s:TPoint;
  R1,R2:integer;
  Alpha:real;
  FillColor:TBrush;

begin
  //Zentrum des Bogens
  offset.x:=300;
  offset.y:=300;

  R1:=200; //Äußerer Bogen
  R2:=140; //Innerer Bogen

  Alpha := DegToRad(TrackBar2.position); //Startwinkel

  //Startpunkt der Schnittpunktlinie Bogen innen
  s.x := offset.x + Round((r2 div 2) * (cos(Alpha)));
  s.y := offset.y + Round((r2 div 2) * (sin(Alpha)));

  canvas.brush.Color:=clWhite;
  canvas.FillRect(canvas.ClipRect);

  Canvas.brush.Color:=clRed;

  BeginPath(Canvas.Handle);

  MoveToEx(Canvas.Handle, s.x, s.y, nil);
  AngleArc(Canvas.Handle, offset.x, offset.y, r1 div 2, -TrackBar2.Position, -TrackBar1.Position);
  AngleArc(Canvas.Handle, offset.x, offset.y, r2 div 2, -(TrackBar2.Position + TrackBar1.Position), TrackBar1.Position);

  EndPath(Canvas.Handle);
  Region := PathToRegion(Canvas.Handle);
  PaintRgn(Canvas.Handle, Region);
end;
  Mit Zitat antworten Zitat