Einzelnen Beitrag anzeigen

MikeS

Registriert seit: 3. Mai 2003
Ort: München
157 Beiträge
 
Delphi 7 Professional
 
#4

Re: Rechteck mit Canvas zeichnen?!?

  Alt 13. Jan 2004, 21:27
Hab gerade mal etwas probiert! Ist nicht sehr gut aber vielleicht hilft es Dir ja!
Du benötigst ein Image! Auf dem wird dann gezeichntet!

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormActivate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x1, y1, x2, y2: integer;
  zeichnen : bool;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
        image1.Canvas.Brush.Color := clwhite;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        zeichnen := true;
        x1 := x;
        y1 := y;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        zeichnen := false;
        x2 := x;
        y2 := y;
        image1.Canvas.Rectangle(x1, y1, x2, y2);
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
        if zeichnen then
        image1.Canvas.Rectangle(x1, y1, x, y);
end;

end.
[edit=Sharky]Doppelposting gelöscht. Mfg, Sharky[/edit]
Mike Schröder
  Mit Zitat antworten Zitat