Seite 1 von 1

Globale Variablen oder Constanten für Gadgets?

Verfasst: 28.01.2013 14:23
von Justin
Hallo,

für die Erstellung von Fenster/Gadget verwende ich schon immer Constanten. Das man dafür auch globale Variablen verwenden kann wusst ich - aber seit der FormDesigner jetzt endlich weiterentwickelt wird setze ich mich mit dem auseinander und der verwendet ja standartmäße globale Variablen um Fenster/Gadgets zu initialisieren.

Wollte einfach jetzt mal anklopen und wissen, wo die Vor-/Nachteile der jeweiligen Varianten liegen und was ihr bevorzugt?

Gruß
Justin

Re: Gloabele Variablen oder Constanten für Gadgets?

Verfasst: 28.01.2013 14:34
von STARGÅTE
Eigentlich unterschiedet sich ja nur die Initialisierung: bei Konstanten erstellst du einen Enumeration-Block und bei den Variablen n Liste von Globalen Variablen.

Ich bevorzuge die Konstanten Variante, weil Konstanten für mich (seit ich mit PB arbeite) sinnbildlich für Objekte stehen, wie halt Windows, Gadgets, Images usw.
Natürlich benutze ich auch die dynamische Variante des Erstelles von Gadgets mit PB_Any, aber meist nur dann, wenn ich es wirklich dynamisch brauch (unbestimmte Anzahl von Gadgets).

Ein Vorteil der Konstanten Variante wäre, dass man in Select-Case-Blöcken sowas wie: Case #Gadget1 to #Gadget5 machen kann. In der Variablen-Variante, muss dort alles einzeln genannt werden.

Re: Gloabele Variablen oder Constanten für Gadgets?

Verfasst: 28.01.2013 20:44
von Bisonte
STARGÅTE hat geschrieben:In der Variablen-Variante, muss dort alles einzeln genannt werden.
nana... jetzt unterschlägst du aber Arrays,Listen und Maps.... da kann man auch schick mit Schleifchen arbeiten ;)

Ich bevorzuge eher die Variablenversion, genau aus den mir genannten Gründen. Es sei denn : Die Anzahl der Konstanten bleibt
extrem überschaubar ... (Kleines Fenster mit nur 4 Gadgets z.B.)

Re: Gloabele Variablen oder Constanten für Gadgets?

Verfasst: 28.01.2013 21:02
von ts-soft
Wenn man keine dynamsichen GUI Elemente erstellt, also auch kein #PB_Any verwendet, ist die Konstante auf jedem
Fall die bessere Wahl. Globale Variablen sind immer zu meiden, so weit es möglich ist, mal abgesehen von kleinen
übersichtlichen Anwendungen.

Allerdings sollten die Konstanten auch sprechende Namen haben. #Gadget_0, #Gadget_1 usw. ist natürlich Müll :mrgreen:

Die Enumerationen, die der neue FormDesigner erzeugt, sollte man aber besser anpassen und das
#PB_Compiler_EnumerationValue entfernen, bzw. durch passende Werte ersetzen.
Der zählt ja die Werte älterer Enumerationen, sowie die aller Objekte mit, so das dort viel zu viel Speicher
verschwendet wird.

Eine autom. Nachbearbeitung des generierten Source mit Visuell Generic behebt solche Probleme.

Gruß
Thomas

Re: Gloabele Variablen oder Constanten für Gadgets?

Verfasst: 28.01.2013 22:13
von STARGÅTE
Bisonte hat geschrieben:
STARGÅTE hat geschrieben:In der Variablen-Variante, muss dort alles einzeln genannt werden.
nana... jetzt unterschlägst du aber Arrays,Listen und Maps.... da kann man auch schick mit Schleifchen arbeiten ;)
Das würde ich aber als hybriden Bezeichnen, da du ja einerseits das Array global definieren musst und #PB_Any nutzt, andererseits aber auch Konstanten benutzt, nämlich als Array-Index (außer du verwendest da auch nur 0,1,2,3).

Natürlich kann man auch eine Map Gadget.i() definieren und dann Gadget("Button 1") = ButtonGadget(...) schreiben, aber dann kann man meiner Meinung nach gleich echte Konstanten nutzen.

Und Elemente einer LinkedList kann man ja nun garnicht mehr in einem Select-Block abfragen wie man es in PureBasic "gewohnt ist".

Re: Gloabele Variablen oder Constanten für Gadgets?

Verfasst: 29.01.2013 11:53
von Justin
moin moin,

danke für eure Meinungen. Zumindest weiss ich jetzt, dass ich nicht der einige bin, der weiterhin mit Konstanten arbeitet.

Gruß
Justin