![]() |
Re: Opengl - Ratlos -
OnShow ist genau der falsche Ort dafür, da diese Methode jedesmal gerufen wird, wenn das Formular sichtbar wird. Du willst aber sicher nur einen RC. Entweder Du merkst Dir in einem Boolen, ob das Fenster schonmal sichtbar war, oder du machst das im CreateWnd;
|
Re: Opengl - Ratlos -
... aber wenn ich das fenster schließe mache ich folgendes
Delphi-Quellcode:
das heißt ich muss jedesmal einen Rendering Context definieren. oder nicht??!
// Release OpenGL when window closes
procedure TFormOpenGl.FormDestroy(Sender: TObject); begin wglMakeCurrent(0,0); wglDeleteContext(rcPointer); releasedc(GlPanel.Handle,dcPointer); end; |
Re: Opengl - Ratlos -
OnShow korrespondiert doch aber mit OnHide, während FormDestroy mit FormCreate korrespondiert. Oder so.
|
Re: Opengl - Ratlos -
Zitat:
wenn ich das fenter brauche, mache ich im Hauptformular folgendes:
Delphi-Quellcode:
das formular wird wenn es nicht mehr benötigt wird zerstört.
FormOpenGl := TFormOpenGl.Create(self);
FormOpenGl.Parent := Self; FormOpenGl.Align := alClient; FormOpenGl.Visible := true;
Delphi-Quellcode:
somit gibt es keine konflikte, meine ich zumindest??!
if FormOpenGl <> Nil then begin
FormOpenGl.Visible := false; FormOpenGl.Close(); FormOpenGl.Free(); FormOpenGl := Nil; end; |
Re: Opengl - Ratlos -
Zitat:
|
Re: Opengl - Ratlos -
Zitat:
des heißt der user kann zwar das Hautformular schließen und somit das programm beenden aber nicht das OpenGlFormular. in meine Anwendung ist nur eine formular gleichzeitig mit der Hauptformular sichtbar verknüpft!!! |
Re: Opengl - Ratlos -
Zitat:
Ich benutze bei mir eigentlich ausschließlich OnShow und OnClose und hatte damit bisher noch nie Probleme. OnHide wird nämlich nicht aufgerufen, wenn das Fenster geschlossen wird. Klar wenn dann noch einmal OnShow aufgerufen wird dann muss man das entweder per Flag abfangen oder man hat einen zusätzlichen Kontext. Aber .Hide steht normal nur im Code weswegen man darüber eigentlich eine ganz gute Kontrolle haben sollte. Und wenn das Fenster geschlossen wird dann wird OnClose aufgerufen. |
Re: Opengl - Ratlos -
Da tritt mich doch ein... Sorry, du hast recht. OnShow wird wirklich nicht beim Hervorholen auferufen. Ich hatte das irgendwie anders in Erinnerung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz