Bug? Fehler in "OpenWindow(#Window_0..."?

Fragen und Bugreports zur PureBasic 4.0-Beta.
kajott
Beiträge: 35
Registriert: 21.11.2005 02:00

Bug? Fehler in "OpenWindow(#Window_0..."?

Beitrag von kajott »

Hi,

folgender Code lässt sich nicht wie gewünscht ausführen:

Code: Alles auswählen

Auszug aus meiner common.pb


;
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)

programmversion.s="blahblubb 0.95"




;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_1
EndEnumeration

Enumeration
  #MENU_1
  #MENU_2
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Text_0
  #Stussausgabe
  #Button_0
  #Button_1
  #Button_2
  #CheckBox_0
EndEnumeration

;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 40)
Global FontID2
FontID2 = LoadFont(2, "Arial", 11)
Global FontID3
FontID3 = LoadFont(3, "Arial", 12)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 218, 90, 641, 480, programmversion$,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
.
.
.


Die Variable "programmversion.s" möchte ich im Hauptfenster in der Titelzeile anzeigen lassen.
Steht statt dem Variablennamen "programmversion$" ein String ( z.B. "blahblubb") in "OpenWindow(#Window_0, 218,...", funktioniert es!

Also:

OpenWindow(#Window_0, 218, 90, 641, 480, "blahblubb 0.95", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )

funktioniert!


OpenWindow(#Window_0, 218, 90, 641, 480, programmversion$, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )

funktioniert nicht!


Das eigentliche Programm funktioniert fehlerlos.[/i]
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

programmversion.s ist nicht gleich programmversion$

und sowas willst Du uns als PB-Bug verkaufen? /:->

Grüße ... Kiffi
a²+b²=mc²
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 »

Woher soll die Procedur die Variable den kennen, wenn sie nicht Global ist.

Und bitte aussagekräftigen Titel, in diesem Falle liegt zwar ein Bug vor, aber nicht in PB :mrgreen:
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
kajott
Beiträge: 35
Registriert: 21.11.2005 02:00

Beitrag von kajott »

Kiffi hat geschrieben:programmversion.s ist nicht gleich programmversion$

und sowas willst Du uns als PB-Bug verkaufen? /:->
Nein eigentlich nicht!
Auch wenn beidemale "programmversion$" oder "programmversion.s" steht, ging es nicht.

Da aber schon der Einwand mit Global (und der "Procedure") kam, zieh ich den "BUG!!!!"-Schrei hiermit zurück

:oops: :roll:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Auch wenn beidemale "programmversion$" oder "programmversion.s"
> steht, ging es nicht.

der Unterschied zwischen beiden Variablen ist Dir aber bekannt, ja?

> zieh ich den "BUG!!!!"-Schrei hiermit zurück

Tipp für's nächste Mal: Erst mal im Forum 'Allgemein' oder gar 'Anfänger'
abklären, ob's wirklich ein PB-Bug ist. Dann kannstes ja immer noch hier
reinsetzen.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Extra damit dieses vermeintliche "Problem" nicht mehr als Bug gemeldet wird, ist in der aktuellen PureBasic-Hilfe im Kapitel "Variablen" folgende Information enthalten:
Schreibweise von String-Variablen: es ist möglich, '$' als letztes Zeichen eines Variablennamens zu verwenden, um die Variable als String zu kennzeichnen. Auf diesem Weg können Sie 'a$' und 'a.s' als zwei unterschiedliche String-Variablen verwenden. Bitte beachten Sie, dass das '$' zum Variablennamen gehört und immer hinzugefügt werden muss, während das '.s' nur beim ersten Deklarieren der String-Variable benötigt wird.
a.s = "One string"
a$ = "Another string"
Debug a ; wird "One string" ergeben
Debug a$ ; wird "Another string" ergeben
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
kajott
Beiträge: 35
Registriert: 21.11.2005 02:00

Beitrag von kajott »

>> Auch wenn beidemale "programmversion$" oder "programmversion.s"
>> steht, ging es nicht.

>der Unterschied zwischen beiden Variablen ist Dir aber bekannt, ja?

Ja, steht ja in der Hilfedatei zu PB.



>> zieh ich den "BUG!!!!"-Schrei hiermit zurück

>Tipp für's nächste Mal: Erst mal im Forum 'Allgemein' oder gar 'Anfänger'
>abklären, ob's wirklich ein PB-Bug ist. Dann kannstes ja immer noch hier
>reinsetzen.


Naja, da war ich mit Blindheit geschlagen und habe in der "common.pb" nicht gesehen, das "Openwindow" in'ner "Procedure" steht.

Aber werde mich dann an deinen Tip halten! :allright: <)
Gesperrt