"Variable Viewer" immer leer?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

"Variable Viewer" immer leer?

Beitrag von Jet1199 »

Hallo,

noch-Anfänger, nach wenigen projekten nun umgestiegen nach PB4.01, in der Forumsuche erfolglos:

Warum bleibt mein Variable Viewer stets leer? Es sollte doch genügen, im Extremfall PB leer zu starten und "on the fly" loszulegen.
Im Sinne von

a=1
b=2
MessageRequester("Beispiel","a: "+str(a)+" b: "+str(b)+" a+b="+str(a+b))

Also nur mal so als Mini-Beispiel.
Wieso werden die beiden Variablen nicht im Viewer angezeigt?!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Code: Alles auswählen

Define a=1 
Define b=2 
MessageRequester("Beispiel","a: "+Str(a)+" b: "+Str(b)+" a+b="+Str(a+b)) 
die IDE registriert anscheinend nur explizit definierte variablen.
auch nur die tauchen in der autovervollständigen-liste auf.

namen von on-the-fly-variablen erscheinen in keiner von beiden listen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

Beitrag von Jet1199 »

Danke für die schnelle Antwort, insbesondere zu diesem Datum/dieser Uhrzeit ;-))

Also ergäntze ich mein Programm, deklariere die beiden Variablen explizit als Byte, indem ich diese meinem Programm voranstelle:

a.l
b.l

a=1
b=2
MessageRequester("Beispiel","a: "+Str(a)+" b: "+Str(b)+" a+b="+Str(a+b))

-> nö, nix Variablen Viewer :-(
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja nee.. du musst "define" benutzen...

..vielleicht wäre es zu aufwendig gewesen, wenn der editor jede irgendwo irgendwie erwähnte variable als solche erkennen soll.


> Danke für die schnelle Antwort
kein problem... ich bin öfters sonntag nacht noch nach eins online...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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

Beitrag von ts-soft »

Declarieren mit Define, Global, Protected, usw.
Dann wirds auch angezeigt. Du solltest Dir vielleicht von vornherein
angewöhnen, EnableExplicit an den Beginn Deines Sources einzufügen. On
The Fly deklaration sollte man garnicht verwenden, weil so Fehler schwerer
zu finden sind.
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
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Declarieren mit Define, Global, Protected, usw.
...ist wie TS schon sagt eine gute Idee. Ich war lange Zeit zu faul, das zu schreiben, jetzt ärger ich mich mit Schreibfehlern rum. Sich das anzugewöhnen ist ne gute Sache.
Optimismus ist ein Mangel an Information.
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

Beitrag von Jet1199 »

Danke Euch drei Nachtschwärmern.

Ihr habt Recht, angezeigt werden die Variablen nur, wenn sie vorher vereinbart werden, also nicht 'on the fly' gefüllt werden.

Mein Miniprogramm ist also um zwei Zeilen gewachsen:

Code: Alles auswählen

Global a.l
Global b.l
  a=1
  b=2
MessageRequester("Beispiel","a: "+Str(a)+"  b: "+Str(b)+"  a+b="+Str(a+b))
Debugger ist enabled, das Variablenfenster wird angezeigt. Beide Variablen erscheinen, allerdings nur als Name. Zu erwarten wären ja drei Spalten wie früher: Name/Wert/Typ.
Ist das etwa eine grundlegende Einstellungsfrage?
Hab schon alles runtergelöscht, 4.02 Voll-Installation nochmal runtergeladen und neu installiert. Nix, ich bekomme nur den Namen.
Ich denke ich muß nicht a.l=1 schreiben?!

Screenshot
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

Beitrag von ts-soft »

>> Beide Variablen erscheinen, allerdings nur als Name
Dann ist doch alles in Ordnung! Oder was hast Du erwartet?
Um Werte zu verfolgen, dafür gibts den Debugger. Der VariablenViewer der
IDE soll Dir nur helfen den richtigen Namen zu finden. Das ist bei grossen
Sourcen schon hilfreich.
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
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

Beitrag von Jet1199 »

Mist, das isses.
Es gibt zwei Variablen-Viewer mit demslben Namen:

1x 'Tools/Variable Viewer'
1x 'Debug/Variable Viewer'

Den Debug-Viewer kann man nur im laufenden Programm (Debug-Modus) aufrufen, dann sind die Werte auch da. Den hab ich bisher nie für voll gemonnen, nur vermißt.

Danke, mein Problem ist damit gelöst :allright:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

:D na siehste, wer suchet der findet...

btw.. in dem Debug-Viewer tauchen auch on-the-fly variablen auf...
war also ein mißverständnis, welchen viewer du meinst...


btw. du hast jetzt Global verwendet,
das solltest du nur verwenden, wenn du sie auch wirklich Global brauchst.

wenn du "ganz normale" Variablennamen haben willst,
dann kannst du sie per Define vordefinieren, und zwar in jedem geltungskreis extra,
d.h. wenn du in einer Procedure eine Variable verwenden willst,
muss das Define auch am anfang der Procedure stehen.
das mag dir jetzt etwas umständlich erscheinen, jede variable explizit zu definieren,
aber man kann damit wirklich ne menge tippfehler vermeiden,
die besonders bei umfangreicheren codes sehr mühsam aufzuspüren sind.

benutz einfach mal EnableExplicit am anfang deiner codes
und fang an dich dran zu gewöhnen, es lohnt sich. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Gesperrt