AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Inhalt der Paintbox verschwindet bei überlappenden Fenstern
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt der Paintbox verschwindet bei überlappenden Fenstern

Ein Thema von Diamont · begonnen am 1. Apr 2009 · letzter Beitrag vom 2. Apr 2009
Antwort Antwort
Diamont

Registriert seit: 21. Mai 2008
30 Beiträge
 
#1

Inhalt der Paintbox verschwindet bei überlappenden Fenstern

  Alt 1. Apr 2009, 16:47
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!
Windows Vista Home Premium (64 Bit)
Intel Core 2 Duo E8400 @ 3,0 GHZ
Nvidea Geforce 8800 GTS 512
4 GB RAM
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 1. Apr 2009, 16:51
Die Zeichneaktionen müssen im OnPaint-Event durchgeführt werden. Ansonsten passiert das was du gerade hast.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Diamont

Registriert seit: 21. Mai 2008
30 Beiträge
 
#3

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 1. Apr 2009, 17:24
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.
Windows Vista Home Premium (64 Bit)
Intel Core 2 Duo E8400 @ 3,0 GHZ
Nvidea Geforce 8800 GTS 512
4 GB RAM
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 1. Apr 2009, 18:29
Zeichne auf ein Bitmap im Speicher und kopiere es bei Bedarf und im OnPaint Ereignis auf den Canvas der Paintbox.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Diamont

Registriert seit: 21. Mai 2008
30 Beiträge
 
#5

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 1. Apr 2009, 22:25
Klappt gut, danke
Windows Vista Home Premium (64 Bit)
Intel Core 2 Duo E8400 @ 3,0 GHZ
Nvidea Geforce 8800 GTS 512
4 GB RAM
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#6

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 1. Apr 2009, 23:07
Alternativ könntest du auch einfach auf ein Image zeichnen.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Inhalt der Paintbox verschwindet bei überlappenden Fenst

  Alt 2. Apr 2009, 00:05
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...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 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