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!
|
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.
|
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:
Wie mach ich das denn dann im OnPaint Ereigniss?
procedure TForm1.BoxMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin drag := false; end; Ich weiss ja nicht ob der Mausbutton gerade gedrück ist und wo sich der Cursor gerade befindet. |
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.
|
Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
Klappt gut, danke :)
|
Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
Alternativ könntest du auch einfach auf ein Image zeichnen.
|
Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 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