Seite 1 von 1
Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 12:20
von 3dhubiflieger
Ich programmiere gerade eine neue Version meines Programms joystartend.npage.de
Leider habe ich das Problem das ich mit der Textgadgetfunktion kein & ausgeben kann.
Statt diesem Zeichen wird dann ein anderes anderes _ ausgegeben ??? Keine Ahnung
warum !!
Hier nochmal das Problem
textgadget(gadgetnr,"&")
...gibt irgendwas mit _ aus und nicht &
...Ist das ein Fehler in Purebasic ???
...schon mal vielen Dank im vorraus für eure Antworten !
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 12:25
von RSBasic
Ganz einfach mit doppeltem Und-Zeichen:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(1, 10, 10, 480, 20, "&&Text", 0)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Und nein, es ist kein Fehler, sondern eine Standard-Funktion von Windows. Damit hast du die Möglichkeit, ein bestimmtes Zeichen zu unterstreichen. Sowas wird oft in Menüs angezeigt, damit der Benutzer sieht, dass er das erste Zeichen für eine Tastenkombination nutzen kann.
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 12:28
von 3dhubiflieger
....das ist es ! Das ist ja wirklich der Wahnsinn, wie schnell die Antwort kam. Jetzt kann ich endlich an meinem Programm weiter basteln ! Daaanke !
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 12:28
von edel
Das ist kein Fehler in Purebasic. Unter Windows werde damit Shortcuts beschrieben.
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 13:11
von NicTheQuick
Meiner Meinung nach ist es aber trotzdem ein Problem von Purebasic, da unter Linux dann wirklich das & da steht und nicht der nächste Buchstabe unterstrichen erscheint.
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 13:20
von RSBasic
Es ist aber trotzdem ein Standard-Verhalten von Windows. Da muss man eben eine zusätzliche Abfrage einbauen, wenn man das Und-Zeichen korrekt unter Linux anzeigen möchte. Das ist bei anderen Programmiersprachen unter Windows ebenfalls so. Deshalb ist das kein Problem von PB. Ich finds eher falsch, wenn PB das anders machen würde. Das ist genauso wie mit der Ordner-Trennung der Pfadangabe. Unter Windows ist es eben "\" und unter Linux "/".
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 16:44
von Danilo
RSBasic hat geschrieben:Das ist genauso wie mit der Ordner-Trennung der Pfadangabe. Unter Windows ist es eben "\" und unter Linux "/".
Mann kann direkt cross-platform Code schreiben und "/" verwenden. Funktioniert auch auf Windows.
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 27.10.2013 18:48
von HeX0R
Danilo hat geschrieben:Mann kann direkt cross-platform Code schreiben und "/" verwenden. Funktioniert auch auf Windows.
Nicht immer:
Code: Alles auswählen
OpenFileRequester("Bla", "C:/Windows/write.exe", "Executable (*.exe)", 0)
OpenFileRequester("Bla", "C:\Windows\write.exe", "Executable (*.exe)", 0)
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 28.10.2013 06:41
von Danilo
HeX0R hat geschrieben:Danilo hat geschrieben:Mann kann direkt cross-platform Code schreiben und "/" verwenden. Funktioniert auch auf Windows.
Nicht immer:
Code: Alles auswählen
OpenFileRequester("Bla", "C:/Windows/write.exe", "Executable (*.exe)", 0)
OpenFileRequester("Bla", "C:\Windows\write.exe", "Executable (*.exe)", 0)
Danke für den Hinweis, dann funktioniert das also nur manchmal (z.B. mit IncludeBinary)
und macht platform-unabhängige Programmierung wieder umständlicher.
Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!
Verfasst: 28.10.2013 20:20
von HeX0R
Soviel ich weiss sind es nur die Requester, die da rumpienzen.
Mit diesem PipiFax-Code braucht man sich darüber keine Gedanken mehr zu machen:
Code: Alles auswählen
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Procedure.s OpenFileRequester__(Title$, DefaultFile$, Pattern$, PatternPosition, Flags)
ProcedureReturn OpenFileRequester(Title$, ReplaceString(DefaultFile$, "/", "\"), Pattern$, PatternPosition, Flags)
EndProcedure
Procedure.s PathRequester__(Title$, Path$)
ProcedureReturn PathRequester(Title$, ReplaceString(Path$, "/", "\"))
EndProcedure
Procedure.s SaveFileRequester__(Titel$, StandardDatei$, Pattern$, PatternPosition)
ProcedureReturn SaveFileRequester(Titel$, ReplaceString(StandardDatei$, "/", "\"), Pattern$, PatternPosition)
EndProcedure
Macro OpenFileRequester(a, b, c, d, e = 0)
OpenFileRequester__(a, b, c, d, e)
EndMacro
Macro PathRequester(a, b)
PathRequester__(a, b)
EndMacro
Macro SaveFileRequester(a, b, c, d)
SaveFileRequester__(a, b, c, d)
EndMacro
CompilerEndIf