Thema: Delphi Bereiche festlegen

Einzelnen Beitrag anzeigen

Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Bereiche festlegen

  Alt 20. Feb 2005, 14:32
Ein Beispiel :

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  region : HRGN;
  done : boolean = false;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var temp:HRGN;
begin
 region := CreateRectRgn(100,100,400,200);
 temp := CreateEllipticRgn(100,100,400,200);
 SelectObject(canvas.Handle,region);

 if COMPLEXREGION <> CombineRgn(region,region,temp,RGN_DIFF)then
        Application.MessageBox('Geht nicht.','Fehler');

 Canvas.Brush.Color := clRed;
 PaintRgn(canvas.Handle,region);

 Canvas.Brush.Color := clBlack;
 FrameRgn(canvas.Handle,region,canvas.Brush.Handle,1,1);

 done := true;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
 if done then
        begin
 Canvas.Brush.Color := clRed;
 PaintRgn(canvas.Handle,region);

 Canvas.Brush.Color := clBlack;
 FrameRgn(canvas.Handle,region,canvas.Brush.Handle,1,1);
        end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if done then
        if PtInRegion(region,x,y) then
                Label1.Caption := 'Maus ist drin.'
                else
                Label1.Caption := 'Maus ist raus.'
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat