![]() |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Zitat:
|
AW: Easy3DGL - Eine Bibliothek für OpenGL
Kann man auch eine bereits erstellte Form (z.B. Quader) während der Laufzeit löschen?
Erzeugt habe ich eine Bühne im FormCreate mit:
Delphi-Quellcode:
Bühne[1] := GLQuader.Create(-X/2 - 0.25, 4, 0, 0.1, 6, Y-7, 'textures/bg.bmp');
Löschen möchte ich diesen Quader durch einen Button während der Laufzeit:
Delphi-Quellcode:
Bühne[1].Free;
Das funktioniert aber leider nicht... Kann jemand helfen, oder weiß jemand eine Lösung? :) Vielen Dank im Voraus! |
AW: Easy3DGL - Eine Bibliothek für OpenGL
probier doch mal
Code:
Bühne[1].Free;
Bühne.Delete(1); |
AW: Easy3DGL - Eine Bibliothek für OpenGL
E2018 Record, Objekt oder Klassentyp erforderlich...
Hab's dann mal probiert mit
Delphi-Quellcode:
Bühne[1].Delete(1);
aber das geht leider nicht... (E2003 Undeklarierter Bezeichner: 'Delete') :( Ich suche mal weiter nach Lösungen :D Notlösung wäre alles neu zu zeichnen aber wenn viele Objekte gezeichnet werden, kann das ja auch gerne mal länger dauern... |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Guck Dir noch mal meinen Code genau an und vergleich mal Zeichen für Zeichen!
Du mußt das Ding auch vor dem Delete befreien mit Free, da sonst ein Speicherleck bleibt. |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Leider stürzt das Programm bei Bühne[1].Free ab.
Heißt: Systemfehler Code 8. Und mit Bühne.Delete(1) lässt sich das Projekt nicht kompilieren... |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Lösung gefunden:
Hinzufügen:
Delphi-Quellcode:
Löschen:
begin
Bühne[1] := GLQuader.Create(-X/2 - 0.25, 4, 0, 0.1, 6, Y-7, 'textures/bg.bmp'); AddSolid(Bühne[1]); end;
Delphi-Quellcode:
var CItem: GLObject;
begin CItem := SolidList[0]; FreeAndNil(CItem); SolidList.Delete(0); end; |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Da anscheinend noch Interesse an dieser Unit besteht, setze ich mich mal hin und schreibe sie soweit um, dass sie wirklich sauber zu benutzen ist.
Diese Unit ist ursprünglich in Java geschrieben worden, und zwar zusammen mit meinem Informatik-Lehrer, und als ich sie nach Delphi übersetzt hatte war ich noch ziemlicher OpenGL Neuling. Ich werd jetzt mal einiges an Techniken einbauen, die ich seitdem gelernt habe (Mutlisampling, Blinn-Phong-Lighting, etc.) und das Object-Handling verbessern. Vielleicht füge ich auch meine (sehr simple) Partikelengine ein. Desweiteren werde ich die glBMP durch die glBitMap ersetzen, sodass auch .tga und .png-Files unterstüzt werden, und außerdem weniger Fehler beim Laden von Texturen entstehen. Also warte am besten 2-3 Tage, dann dürfte die Unit in einem Zustand sein dass sie Fehlerfreier arbeitet. |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Wow das ist klasse :)
Genial wären auch noch andere Formen, aber ich möchte hier nicht zu viel verlangen. Vielleicht kann ich ja (darf ich ja) auch noch eigene Formen in diese Unit einbinden. :-D |
AW: Easy3DGL - Eine Bibliothek für OpenGL
Zitat:
Mit ein wenig Arbeit könnte man auch die gl3ds einbauen, eine Unitsammlung zum Laden von 3ds/x/obj Files...mal schauen, mal schauen ^^ Ich freue mich über Verbesserungen der Unit, sie ist sowieso eher als simple Inspiration gedacht, als als irgendwas auch nur annähernd ausgewachsenes ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 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