Erstes Zeichen im ButtonGadget unterstreichen

Anfängerfragen zum Programmieren mit PureBasic.
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

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von ts-soft »

NicTheQuick hat geschrieben:Muss man unter Windows mittlerweile nicht die Alt-Taste gedrückt halten, damit man diese Unterstreichungen sieht?
Alt- oder Control-Taste, weiß ich im moment auch nicht (nutze im moment auch Linux), aber eine von beiden sollte mit STARGÅTEs-Code funktionieren. Oder den XP-Style entfernen.
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von RSBasic »

ts-soft hat geschrieben:
NicTheQuick hat geschrieben:Muss man unter Windows mittlerweile nicht die Alt-Taste gedrückt halten, damit man diese Unterstreichungen sieht?
Alt- oder Control-Taste, weiß ich im moment auch nicht (nutze im moment auch Linux), aber eine von beiden sollte mit STARGÅTEs-Code funktionieren. Oder den XP-Style entfernen.
Es ist die Alt-Taste.
Bei Buttons funktioniert es auch, nur bei TextGadgets muss man es manuell aktivieren. Aufgrund der Standard-Deaktivierung (#SS_NOPREFIX) funktioniert die Darstellung eines Unterstrichs nicht. Man muss nachträglich diese Konstante entfernen, damit es wieder funktioniert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von udg »

STARGÅTE hat geschrieben:Das Textgadget hat ja auch keine Interaktionsmöglichkeiten.

Aber bei ButtonGadget oder Menüs gehts:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 480, 20, "&Text", 0)
  CreateMenu(1, WindowID(0))
    MenuTitle("&File")
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Im übrigen ist es nur ein &-Zeichen, ein Doppel && erzeugt ja ein normales & das nicht unterstrichen ist.
Ich bin gerade auch auf der Suche nach einer Lösung für das Problem, einen Buttontext zu unterstreichen. Ich habe dein Beispiel einmal in PureBasic 5.3 geladen. Leider wird nichts unterstrichen :(

gibt es eine Möglichkeit dies zu realisieren? Ich stelle einen Flat Button dar.

Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von RSBasic »

@udg
Drücke die Alt-Taste, dann hast du eine Unterstreichung. Vorausgesetzt, es gibt kein Menü, weil das Menü eine höhere Priorität hat.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von NicknameFJ »

Möglicherweise ist es ein Fehler des Nutzers :mrgreen:


Ging mir auch so.

sh. hier

http://www.purebasic.fr/german/viewtopi ... 0&start=15

NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
friedelinde
Beiträge: 12
Registriert: 15.02.2010 16:46

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von friedelinde »

Vielen Dank für die Hinweise.
Wenn man die Standard-Deaktivierung (#SS_NOPREFIX) aufhebt, lassen sich auch in Textgadgets tatsächlich Zeichen unterstreichen und mit einem Shortcut ansprechen. Das Beispiel unten lässt sich mit Sicherheit noch verbessern, aber es funktioniert.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  TextGadget(1, 10, 10, 480, 20, "&Text", 0)
  SetWindowLongPtr_(GadgetID(1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(1), #GWL_STYLE) & ~#SS_NOPREFIX)
  SetGadgetText(1, GetGadgetText(1))
  
  TextGadget(2, 10, 30, 480, 20, "T&ext2", 0)
  SetWindowLongPtr_(GadgetID(2), #GWL_STYLE, GetWindowLongPtr_(GadgetID(2), #GWL_STYLE) & ~#SS_NOPREFIX)
  SetGadgetText(2, GetGadgetText(2))
  
  ButtonGadget(3,10,50,480,20,"&Auswahl 1",#PB_Button_Toggle)
  ButtonGadget(4,10,80,480,20,"A&uswahl 2",#PB_Button_Toggle)
  
  CheckBoxGadget(5,10,150,100,20,"        Check&Box",0)
  SetWindowLongPtr_(GadgetID(5),#GWL_STYLE,GetWindowLongPtr_(GadgetID(5),#GWL_STYLE) | #BS_LEFTTEXT)
  ;
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_T, 1)
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_E, 2)
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_A, 3)
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_U, 4)
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_B, 5)
  
  ; damit unabhängig von den Windowseinstellungen die unterstrichenen Shortcuts sofort angezeiogt werden
  keybd_event_(#VK_MENU,0,0,0)                ; ALT DRUECKEN
  keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0) ; ALT LOSLASSEN 
;   
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Break
        
      Case #WM_KEYDOWN 
        Debug "KEYDOWN: " + Str(EventwParam()) 
        
      Case #WM_KEYUP 
        Debug "KEYUP  " + Str(EventwParam()) ;  
        Select EventwParam()
            Case 65
              SetGadgetState(3,0)  ; button loslassen
            Case 85
              SetGadgetState(4,0);   button loslassen
       EndSelect
         
      Case #PB_Event_Menu
        Select EventMenu()
          Case 1
            Debug "Text"
          Case 2
            Debug "Text 2"  
          Case 3
            SetGadgetState(3,1); button eindrücken
            Debug "Auswahl 1" 
          Case 4
            SetGadgetState(4,1); button eindrücken
            Debug "Auswahl 2"
          Case 5 
            If GetGadgetState(5)=#PB_Checkbox_Unchecked
                SetGadgetState(5,#PB_Checkbox_Checked  );
            Else
                 SetGadgetState(5,#PB_Checkbox_Unchecked  );
            EndIf
                Debug "Checkbox"
        EndSelect
    EndSelect
  ForEver
EndIf
;   
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von udg »

Ich pers. unterstreiche meinen Buttontext nun einfach mit: #PB_Font_Underline :)

Schnipsel

Code: Alles auswählen

Btn_Nfo = ButtonGadget(#btnRemove_NFO,130,340,50,13,"Clear NFO") ; Button: Lösche Inhalt in NFO Feld
SetGadgetFont(#btnRemove_NFO, LoadFont(#Font_btnRemove_NFO, "Arial", 8, #PB_Font_HighQuality | #PB_Font_Underline)) ; Button Font
grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
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: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von NicTheQuick »

Es ging ja darum nur ein Zeichen zu unterstreichen.
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstes Zeichen im ButtonGadget unterstreichen

Beitrag von udg »

NicTheQuick hat geschrieben:Es ging ja darum nur ein Zeichen zu unterstreichen.
Stimmt.
sorry
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Antworten