Seite 1 von 2
ComboBox nachträglich editierbar machen?
Verfasst: 24.02.2009 16:23
von Thorsten1867
Wie kann ich nach dem Öffnen des Fensters (je nach gewählter Option) die ComboBox editierbar machen bzw. umgekehrt?
Anwendung:
Verschiedene Listen sollen je nach Auswahl in der ComboBox gefiltert werden.
Problem:
Manche Listen können nur nach festen Kriterien gefiltert werden (ComboBox readonly) und andere nach Vorgaben oder freier Eingabe (ComboBox editable)
PS: Mit SendMessage laut Forenbeitrag von 2005 funktioniert es nicht bzw. nicht unter Vista.
Re: ComboBox nachträglich editierbar machen?
Verfasst: 24.02.2009 16:33
von Kiffi
Thorsten1867 hat geschrieben:Wie kann ich nach dem Öffnen des Fensters (je nach gewählter Option) die ComboBox editierbar machen bzw. umgekehrt?
die Combobox mit der selben GadgetID (mit ensprechendem Flag) neu erstellen:
Code: Alles auswählen
Procedure CreateComboboxGadget(IsEditable)
If IsEditable
ComboBoxGadget(0, 10, 10, 250, -1, #PB_ComboBox_Editable)
AddGadgetItem(0, -1, "ComboBox editable...")
Else
ComboBoxGadget(0, 10, 10, 250, -1)
AddGadgetItem(0, -1, "ComboBox not editable...")
EndIf
SetGadgetState(0, 0)
EndProcedure
If OpenWindow(0, 0, 0, 270, 140, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateComboboxGadget(#False)
ButtonGadget(1, 10, 30, 100, 20, "Toogle")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1 ; Toogle-Button
If Editable = #True
Editable = #False
Else
Editable = #True
EndIf
CreateComboboxGadget(Editable)
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
Grüße ... Kiffi
Verfasst: 24.02.2009 16:38
von Thorsten1867
Vielen Dank!
Den Gedanken hatte ich schon mal, aber ich dachte das wäre nicht "legal"

ein Gadget einfach zu überschreiben.
Verfasst: 24.02.2009 17:42
von Kiffi
Thorsten1867 hat geschrieben:aber ich dachte das wäre nicht "legal"

ein Gadget einfach zu überschreiben.
öhm, vielleicht kann jemand was dazu sagen, der mehr Ahnung davon hat
(freak?), aber meines Erachtens ist das einer der grossen Vorteile, die mir
PB bietet
Grüße ... Kiffi
Verfasst: 24.02.2009 17:45
von ts-soft
Wenn Du ein neues Gadget mit einer bereits verwendeten ID erstellst, wird
das alte autom. Freigegeben. FreeGadget find ich aber schöner

Verfasst: 24.02.2009 17:46
von AND51
Natürlich ist es legal, Gadgets mit derselben ID zu überschreiben.
Das gilt übrigens auch für Images, Files, Windows, XML Dateien, also eben alles, was in PB eine ID haben kann.
Ich mache das sogar öfter.
Verfasst: 24.02.2009 17:47
von Andesdaf
Ab und zu kommt das bei mir auch zum Einsatz. Wenn es schon geht, wieso
sollte man es dann nicht nutzen?
Verfasst: 24.02.2009 17:53
von Thorsten1867
Das eröffnet ganz neue Möglichkeiten.
Wenn das vorherige Gadget automatisch freigegeben wird, ist ja alles bestens. Genau das waren meine Bedenken, leider kenne ich mich in den Interna noch zu wenig aus.
Dann gleich noch eine Frage, die in gleiche Richtung geht:
Werden Gadgets und v.a. Menüs auch automatisch freigegeben, wenn ein Fenster geschlossen wird?
Verfasst: 24.02.2009 18:02
von ts-soft
Thorsten1867 hat geschrieben:
Dann gleich noch eine Frage, die in gleiche Richtung geht:
Werden Gadgets und v.a. Menüs auch automatisch freigegeben, wenn ein Fenster geschlossen wird?
Wenn ein Fenster geschlossen wird, gibt Windows auch alle Childs usw. frei.
PB streicht es natürlich auch vom ObjectManager (hoffe ich mal

)
Verfasst: 24.02.2009 18:25
von Kaeru Gaman
[offtopic]
"interna" ist bereits Plural!
...nämlich von "internum".
[/offtopic]