Seite 1 von 1

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

Verfasst: 22.08.2006 23:02
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]

Verfasst: 22.08.2006 23:05
von Kiffi
programmversion.s ist nicht gleich programmversion$

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

Grüße ... Kiffi

Verfasst: 22.08.2006 23:06
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:

Verfasst: 22.08.2006 23:22
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:

Verfasst: 22.08.2006 23:35
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

Verfasst: 22.08.2006 23:41
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

Verfasst: 22.08.2006 23:46
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: <)