AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte glComponents - GUI für OpenGl
Thema durchsuchen
Ansicht
Themen-Optionen

glComponents - GUI für OpenGl

Ein Thema von jakobwenzel · begonnen am 19. Mär 2007
Antwort Antwort
Benutzerbild von jakobwenzel
jakobwenzel
Registriert seit: 31. Aug 2005
Normale VCL-Komponenten sind auf OpenGl-Formularen nicht mehr sichtbar und oft will man (für Spiele) auch nicht das Standardaussehen, sondern ein eigenes.

Hierfür habe ich glComponents geschrieben.
Das Projekt bietet ein Bitmap-Fontsystem und die meisten Standard-Komponenten für OpenGl.

Die Komponenten wären im Einzelnen:
  • TglLabel
  • TglPanel
  • TglButton
  • TglEdit
  • TglCheckbox
  • TglRadioButton
  • TglImage

Besonderheiten sind:
  • Animierte Statusübergänge der Komponenten
  • Skinnbar
  • Image und Button unterstützen nicht POT-Bilder Geschwindigkeitsverlust und auch auf alten Rechnern

Hinweis: Es wird nur Y-Ursprung oben unterstützt, Standard für OpenGl ist jedoch unten
So funktioniert das ganze Perfekt zusammen mit Fear2d




Die Verwendung von glComponents erfolgt ähnlich wie die manuelle Initialisierung von VCL-Komponenten, es müssen allerdings einige Besonderheiten beachtet werden.

Zuerst muss eine zentrale Verwaltungsklasse vom Typ TglManager erstellt werden. Deren Konstruktor wird als Parameter entweder Breite und Höhe des Formulars oder direkt das Formular übergeben. Optional kann auch noch der Standardskin und das Verzeichnis angegeben werden.

Nun können einzelne Komponenten erstellt werden. Hier sind die Parameter des Konstruktors entweder nur die Verwaltungsklasse oder eine übergeordnete Komponente.

Die meisten Eigenschaften der Komponenten orientieren sich an der VCL, eine Ausnahme bildet jedoch Color:
Hier werden OpenGl-typisch die Rot-, Grün-, Blau- und Alphawerte (Transparenz) einzeln in Single-Variablen mit dem Wertebereich 0 - 1 gespeichert. Normale Delphi-TColor-Werte können über die Methode FromTColor benutzt werden.


Damit die Eingaben nun auch bei den Komponenten ankommen, müssen mehrere Arten von Ereignissen an die Verwaltungsklasse weitergeleitet werden.

Das sind im einzelnen:
  • MouseDown
  • MouseUp
  • MouseMove
  • KeyDown
  • KeyUp

In der Ereignisbehandlung müssen nun die gleich benannten Methoden der Verwaltungsklasse aufgerufen werden, die in der Regel auch die selben Parameterlisten haben.

Zusätzlich muss noch die Windows-Botschaft CM_DIALOGKEY abgefangen werden (die zugehörige Ereignisbehandlung muss dann leer sein), damit auch auf die Tab-Taste reagiert wird.


Die gesamte GUI kann hier inklusive eines Demo-Projekts runtergeladen werden: http://wilson.kilu.de/counter/load.php?id=3 (583kb)

Lizenz: 2-clause-BSD
Aktuelle Version: 0.1

Benötigte Units:
  • Fear2d: Nur für die Demo benötigt, Initialisierung kann auch manuell erfolgen
  • dglOpenGl: Sollte eigentlich auch mit anderen OpenGl-Implementationen für Delphi laufen, habe ich aber nicht getestet
  • glBitmap
Miniaturansicht angehängter Grafiken
glc_733.jpg  
"My store now sells Ninja Weapons!"
Comicverkäufer bei den Simpsons
 
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz