ComboBox nachträglich editierbar machen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

ComboBox nachträglich editierbar machen?

Beitrag 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.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ComboBox nachträglich editierbar machen?

Beitrag 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
a²+b²=mc²
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Vielen Dank!
Den Gedanken hatte ich schon mal, aber ich dachte das wäre nicht "legal" :wink: ein Gadget einfach zu überschreiben.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Thorsten1867 hat geschrieben:aber ich dachte das wäre nicht "legal" :wink: 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
a²+b²=mc²
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

Beitrag 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 :mrgreen:
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
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Ab und zu kommt das bei mir auch zum Einsatz. Wenn es schon geht, wieso
sollte man es dann nicht nutzen?
Win11 x64 | PB 6.20
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Das eröffnet ganz neue Möglichkeiten. :mrgreen:

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?
Zuletzt geändert von Thorsten1867 am 24.02.2009 18:31, insgesamt 1-mal geändert.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
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

Beitrag 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 :mrgreen: )
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

[offtopic]
"interna" ist bereits Plural!
...nämlich von "internum".
[/offtopic]
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten