hi.
ich habe ein kleines ComboBoxGadget mit Pureform erstellt. Da ich nur ein kleines Programmfenster habe, soll auch das ComboBoxGadget klein sein (schmal). Nun aber ist der Text der drinn stehen soll viel zu breit. Und auch werden nur wenige Zeilen angezeigt (mit scrollbalken in der ComboBoxGadget).
Kann ich irgendwie dafür sorgen, daß beim klick auf die ComboBoxGadget die Anzeige breiter angezeigt wird, entweder mit fester größe oder sich halt der Textbreite anpaßt.
Auch wüßte ich gerne wie ich "nachträglich" einstellen kann, das mehr Einträge angezeigt werden.
Gruß
Toshy
ComboBoxGadget
-
- Beiträge: 713
- Registriert: 22.03.2005 00:29
- Computerausstattung: Computer und Strom vorhanden
- Wohnort: LK Wolfenbüttel
ComboBoxGadget
1. Win10
PB6.1
PB6.1
-
- Beiträge: 713
- Registriert: 22.03.2005 00:29
- Computerausstattung: Computer und Strom vorhanden
- Wohnort: LK Wolfenbüttel
das ändert ja nicht die Breite.
Wenn mann auf die Combo klickt, dann klappt die ja aus. Die Größe der Anzeige in der Höhe läßt sich soweit ich weiß einfach einstellen, in dem man biem erstellen die Höhe der Box angibt. Beim erstellen wird dann ja nicht die Box so groß angezeigt, sondern nur wenn man drauf klickt die Auswahl.
Selbiges geht "direkt" nicht mit der Breite. Die angegebene Breite der Box entspricht genau der Darstellung.
Aber es müsste doch eine Message oder Flag oder sowas geben mit dem man nachträglich die Breite der Ausweilleiste angibt.
Wenn mann auf die Combo klickt, dann klappt die ja aus. Die Größe der Anzeige in der Höhe läßt sich soweit ich weiß einfach einstellen, in dem man biem erstellen die Höhe der Box angibt. Beim erstellen wird dann ja nicht die Box so groß angezeigt, sondern nur wenn man drauf klickt die Auswahl.
Selbiges geht "direkt" nicht mit der Breite. Die angegebene Breite der Box entspricht genau der Darstellung.
Aber es müsste doch eine Message oder Flag oder sowas geben mit dem man nachträglich die Breite der Ausweilleiste angibt.
1. Win10
PB6.1
PB6.1
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Code: Alles auswählen
OpenWindow(0,0,0,160,50,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ComboBoxGadget(0,5,15,150,200)
String$ = "The demo version of this program may be freely distributed provided all contents."
For i=1 To 50 : AddGadgetItem(0,-1,String$) : Next
SetGadgetState(0,0)
hdc = StartDrawing(WindowOutput(0))
DrawingFont(GetGadgetFont(0))
ItemWidth = TextWidth(String$) + GetSystemMetrics_(#SM_CXVSCROLL) + (GetSystemMetrics_(#SM_CXEDGE) * 2)
SendMessage_(GadgetID(0),#CB_SETDROPPEDWIDTH,ItemWidth,0)
StopDrawing()
While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Funktioniert leider nicht!Xor hat geschrieben:Du könntest mit EventGadget()(Und eventuell EventType()) prüfen, ob das Combobox gadget angeklickt wurde.
Da ist leider kein Combobox-Gadget dabei.PureBasic-Doku hat geschrieben:Die folgenden Gadgets unterstützen EventType():
- ExplorerListGadget()
- ExplorerTreeGadget()
- ImageGadget()
- ListViewGadget()
- ListIconGadget()
- MDIGadget()
- SpinGadget()
- StringGadget()
- WebGadget()


PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Das heißt aber nicht das es nicht funktioniert. Auch wenn nicht nativ unterstützt, werden sehr wohl entsprechende Events gesendet:Da ist leider kein Combobox-Gadget dabei
Code: Alles auswählen
OpenWindow(0,0,0,160,50,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ComboBoxGadget(0,5,15,150,200)
For i=1 To 10 : AddGadgetItem(0,-1,"ComboBox Item #" + Str(i)) : Next
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget And EventGadget() = 0
Select EventType()
Case #CBN_SELCHANGE : Debug "#CBN_SELCHANGE"
Case #CBN_DROPDOWN : Debug "#CBN_DROPDOWN"
Case #CBN_CLOSEUP : Debug "#CBN_CLOSEUP"
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Windows 10 Pro, 64-Bit / Outtakes | Derek