Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: Nicht sichtbaren TPaintBox Inhalt speichern

  Alt 11. Feb 2015, 11:25
Bei vielen VCL-Elementen kann man Visible auf false setzen ODER Left auf minus Soundsoviel minus Komponentenbreite
Das kann man auch bei der PaintBox, aber dann kann man da auch nicht mehr drauf malen.

Grund: TPaintBox und TLabel (PS: das "echte" Windows-Label ist TStaticText) haben keine eigene Zeichenfläche, sondern verwenden die Ausgabe/Canvas des Parents.
Es wird direkt somit direkt in die Ausgabe/Ansicht gemalt, aber da dieses nirgenwo zwischengespeichert ist, kann man es nicht "sicher" wieder auslesen.

Seit Vista benutzt Windows einen zwar Cache, durch den Desktop-Window-Manager, damit er die Transparenzen des Aero berechnen kann, aber es gibt keinen Weg diesen DWM nach einem Bild zu fragen.
In XP kennt man das, wenn man z.B. auf eine TPaintBox oder direkt auf das Form.Canvas malt ... wenn man das Fenster minimiert, aus dem Desktop rausschiebt oder ein anderes Fenster drüber schiebt, dann ist das gemalte weg/übermalt.
$2B or not $2B

Geändert von himitsu (11. Feb 2015 um 11:53 Uhr)
  Mit Zitat antworten Zitat