Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Für allgemeine Fragen zur Programmierung mit PureBasic.
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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 !
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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 !
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag von edel »

Das ist kein Fehler in Purebasic. Unter Windows werde damit Shortcuts beschrieben.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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 "/".
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Fehler in Purebasic Textgadget Funktion ? ..Zeichen & !!

Beitrag 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
Antworten