Einzelnen Beitrag anzeigen

Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Auf Canvas bei TImage zeichnen

  Alt 5. Jun 2006, 00:12
Hi,

vlt. hilft dir das als Anregung...

Delphi-Quellcode:
uses
  ..., ShellAPI, ...;

  private
    { Private-Deklarationen }
    x1, y1, x2, y2 : Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Canvas.Pen.Mode := pmNotXOR;
  Canvas.Pen.Style := psDot;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  If Shift = [ssLeft] Then
  Begin
    PatBlt(Canvas.Handle, 0, 0, ClientWidth, ClientHeight, Whiteness);
    Timer1.Enabled := False;
    Canvas.Brush.Style := bsClear;
    x1 := X;
    y1 := Y;
    x2 := X;
    y2 := Y;
    Canvas.Rectangle(x1, y1, x2, y2);
  End;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Panel1.Caption := IntToStr(x) + ':' + IntToStr(y);
  If Shift = [ssLeft] Then
  Begin
    Canvas.Rectangle(x1, y1, x2, y2);
    x2 := X;
    y2 := Y;
    Canvas.Rectangle(x1, y1, x2, y2);
  End;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Canvas.Pen.Style := psSolid;
  Canvas.Rectangle(x1, y1, x2, y2);
  Canvas.Pen.Style := psDot;
end;

...

end.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat