Ich möchte mal wissen wie man am besten ein GUI realisiert.
Meine Idee wäre es jetzt einzelne Menü Teile als eigene Formen mit bsNone und fsStayOnTop zu realisieren, welche man dann auch einfach verschieben könnte, allerdings würde dies ein riesiges Problem mit den verschiedenen Auflösungen der Benutzer geben. Wie könnte man sowas realisieren?
Gibt es eigentlich schon vorgefertige Menu-Komponenten für z.b. eine OpenGL Listbox oder müsst ich die dann selbst entwickeln?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Lossys GL Komponenten sollten für den Delphi+GL Entwicklert die Komponenten der Wahl sein.
Ich selbst baue auch gerade an einer GUI. Allerding basiert die auf SDL und ist in C++ geschrieben. Momentan gibts bei mir:
- Einen funktionstüchtigen Manager für die Formulare und Komponenten
- glForm
- glButton
- glEdit
- glLabel
- Funktionstüchtige Unterstützung von Fonts durch SDL_ttf
Ich könnt ja auch mal ein Projektthead aufmachen... hmmm...mal guckn
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Je nachdem was du für einen Funktionsumfang in der Bedienung haben willst wird entsprechend auch das Handling darunter komplizierter. Label ist ja lediglich ein Text, Panel ist sowieso sehr einfach aber bei einer Listbox. Das ist ein wenig komplexer. Das ist ein scrollbares Fenster mit vielen klickbaren Einträgen. Bei meinen derzeitigen Komponenten habe ich auch sehr viel Wert auf die Tastaturunterstützung gelegt. Das sind alles so Faktoren die es nicht einfacher machen. Du solltest dir auf jeden Fall überlegen was du alles haben willst und ob du das wirklich alles brauchst. Evtl könnte man eine ListBox auch als RadioBoxen darstellen etc. Das würde es schon wieder einfacher machen.
Nein die Listbox soll nur vom Programm aus mit Einträgen gefüllt werden können, was die Sache schon um einiges einfacher macht. Das einzigste Problem wär dann noch das scrollen.
Aber das ist denke ich auch lösbar ...
Auf jedenfall muss ich jetzt erstmal mit deiner glBitmap.pas klar kommen, da ich mein komplette Projekt von der Texture.pas auf glBitmap.pas umstellen will.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Max!mus hat geschrieben:
Auf jedenfall muss ich jetzt erstmal mit deiner glBitmap.pas klar kommen, da ich mein komplette Projekt von der Texture.pas auf glBitmap.pas umstellen will.
Das geht schnell. Die paar Funktionen die man brauch sind loadFromFile/Stream, genTextur, Bind, und eventuell noch FlipV/H
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hi,
Bin auch grad dabei eine eigene GUI zu basteln.
Momentan habe ich die folgende Komponenten drin: glPanel, glCheckbox, glButton, glImage, glLabel, glListbox und natürlich auch die Form, die man aber auch nicht anzeigen lassen muss Die Form kann man auch frei verschieben und wenn man möchte auch mit einem Klick auf das X schließen.
Die Listbox war das schwerste, aber jetzt funzt sie, und man kann für jede Schriftgröße die Items selectieren.
Sie basiert auf der TList von delphi. Man kann sie aber auch als Memo benutzen (ohne Selektion).
Wenn interesse besteht kann ich die bald (~1 Woche) mal als Projekt vorstellen und sie für jeden zur Verfügung stellen.
Muss halt nur noch ne Doku dazu schreiben un ein kleines Beispielprogramm.
Ich brauchte auch eine Listbox in meinem Game, und dann habe ich mich eben entschlossen eine 'ganze' GUI draus zu machen.
Wie gesagt, wenn Interesse besteht... Sie kann vielleicht als Übergang zu Lossy's <United Contols ?> dienen...
Wow! - Ich hätte nicht gedacht das momentan soviele ein einem GUI arbeiten ...
Jedoch würd ich sagen ist die glListbox, in dem Umfang indem sie ich brauche wohl der einfachste Teil von der ganzen GUI. (Einfach ein weißes Quadrat zeichnen, Text aus einer TList auslesen und ausgeben)
Inzwischen hab ich den ersten Test von dem GUI fertiggestellt (mal noch ohne Listbox). Naja wenn ich ehrlich bin hat alles auser dem glPanel funktioniert (also hat glLabel und das glMenu, indem alle Menübestandteile verwaltet werden, funktioniert) - bzw. er hat im Prinzip schon funktioniert nur die Texture nicht. Er hatte immer die Farbe wie das erste Pixel der benutzten Textur . (Ich verwende die glBitmap.pas und glBitmap2D).
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Max!mus hat geschrieben:
Wow! - Ich hätte nicht gedacht das momentan soviele ein einem GUI arbeiten ...
Jeder Zumindest in Ansatzen hat jeder an sowas rumgebastelt.
Max!mus hat geschrieben:
Inzwischen hab ich den ersten Test von dem GUI fertiggestellt (mal noch ohne Listbox). Naja wenn ich ehrlich bin hat alles auser dem glPanel funktioniert (also hat glLabel und das glMenu, indem alle Menübestandteile verwaltet werden, funktioniert) - bzw. er hat im Prinzip schon funktioniert nur die Texture nicht. Er hatte immer die Farbe wie das erste Pixel der benutzten Textur . (Ich verwende die glBitmap.pas und glBitmap2D).
Was benutzt du denn? Irgendeine Vorlage oder was selbstgeschriebenes?
An glBitmap sollte es nicht liegen. Da ist ein anderer Fehler.
Der Fehler betrifft nur das Panel?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
In meiner älteren GUI hatte ich auch so mehr oder weniger schon eine ListBox. Richtig spannend wird es erst bei einer ComboBox und überlagernden Elementen + Multiwindow und so was alles.
Zu deinem Problem. Würde so spontan mal darauf tippen, dass du entweder gar keine Texturkoordinaten oder gänzlich falsche angegeben hast. Sonst würsste ich keinen Grund warum er nur das erste Pixel der Textur benutzen sollte. Überprüfe das mal bitte. Wenn nicht wäre ein Bildschirmsample ganz hilfreich.
Ich werd es mal testen ... wenn ich drüber nachdenke daran könnte es wirklich liegen
Lossy eX hat geschrieben:
PS: Was meinst du eigentlich mit deinem glMenu?
glMenu ist eine Klasse die alle Bestandteile des Menüs verwaltet.
Momentan ist diese Klasse allerdings nur dazu da, damit ich im OnIdle Ereigniss nicht ständig glPanel.Show , glLabel.Show etc. aufrufen muss sondern nur glMenu.Show. Die "Komponenten" tragen sich automatisch im OnCreate Ereigniss die eine ObjectList von glMenu und glMenu geht anschließend diese Liste und zeichnet alles.
Überlegt hab ich mir noch, dass z.b. glMenu die ObjectList so sortiert dass eine Textur nur einmal gebunden werden muss und dann alle Teile mit dieser Textur gleich gezeichnet werden. Allerdings ist hier dass Problem dass manche Teile übereinander gezeichnet werden sollen, und bei einem sortieren teilweise etwas falsches überdeckt wird.
Aber erstmal soll das Grundgerüst laufen.
//Nachtrag: Es lag an falschen Textur Koordinaten - Danke sehr!
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.