Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit Canvas (https://www.delphipraxis.net/45293-problem-mit-canvas.html)

Dein_Pate 3. Mai 2005 17:20


Problem mit Canvas
 
hallo leute...hab da so ein mehr oder weniger GROßES problem und hab auch schon auf anderen foren nachgelonzt,hab aber irgendwie nich so das richtige gefunden; Folgendes:
wollte paint nachproggen und da gibt's ja diesen gummibandeffekt,wo die linie dem mauszeiger folgt,bis man loslässt; dat ganze lautet denn ja so:

Delphi-Quellcode:
Procedure ...
  FillRect(ClientRect);
  MoveTo(X,Y)
  LineTo(Mouse.X,Mouse.Y);
so weit so gut,allerdings löcht das programm ja das alte bild,sobald ich beginne,eine neue lini zu ziehen...ich will aber,das er das alte bild behält,wenn ich anfange,eine Neue linie zu ziehen
könnte mir da jemand helfen ???

Wuaegner 3. Mai 2005 17:23

Re: Problem mit Canvas
 
Das FillRect() weglassen.

Dein_Pate 3. Mai 2005 17:34

Re: Problem mit Canvas
 
das hat mir der vom anderen forum auch gesagt und dann hab ich aber sozusagen ja ganz viele linien hintereinander gezeichnet...wird ja im prinzip immer ne line gezogen,wenn ich die mouse bewege

Khabarakh 3. Mai 2005 17:40

Re: Problem mit Canvas
 
Mit einem OffscreenBitmap, in dem das Bild ist, arbeiten, dieses dann ins Image/Paintbox/Form kopieren und dann den Rahmen zeichnen.

Dein_Pate 3. Mai 2005 17:43

Re: Problem mit Canvas
 
ein OffScreenBitmap...hab noch nie so was davon gehört...könntest dit ma ein bischen erklären...

Khabarakh 3. Mai 2005 17:55

Re: Problem mit Canvas
 
Einfach ein zur Laufzeit erstelltes TBitmap:

Delphi-Quellcode:
type
  TForm1 = [...]
  private
    Bitmap: TBitmap;
    OldX, OldY: Integer;
 
[...]

// OnCreate
  Bitmap := TBitmap.Create;
  Bitmap.LoadFromFile(...);

// OnMouseDown
  OldX := X;
  OldY := Y;

// OnMouseMove
  if ssLeft in Shift then
  begin
    Canvas.Draw(0, 0, Bitmap);
    Canvas.Rectangle(OldX, OldY, X, Y);
  end;

// OnDestroy
  FreeAndNil(Bitmap);

Dein_Pate 3. Mai 2005 18:05

Re: Problem mit Canvas
 
hab erst ma dank...werd erst ma n' bischen probieren und wenn wat is,meld ick mich wieder


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz