Laden...

Dynamisches Options-Menü möglich?

Erstellt von Gimmick vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.724 Views
G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 6 Jahren
Dynamisches Options-Menü möglich?

Moin,

für meine bisherigen (Uni) Projekte habe ich immer für die ein/zwei festen Funktionen ein eigenes Optionsmenü gebastelt. Da konnte man dann seine Einstellungen (paar Variablen irgendwelche Zahl zuweisen, Namen eintragen und sowas) reinschreiben und gut wars.

Jetzt habe ich mir überlegt, wäre es eigentlich mal ganz geschickt, ein Options-Menü zu haben, dass sich abhängig der möglichen Parameter einer Funktion dynamisch darstellt.

Das Wunschtraum-Resultat wäre, dass ich am Ende eine Klasse habe, in die ich meine neuen Logik_Klasse und Settings_Klasse eintrage, evtl. noch die Parameter in der Settings_Klasse benenne und bei Auswahl der Funktion aus einem Drop-Down-Menü oder so sind alle Einstellungen sicht- und änderbar.

Geht das, ohne dass man für jeden neuen Entrag wieder im UI ergänzen muss? Eventuell eine Art automatisch generierte Tabelle oder sowas, die alles frisst und darstellt, was ihr geschickt wird?

286 Beiträge seit 2011
vor 6 Jahren

So wie ich das verstehe benötigst du also ein Control, dass sein Aussehen dynamisch anpasst?

In dem Fall würde ich dir als erstes raten WinForms durch WPF zu ersetzen, da du dort eigene Controls sehr viel einfacher "basteln" kannst als in WinForms.

Wenn du bei WinForms bleiben möchtes würde ich mir ein Ausgangscontrol suchen, dass am besten zu deinen Bedürfnissen "passt". Das sollte am besten ein Container sein (e.g. TableLayoutPanel - ein Grid mit X*Y Feldern). Dann schreibst du eine eigene Klasse die du vom Ausgangscontrol ableitest. und in die Klasse schreibst du alles was du brauchst.

In deinem Szenario hat die Klasse ein Event "MenuChanged" und immer wenn dieses ausgelöst wird wird z.B. deine Dropdownliste neu generiert.

Aber dennoch würde ich dir hierfür sehr WPF ans Herz legen, sieht am Ende auch schöner aus ^^

2+2=5( (für extrem große Werte von 2)

3.003 Beiträge seit 2006
vor 6 Jahren

Geht das, ohne dass man für jeden neuen Entrag wieder im UI ergänzen muss? Eventuell eine Art automatisch generierte Tabelle oder sowas, die alles frisst und darstellt, was ihr geschickt wird?

Ja *. Ich würde die entsprechenden Methoden und ihre Parameter mit eigenen Attributen dekorieren und dann die Attribute bei der Erstellung des Optionsmenüs auswerten. Alles zusammen genommen klingt die Idee aber nicht so sexy - Ziel ist, wenig Optionen zu haben, und nicht automatisiert seine Einstellungen zuzumüllen.

LaTino

  • grundsätzlich geht alles. Die Frage ist nicht, ob es eine Lösung gibt, sondern, ob ich das richtige Problem habe und wie eine gute Lösung dazu aussieht.

EDIT: @emuuu ich glaube nicht, dass das seine Frage war.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 6 Jahren

Alles zusammen genommen klingt die Idee aber nicht so sexy - Ziel ist, wenig Optionen zu haben, und nicht automatisiert seine Einstellungen zuzumüllen.

Es wäre ja eigentlich nicht ein Programm mit vielen Optionen. Es wäre ja sozusagen eine Sammlung von Programmen mit jeweils einigen Optionen.

Ich habe hier z.B. einen Funktionsfitter (Uni Übung^^), der hat 7 Parameter.
Ein Plotter, der Bewegungsgleichungen löst und s(t) plottet N mal X Parametern (könnte man abhängig von Funktion machen - Xter-Grad usw.)

Wenn der Kram automatisch entstehen würde, wäre super ^^.

3.003 Beiträge seit 2006
vor 6 Jahren

Klingt eher wie etwas, das ich über ein Plugin-System lösen würde. Wie das mit dem "automatischen Entstehen" funktionieren kann, schrieb ich ja oben bereits.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

D
985 Beiträge seit 2014
vor 6 Jahren

Ich denke mal, du denkst da an etwas vergleichbares, was Apple mit dem Settings Bundle gemacht hat.
apple: Implementing an iOS Settings Bundle

5.658 Beiträge seit 2006
vor 6 Jahren

Hi Gimmick,

evtl. wäre das auch ein Anwendungsfall für das PropertyGrid.

Weeks of programming can save you hours of planning

G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 6 Jahren

PropertyGrid könnte gut passen, thx.

Werde ich mir mal ansehen!

5.299 Beiträge seit 2008
vor 6 Jahren

jo - probierma.
ich gebe noch zu bedenken, dasses oft scheitert, eine "EierlegendeWollmilchsau" zu konstruieren.
Jdfs. bei mir gerät die Verwaltung von auch nur mässig komplexen Optionen meist zu einer eigenen Baustelle, oft auch nicht klein, und sehr anwendungs-spezifisch.
Da muss dann ein eigenes Datenmodell her und ein eigenes Gui - da beißt die Maus kein Faden ab.
Aber probierma: Ich sag ja nicht, dass die "EierlegendeWollmilchsau" prinzipiell immer unmöglich ist - manchmal gelingts auch.
Aber meist eben nicht, daher meine Warnung, da allzuviel Zeit reinzustecken.

Der frühe Apfel fängt den Wurm.