"&" in Windows Fenstern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Little Progger
Beiträge: 43
Registriert: 21.04.2010 10:05
Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA
Wohnort: Daheim
Kontaktdaten:

"&" in Windows Fenstern

Beitrag von Little Progger »

Hallo liebe Community!
Baue grad ein Projekt für die Schule und benutze dafür das Windows GUI und dementsprechend auch die ganzen Gadgets.
Jetzt ist mir aufgefallen, dass ich z.B. mit einem Textgadget kein "&" darstellen kann. Stattdessen wird der erste Buchstabe unterstrichen.

Nun meine Fragen:
1. Gibt es eine Möglichkeit (und davon geh ich eigentlich aus), auch ein "&" darzustellen?
2. Gibt es noch andere Möglichkeiten einen Textabschnitt z.B. fett zu schreiben, mit Hilfe solcher Zeichen? (Wär doch praktisch! ;))

danke schonmal fürs durchlesen! ;)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: "&" in Windows Fenstern

Beitrag von STARGÅTE »

Little Progger hat geschrieben:1. Gibt es eine Möglichkeit (und davon geh ich eigentlich aus), auch ein "&" darzustellen?
Ja, einfach && schreiben, das wird zu einem & gewandelt.
Little Progger hat geschrieben:2. Gibt es noch andere Möglichkeiten einen Textabschnitt z.B. fett zu schreiben, mit Hilfe solcher Zeichen? (Wär doch praktisch!)
Nein, weil das & kein stilistisches Mittel ist, sondern für Menü-Shortcuts gedacht ist.
Dort ist dann bei Datei und Speichern das D und S unterstrichen, um zu zeigen, dass man mit Alt, D, S speichern kann.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: "&" in Windows Fenstern

Beitrag von bobobo »

Um dicke Schrift in einem Gadget zu bewerkstelligen gibt es
SetGadgetfont(...)
Tip ! Loadfont(..) geht auch ohne Angabe des Fontnamens

Code: Alles auswählen

duenn=LoadFont(#PB_Any,"",12)
dick=LoadFont(#PB_Any,"",12,#PB_Font_Bold)
fenschdr=OpenWindow(#PB_Any,0,0,200,200,"mei Fenschdr..",#PB_Window_ScreenCentered)
SetGadgetFont(#PB_Default,FontID(duenn))
text1=TextGadget(#PB_Any,0,0,200,20,"degs&&&chd oins")
SetGadgetFont(#PB_Default,FontID(dick))
text2=TextGadget(#PB_Any,0,20,200,20,"degschd zwoi")
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Wie bekomme ich denn ein unterstrichenes &-Zeichen hin???
&&& mag so nicht gehen
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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: "&" in Windows Fenstern

Beitrag von NicTheQuick »

Als Hinweis zwischendurch. Unter Linux wird da übrigens nichts unterstrichen, wenn man ein & davor setzt. ;) Ich weiß aber auch nicht wie das sonst geht.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: "&" in Windows Fenstern

Beitrag von bobobo »

Schonmal ALT gedrückt ???
Oftmals werden die Underscores erst dann angezeigt.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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: "&" in Windows Fenstern

Beitrag von NicTheQuick »

bobobo hat geschrieben:Schonmal ALT gedrückt ???
Oftmals werden die Underscores erst dann angezeigt.
Daran liegt es nicht. Es wird einfach das & ausgegeben.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: "&" in Windows Fenstern

Beitrag von bobobo »

ist da wohl ne Sache des Fenstermanagers ... ich mach da 'ne Grätsche :D
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Little Progger
Beiträge: 43
Registriert: 21.04.2010 10:05
Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA
Wohnort: Daheim
Kontaktdaten:

Re: "&" in Windows Fenstern

Beitrag von Little Progger »

STARGÅTE hat geschrieben: Ja, einfach && schreiben, das wird zu einem & gewandelt.
Cool, danke, das hat funktioniert.
bobobo hat geschrieben:Um dicke Schrift in einem Gadget zu bewerkstelligen gibt es
SetGadgetfont(...)
Hm, ok das ist klar. Aber wenn ich z.B. in einem ganzen Textblock einzelne Wörter dick haben will, geht das doch irgendwie schlecht, weil ich die Koordinaten des Worts nicht herausfinden kann, da es ja z.B. durch nen Zeilenumbruch auch in Y Richtung verschoben wird. (Ich hoffe ihr versteht was ich meine.)
Letztendlich muss man da dann selbst ewig ne Prozedur schreiben, die dann die wörter an der Stelle die man haben will fett macht, wenns die Möglichkeit mit den Sonderzeichen nicht gibt, oder gibts da was einfaches?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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: "&" in Windows Fenstern

Beitrag von NicTheQuick »

Du kannst ein Editorgadget nehmen und das dann auf Read-Only stellen. Damit sollte man sowas ja machen können, obwohl ich damit selbst noch nie wirklich gearbeitet habe.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: "&" in Windows Fenstern

Beitrag von Kiffi »

Achtung! Spatzenkanone! :mrgreen:

Code: Alles auswählen

Procedure TextGadgetEx(Gadget, x, y, Width, Height, Text.s, Flags = 0)
  WebGadget(Gadget, x, y, Width, Height, "")
  SetGadgetItemText(Gadget, #PB_Web_HtmlCode, "<html><body style='margin:0;padding:0;background-color:#F0F0F0' scroll='no' onselectstart='return false'>" + Text + "</body></html>")
EndProcedure

If OpenWindow(0, 0, 0, 270, 160, "TextGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TextGadgetEx(0, 10,  10, 250, 20, "TextGadget <b>bold</b>")
  TextGadgetEx(1, 10,  40, 250, 20, "TextGadget <u>underlined</u>")
  TextGadgetEx(2, 10,  70, 250, 20, "TextGadget <i>italic</i>")
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Grüße ... Kiffi
a²+b²=mc²
Antworten