Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Inhalt der Paintbox verschwindet bei überlappenden Fenstern (https://www.delphipraxis.net/131861-inhalt-der-paintbox-verschwindet-bei-ueberlappenden-fenstern.html)

Diamont 1. Apr 2009 16:47


Inhalt der Paintbox verschwindet bei überlappenden Fenstern
 
Hi, wenn ich etwas in eine Painbox zeichne und dann ein Fenster darüber ziehe, dann verschwidet der Bereich der unter dem Fenster ist, wie kann ich denn am besten neuzeichnen? Ich hab versucht die Suchenfunktion zu verwenden aber ich weiss nciht genau was ich eingeben muss und daher habe ich über 300 ergebnisse ergeben wobei unter den ersten 100 nichts brauchbares war. Vielen dank für die Mühe!

Bernhard Geyer 1. Apr 2009 16:51

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Die Zeichneaktionen müssen im OnPaint-Event durchgeführt werden. Ansonsten passiert das was du gerade hast.

Diamont 1. Apr 2009 17:24

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Hm.. Ich wollte probieren auf der Paintbox paintmäßig rumzumalen und verwende dazu diese Evens:

Delphi-Quellcode:
procedure TForm1.BoxMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  with Box.Canvas do begin
   moveto(X,Y);
   lineto(X,Y);
  end;
  drag := true;
  Plast.X := X;
  Plast.Y := Y;
end;
Delphi-Quellcode:
procedure TForm1.BoxMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if drag then begin
  with Box.Canvas do begin
   pen.Color := FCol;
   brush.Color := BCol;
   moveto(Plast.X,Plast.Y);
   lineto(X,Y)
  end;
   Plast.X := X;
   Plast.Y := Y;
 end;
Delphi-Quellcode:
procedure TForm1.BoxMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 drag := false;
end;
Wie mach ich das denn dann im OnPaint Ereigniss?
Ich weiss ja nicht ob der Mausbutton gerade gedrück ist und wo sich der Cursor gerade befindet.

Luckie 1. Apr 2009 18:29

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Zeichne auf ein Bitmap im Speicher und kopiere es bei Bedarf und im OnPaint Ereignis auf den Canvas der Paintbox.

Diamont 1. Apr 2009 22:25

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Klappt gut, danke :)

Cyf 1. Apr 2009 23:07

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Alternativ könntest du auch einfach auf ein Image zeichnen.

Neutral General 2. Apr 2009 00:05

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
 
Zitat:

Zitat von Cyf
Alternativ könntest du auch einfach auf ein Image zeichnen.

Aber bitte auf das Bitmap eines Images und nicht auf das Image selbst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 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