Wir kommen etwas vom Thema ab, aber in gewisser Weise passt es ja schon noch...
Schönes Beispiel, Luckie.
Das Konzept wird nur recht aufwendig, wenn Du 50 Listen hast und manche Listen in mehreren Controls dargestellt werden sollen. Dann musst Du sehr viele Ereignisse verarbeiten. Das ist nicht kompliziert, aber nix für faule.
Mit einer data binding - Lösung sagt man einem Control nur: Zeig mal diese Liste an (es können auch 3 Controls an eine Liste gebunden werden) und den Rest regeln dann die Controls selbständig. Eines kann den Listenanfang anzeigen, eines mittendrin und eines das Ende. Die Listencontrols können dann selbst entscheiden, ob sie Navigationsschalter anzeigen oder nicht.
Die
GUI-Anwendung muss dann viel weniger entscheiden.
Natürlich wäre es dann (wie bei meinen Controls) nicht mehr so leicht möglich, eine Consolenanwendung daraus zu machen. Die
GUI ist unbedingt an einen gewissen Standard gebunden, um mit der Datenebene zusammen arbeiten zu können.
Dafür ist die Entwicklung damit sehr einfach:
1) ListBox auf die Form
2) Liste zuweisen
3) Property "NickName" definieren
...und schon wird eine Liste angegezeigt...
Zitat:
stahli
Luckie
RWarnecke
Je nach Einstellungen lässt die ListBox dann Einfügungen, Löschen, Drag&Drop etc. zu oder nicht.
Ein Screenshot aus meinem Projekt. Im Formular brauche ist kaum etwas regeln, das in die Projektdaten eingreift. Ich sage (weitestgehend) nur in den ListBox-Propertys, welche Listen in welcher Form angezeigt werden sollen und welche Bearbeitungen erlaubt sind.
EDIT: Das Vereins-Formular beinhaltet eine unsichtbare Komponente "TodFormCtrl", der ein Vereinsobjekt zugewiesen wird (das erfolgt wiederum automatisch - also Komponenten-intern, wenn der User in der MainForm auf einen Vereineintrag doppelklickt). Die Vereinskomponente kennt ihr zuständiges Formular, öffnet dieses und weist dem sich selbst zu. Das odFormCtrl reicht die Daten an alle weiteren Formularkomponenten durch, die sich die benötigten Property heraus suchen und diese anzeigen. Das alles benötigt keine Programmierung.