Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
Delphi 10 Seattle Enterprise
|
Re: Eigenes Shape anklickbar machen
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;
|
|
Zitat
|