Einzelnen Beitrag anzeigen

Benutzerbild von zer00
zer00

Registriert seit: 7. Okt 2003
95 Beiträge
 
Delphi 2005 Professional
 
#15

Re: click fläche bei bildern definieren ?

  Alt 4. Aug 2006, 10: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
  Mit Zitat antworten Zitat