Autor Beitrag
Pellaeon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 06.11.05 17:07 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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.

ausblenden volle Höhe 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
// Hier steht nix - also passiert nix
end;

procedure newp.zeige;
begin
inherited paint;  // nur zur Überprüfung
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;