Registriert seit: 7. Okt 2003
95 Beiträge
Delphi 2005 Professional
|
Re: click fläche bei bildern definieren ?
4. Aug 2006, 11:49
Hier ist mal ein bisschen Code, ist aus dem Delphi 7 Kochbuch.
Es wird eine EllipticRgn verwendet.
Alternativ könntest Du auch Shape-Komponenten verwenden. Siehe zweites Code-Beispiel.
Region-Code
Delphi-Quellcode:
implementation
{$R *.DFM}
var rh1 : HRGN;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If PtInRegion(RH1, x,y) Then begin
canvas.Pixels[x,y]:= clblack;
canvas.TextOut(x+1,y+1,'In Region');
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
canvas.Ellipse(10, 10, 210, 210);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RH1 := CreateEllipticRgn(10, 10, 210, 210);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If PtInRegion(RH1,x,y) Then canvas.Pixels[X, Y]:= clred;
end;
end.
Beispiel mit Shapes
Delphi-Quellcode:
implementation
uses Unit2; //nur als Beispiel
{$R *.DFM}
procedure TForm1.Shape3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
close
end;
procedure TForm1.Shape4MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
form2.show
end;
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
showmessage('Hier könnte ein anderes Formular geöffnet werden')
end;
procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
showmessage('Hier könnte eine andere Anwendung gestartet werden')
end;
end.
grz zer00
sei kühn, sei immer kühn, sei nicht zu kühn
|
|
Zitat
|