Globale Variablen oder Constanten für Gadgets?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

Globale Variablen oder Constanten für Gadgets?

Beitrag 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
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Gloabele Variablen oder Constanten für Gadgets?

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Gloabele Variablen oder Constanten für Gadgets?

Beitrag 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.)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Gloabele Variablen oder Constanten für Gadgets?

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Gloabele Variablen oder Constanten für Gadgets?

Beitrag 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".
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

Re: Gloabele Variablen oder Constanten für Gadgets?

Beitrag 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
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Antworten