Feature request > IDE/Syntax

Constant-Enumeration

<< < (2/3) > >>

kanonet:
Genau genommen würde das so nicht mal funktionieren. Du kannst 10 mal hintereinander GENSPRITE aufrufen und wirst 10 mal die gleiche Nummer zurück bekommen. Du musst GENSPRITE-LOADSPRITE-GENSPRITE-LOADSPRITE etc... aufrufen, GENSPRITE gibt die nächste freie ID zurück, fragst du eine ID ab und lädst dann kein Sprite auf diese ID ist sie beim nächsten GENSPRITE immer noch leer und wird folglich wieder zurück gegeben.
Im übrigen wäre es wirklich ein 'dirty hack' SpriteIDs für controlls zu nutzen, mal ganz davon abgesehen, dass dies ja nichts mit CONSTANTs zutun hätte, sondern ganz normal als Integers gespeichert werden würde.

UserWithoutGLBasic:
 :zzz:
Es war ja nur ein Beispiel und ist sowieso kein funktionierender Code!
Zwischen den GenSprite()-Aufrufen hätte ich sicher noch etwas stehen was z.B. etwas auf die Oberflächen der Sprites malt oder lädt- das ist doch wohl total egal. Und was ist "Dirty Hack" wenn ich Sprites als Buttons verwenden und jedem Button einen Namen geben möchte (die Konstante steht oben in den eckigen Klammern!).
Vieleicht kriegt jeder Button auch 4 Sprites, einen für gedrückt, einen für nicht gedrückt, einen für disabled, einen für Maus-drüber...
Und wenn ich noch einen Button dazufügen bzw. einschieben will muss ich komplett neu durchnummerieren?

Es geht auch überhaupt nicht um's Detail wofür ich Konstanten verwende - nämlich so gut wie alles was in meinem Programm feststehende Werte sind. Denen geb ich einen Namen. Was weiss ich denn, wofür ich letztes Jahr in irgendeinem If-Satz eine 7 eingesetzt habe?
Momentan nummeriere ich halt meine Konstanten manuell, das geht zwar auch - ist aber wie gesagt sehr unflexibel und umständlich insofern man jedes Mal wenn man ein neues Objekt einschiebt die ganzen folgenden Nummern ändern muss. Ausserdem ist dieses Verfahren sehr Tippfehler-anfällig. 

kanonet:
Nun es wäre durchaus nicht falsch, hätte jemand erwartet, dass er erst mal alle SpriteIDs definieren kann und sie erst später verwendet. Wäre denkbar, funktioniert in GLBasic aber nicht. Daher mein Hinweis, nur für den Fall, war ja schließlich aus dem Beispiel nicht ersichtlich, ob dir das klar ist...

Was den 'dirty hack' betrifft hatte ich dich falsch verstanden, obwohl es nicht da steht, hatte ich unterstellt, dass du die SpriteIDs später auch als allgemeine ControlIDs verwenden willst. Mein Fehler.

Natürlich gibt es gar keinen Grund, warum alle Constants umbenannt werden sollten, wenn du einen dazwischen einfügst, was spricht dagegen, dass zwischen Button mit Wert 2 und Button mit Wert 3, Button mit Wert 45 erscheint? Im Kommentar unter/über den CONSTANTs vermerken was die höchste ID ist, Button einfügen mit jener ID und Kommentar korrigieren. Wie gesagt, der Constant Block muss ja keine aufsteigenden Nummern habe, es ist einzig wichtig, dass keine Nummer doppelt auftritt. Alles in allem ohne allzu viel Aufwand machbar, bei entsprechender Disziplin auch nicht zu Fehleranfällig.


Insgesamt würde ich mir anstelle des simplen ENUM eine erweiterte Programmierbarkeit des Preprozessors wünschen, dass man automatisiert Codeteile ersetzen oder einfügen kann, quasi ein kleines Programm dass über den Code läuft, bevor er compiliert wird. Damit könnte dann dein aufsteigendes durchnummerieren der Konstanten erledigt werden, aber auch viel komplexere Dinge.
(Ja ich weiß, dass ich das einfach selbst schreiben und vor dem kompilieren über das Codefile laufen lassen könnte...)

UserWithoutGLBasic:

--- Quote from: kanonet on 2013-Mar-05 ---...Insgesamt würde ich mir anstelle des simplen ENUM eine erweiterte Programmierbarkeit des Preprozessors wünschen..

--- End quote ---

Dann Requeste das doch bitte in deinem eigenen Thread anstatt den - mir wichtigen - mit solchen Bemerkungen abzuwürgen.
Mir ist es auf jeden Fall so wichtig das ich GLBasic nicht kaufen werde wenn es das nicht hat.

Marmor:
machs gut..

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version