Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Background-Erase beim TPanel unterbinden
Pellaeon - So 06.11.05 17:07
Titel: Background-Erase beim TPanel unterbinden
Hiho,
also mein Problem: ich habe ne Anwendung, welche mit OpenGL was anzeigt und dieses auf ein TPanel. Wenn ich das Programm starte passiert jedocj folgendes: in der formShow zeichne ich das erste mal. Dieses Bild wird dann von dem Panel wieder mit der Standardfarbe übermalt, sodass ich erst wieder ein Neuzeichnen auslösen muss damit ich meine Grafik sehe.
Wie kann ich das abschalten, dass das TPanel sich mit der Standardfarbe übermalt beim Start?
MfG Pellaeon
Tilman - Fr 11.11.05 13:21
Moin,
Folgenden Tipp auf eigene Gefahr.
Leite eine neue Komponente von TPanel ab und überschreibe Paint, >>ohne<< inherited aufzurufen. Dann malt sich die kompo nicht mehr selbst. Im Folgenden Beispiel habe ich zusätzlich eine Methode "zeige" eingeführt, nur um zu Beweisen das die Komponente überhaupt da ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| var Form1: TForm1;
implementation
{$R *.dfm} type newp = class(TPanel) procedure paint; override; procedure zeige; end;
procedure newp.paint; begin end;
procedure newp.zeige; begin inherited paint; end;
var a: newp; procedure TForm1.Button1Click(Sender: TObject);
begin a := newp.Create(self); a.Parent := self; a.left := 100; a.Top := 100; a.Width := 100; a.Height := 200; a.Show; end;
procedure TForm1.Button2Click(Sender: TObject); begin a.zeige; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!