Hallo.
Gibt es eine Möglichkeit,
bei einem nichteditierbarem Comboboxgadget
einen Text in den Kopf zu setzen,
der nicht in der Comboliste steht?
Ich möchte das quasi als Titel für die Liste benutzen.
Und der Titel soll eben nicht in der Liste stehen.
Vielen Dank schon mal im Voraus.
Gruß: BSP
Ups: Glatt vergessen.
PB 4.51 Window Vista.
Combobox Headertext
Combobox Headertext
PB 5.31 (x86) & (x64) Win10
Re: Combobox Headertext
So direkt ist es nicht möglich, sondern eher nur mit WinAPI, falls du sowas meinst:
Code: Alles auswählen
EnableExplicit
Define EventID
Define Alternativtext$
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ComboBoxGadget(1,10,10,200,20,0)
AddGadgetItem(1,-1,"Item 1",0,0)
AddGadgetItem(1,-1,"Item 2",0,0)
AddGadgetItem(1,-1,"Item 3",0,0)
Alternativtext$="Deine Nachricht..."
PokeS(@Alternativtext$,"Deine Nachricht...",Len(Alternativtext$),#PB_Unicode)
SendMessage_(GadgetID(1),#CB_SETCUEBANNER,0,Alternativtext$)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfRe: Combobox Headertext
Spitze.
Ja, Danke. So wars gesucht.
Allerdings läuft das so nur ein mal.
Aber kein Problem.
Nach der Gadgetabfrage den Status einfach auf -1 setzen,
dann geht das wieder.
Gruß & Dank : BSP
Ja, Danke. So wars gesucht.
Allerdings läuft das so nur ein mal.
Aber kein Problem.
Nach der Gadgetabfrage den Status einfach auf -1 setzen,
dann geht das wieder.
Code: Alles auswählen
EnableExplicit
Define EventID
Define Alternativtext$
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ComboBoxGadget(1,10,10,200,20,0)
AddGadgetItem(1,-1,"Item 1",0,0)
AddGadgetItem(1,-1,"Item 2",0,0)
AddGadgetItem(1,-1,"Item 3",0,0)
Alternativtext$="Deine Nachricht..."
PokeS(@Alternativtext$,"Deine Nachricht...",Len(Alternativtext$),#PB_Unicode)
SendMessage_(GadgetID(1),#CB_SETCUEBANNER,0,Alternativtext$)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 1
If Not SendMessage_(GadgetID(1), #CB_GETDROPPEDSTATE, 0, 0)
Debug GetGadgetText(1)
SetGadgetState(1,-1)
SendMessage_(GadgetID(1),#CB_SETCUEBANNER,0,Alternativtext$)
EndIf
EndSelect
EndSelect
ForEver
EndIfPB 5.31 (x86) & (x64) Win10
Re: Combobox Headertext
Ja, es liegt daran, dass diese Nachricht ein Alternativtext ist. D.h. der Text erscheint nur dann, wenn nichts ausgewählt wurde. Wenn man aber bereits einen Eintrag ausgewählt hat, kann man aber nicht mehr dafür sorgen, dass man einen "leeren" (=keinen) Eintrag auswählt, sondern nur die Vorhandene. Also musst du, wie du bereits erkannt hast, die Auswahl manuell mit "-1" zurücksetzen. 
Re: Combobox Headertext
mmmmh, also mit PB4.6 ist da nix zu sehen...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Re: Combobox Headertext
Das liegt nicht an PB 4.60 Beta 3, sondern wahrscheinlich an Deiner Windows Version.dige hat geschrieben:mmmmh, also mit PB4.6 ist da nix zu sehen...
Ich tippe darauf, daß Du das Beispiel unter Windows XP getestet hast. Und dort ist
wirklich nichts zu sehen, da CB_SETCUEBANNER erst ab Windows Vista vorhanden ist:
MSDN hat geschrieben:Minimum operating systems: Windows Vista
Re: Combobox Headertext
Ach wie blöd.Shardik hat geschrieben:MSDN hat geschrieben:Minimum operating systems: Windows Vista
Schade. Vielleicht finde ich eine andere Möglichkeit, die auch unter WinXP funktioniert, wenn ich Zeit habe.

