OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

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

Beitrag von ts-soft »

@falo: mußte mal die Boardsuche bemühen, nicolaus hat sowas bereits mal gepostet! glaub ich
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
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

ts-soft hat geschrieben:@falo: mußte mal die Boardsuche bemühen, nicolaus hat sowas bereits mal gepostet! glaub ich
Ja, Danke. Wen es auch interessiert: http://forums.purebasic.com/german/viewtopic.php?t=3511
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Beitrag von Peter aus der Nordheide »

Falo hat geschrieben:
ts-soft hat geschrieben:
PureBasic.chm hat geschrieben: Diese Art von Gadget dient nur zur dekorativen Zwecken
Erfüllt also auch nicht dem Zweck eine neue Gruppe aufzurufen
Hallo,

nunja ob dekorativ oder nicht, dennoch ist es ein Gadget. In Sinne der Einheitlichkeit wäre es daher schon besser wenn dies auch für das OptionGadget als Trenner fungieren könnte.

Eigendlich könnte man ContainerGadget und Frame3DGadget auch vereinigen.

Dazu müßte man im ContainerGadget nur den Standard-3D-Rahmen und den möglichen Text-Parameter als weitere Option einbauen
- fertig wärs und äußerst praktisch dazu.
Obwohl, oder gerade weil ich Anfänger bin, würde ich mich der "Forderung" von Falo anschließen wollen.

Jetzt einen Borderless-Container, darin dann einen Rahmen mit Textparameter, wäre ja irgendwie doppelt gemoppelt.

Bis das realisiert ist, aber auf jeden Fall einen expliziten Hinweis in der Hilfe, daß ein Frame3DGadget nicht als Gruppenabschluß benutzt werden kann.

Gruß Peter
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von freedimension »

Peter aus der Nordheide hat geschrieben: Ich weiß, daß für diese Aufgabenstellung eigentlich das CheckBoxGadget vorgesehen ist und sich auch viel einfacher handhaben läßt.

Aus "Schönheitsgründen" (kann man streiten) habe ich mich aber für die OptionGadgets entschieden.
:roll:
http://www.sapdesignguild.org/community ... _rules.asp
http://www.joelonsoftware.com/uibook/fog0000000249.html

Leider beides auf Englisch, aber sicherlich eine nette Lektüre für alle Interessierten.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von Peter aus der Nordheide »

freedimension hat geschrieben:
Peter aus der Nordheide hat geschrieben: Ich weiß, daß für diese Aufgabenstellung eigentlich das CheckBoxGadget vorgesehen ist und sich auch viel einfacher handhaben läßt.

Aus "Schönheitsgründen" (kann man streiten) habe ich mich aber für die OptionGadgets entschieden.
:roll:
http://www.sapdesignguild.org/community ... _rules.asp
http://www.joelonsoftware.com/uibook/fog0000000249.html

Leider beides auf Englisch, aber sicherlich eine nette Lektüre für alle Interessierten.
Hallo freedimension,

ok, - ü b e r g e r e d e t.

Ich nehme jetzt CheckBoxen, so wie es sich gehört. :roll:

Gruß Peter

PS :

Aber deswegen die Ergänzung der ContainerGadgets bitte nicht aus den Augen verlieren.
Benutzeravatar
Mr.X
Beiträge: 66
Registriert: 10.08.2005 22:46
Wohnort: im schönen OWL

OptionGadgets im Container ...

Beitrag von Mr.X »

Moin-Moin,

ich habe mal ein wenig mit den Containern und den OptionGadgets herumgespielt. Herausgekommen ist folgender Code:

Code: Alles auswählen

;-- Declarations ---------------

;-- YesNo .---------------------
#YES    = 1
#NO     = 0
#TRUE   = 1
#FALSE  = 0
#OK     = 1
    
;-- MainWindow IDs .------------
Enumeration
    #Main_Window
    
    #Main_Toolbar
    #Main_Toolbar_New
    #Main_Toolbar_Open
    #Main_Toolbar_Save
    #Main_Toolbar_Print
    #Main_Toolbar_Find
    
    #Main_Menu
    #Main_Menu_New
    #Main_Menu_Open
    #Main_Menu_Save
EndEnumeration        


;-- Procedures -----------------



;-- Main -----------------------

If OpenWindow(#Main_Window, 0, 0, 640, 480, #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered, "[Name] - v0.01")
    
    If CreateMenu(#Main_Menu, WindowID())
        MenuTitle("Project")
        MenuItem(#Main_Menu_New,  "New")
        MenuItem(#Main_Menu_Open, "Open")
        MenuItem(#Main_Menu_Save, "Save")
    EndIf
    
    
    If CreateToolBar(#Main_Toolbar, WindowID())
        ToolBarStandardButton(#Main_Toolbar_New, #PB_ToolBarIcon_New)
        ToolBarStandardButton(#Main_Toolbar_Open, #PB_ToolBarIcon_Open)
        ToolBarStandardButton(#Main_Toolbar_Save, #PB_ToolBarIcon_Save)
        
        ToolBarSeparator()
        
        ToolBarStandardButton(#Main_Toolbar_Print, #PB_ToolBarIcon_Print)
        ToolBarToolTip(#Main_Toolbar_Print, "Print")
        
        ToolBarStandardButton(#Main_Toolbar_Find, #PB_ToolBarIcon_Find)
        ToolBarToolTip(#Main_Toolbar_Find, "Find a document")
        
        ToolBarSeparator()
    EndIf
    
    
    If CreateGadgetList(WindowID())
        
        ;-- Gadgets
        ContainerGadget(1, 0,   28, 180, 100, #PB_Container_Raised)
        EditorGadget(10,0,0,80,94,#PB_Container_Raised)
        OptionGadget(11, 90,  0, 60, 20, "Option 1")
        OptionGadget(12, 90, 18, 60, 20, "Option 2")
        OptionGadget(13, 90, 36, 60, 20, "Option 3")
        SetGadgetState(11,1)
        CloseGadgetList()
        
        ContainerGadget(2, 0, 128, 180, 100, #PB_Container_Raised)
        EditorGadget(20,0,0,80,94,#SS_Sunken)
        OptionGadget(21, 90,  0, 60, 20, "Option 1")
        OptionGadget(22, 90, 18, 60, 20, "Option 2")
        OptionGadget(23, 90, 36, 60, 20, "Option 3")
        SetGadgetState(22,1)
        CloseGadgetList()
        
        ContainerGadget(3, 0, 228, 180, 100, #PB_Container_Raised)
        EditorGadget(30,0,0,80,94,#SS_Sunken)
        OptionGadget(31, 90,  0, 60, 20, "Option 1")
        OptionGadget(32, 90, 18, 60, 20, "Option 2")
        OptionGadget(33, 90, 36, 60, 20, "Option 3")
        SetGadgetState(33,1)
        CloseGadgetList()
        
        TextGadget(4, 182,  28, 116, 100, "", #SS_Sunken)
        TextGadget(5, 182, 128, 116, 100, "", #SS_Sunken)
        TextGadget(6, 182, 228, 116, 100, "", #SS_Sunken)
    EndIf
    
    ;-- Main Loop .-----------------
    Quit = #NO
    Repeat
        
        Select  = WaitWindowEvent()
            Case #PB_Event_Gadget
                Select EventGadgetID()
                    Case 11 : If GetGadgetState(11) = 1 : SetGadgetText(4, "Option 1") : EndIf
                    Case 12 : If GetGadgetState(12) = 1 : SetGadgetText(4, "Option 2") : EndIf
                    Case 13 : If GetGadgetState(13) = 1 : SetGadgetText(4, "Option 3") : EndIf
                    Case 21 : If GetGadgetState(21) = 1 : SetGadgetText(5, "Option 1") : EndIf
                    Case 22 : If GetGadgetState(22) = 1 : SetGadgetText(5, "Option 2") : EndIf
                    Case 23 : If GetGadgetState(23) = 1 : SetGadgetText(5, "Option 3") : EndIf
                    Case 31 : If GetGadgetState(31) = 1 : SetGadgetText(6, "Option 1") : EndIf
                    Case 32 : If GetGadgetState(32) = 1 : SetGadgetText(6, "Option 2") : EndIf
                    Case 33 : If GetGadgetState(33) = 1 : SetGadgetText(6, "Option 3") : EndIf
                EndSelect
                :
            Case #PB_Event_Menu
                :
            Case #PB_Event_CloseWindow
                Quit = #YES
        EndSelect
        
    Until Quit = #YES
    
EndIf



;-- End ------------------------
End

Vielleicht kann man's ja auch im Code-Archiv gebrauchen - als beispiel.

CU
Mr.X
Zuletzt geändert von Mr.X am 18.08.2005 09:53, insgesamt 1-mal geändert.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Entweder du lässt die Optionsboxen am Anfang ungesetzt, oder aber du schreibst den richtigen Text gleich von Anfang an in die Textgadgets.
Fände ich deutlich logischer

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Beitrag von Peter aus der Nordheide »

bluejoke hat geschrieben:Entweder du lässt die Optionsboxen am Anfang ungesetzt, oder aber du schreibst den richtigen Text gleich von Anfang an in die Textgadgets.
Fände ich deutlich logischer
Simon
Hallo Simon,

ich glaube, da reden wir aneinander vorbei.

Die TextGadgets oben im Beispiellisting habe ich nur reingesetzt, um zu zeigen, wie es
a) nicht geht, mit auskommentierten TextGadget und
b) geht, wenn ich im TextGadget den Kommentar zurücknehme und es damit als Gruppenabschluß einsetze.

Und damit ich nicht unter die Kategorie "Bad User Interface Programmierer" falle, habe ich mich ja entschlossen, die Checkboxen zu nehmen.

@ freedimension

Sehen garnicht so schlecht aus, fast so, als ob sie da schon immer hingehörten - - und funktionieren viel besser !

@ Mr.X

Dein Beispiel habe ich erst einmal in die Schublade gelegt, weil ich ja jetzt eine andere Lösung genutzt habe.

Gruß Peter
Benutzeravatar
Mr.X
Beiträge: 66
Registriert: 10.08.2005 22:46
Wohnort: im schönen OWL

Beitrag von Mr.X »

bluejoke hat geschrieben:Entweder du lässt die Optionsboxen am Anfang ungesetzt, oder aber du schreibst den richtigen Text gleich von Anfang an in die Textgadgets.
Fände ich deutlich logischer
Hi Simon,
der obige Code beansprucht keinerlei logik für sich. Das ist nur ein sinfreies Beispiel, an dem die Programmierung von mehreren Optionsgruppen darstellen möchte. Solltest Du mit dem Setzen der Optionsboxen oder den Textgadges Problemehaben, ändere das Beispiel einfach nach Deinen Vorstellungen. Und wenn Du einen tieferen Sinn in diesem Programm entdecks, lass es uns wissen.

Hi Peter (aus der Nordheide),
ich bin mir nicht sicher, ob Simon Dein Beispiel ganz oben oder mein 2 weiter oben meint. -- Fühlen wir uns einfach beide NICHT angesprochen.

CU
Mr.X
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich meinte das Code-Beispiel von Mr. X, das bevor es vielleicht im Code Archiv verwendet wird imho auf jeden Fall derartig "überarbeitet" werden, wie ichs oben geschrieben habe. Sind ja nur dreimal die SetGadgetState auszukommentieren...
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten