Hello,
ich hänge gerade an der Programmierung eines Dialog-Fensters fest. Hintergrund ist folgendes:
Ein Modul soll die Steuerung durch einen Assistenten übernehmen, der aus mehreren nacheinander folgenden Fenstern besteht. Jedes Fenster erfragt ein oder mehrere Einstellungen vom Benutzer.
Am Ende der Sequenz sollen dem Modul alle getroffenen Einstellungen zur Verfügung stehen.
Mein erster Ansatz war die Definition eines eigenen Typs, in dem sämtliche dieser Einstellungen abgelegt werden. Das würde ja soweit auch alles funktionieren, wenn nur die Interaktion zwischen Modul und Formular besser funktionieren würde - zur Verdeutlichung:
Ich kann über die OpenArgs beim Aufruf zwar ein Argument an das Formular übergeben, aber dieses wird nach meinem Verständnis weder ByRef übergeben, noch mag es das Formular, wenn das ein user-defined type ist. Somit fällt die Möglichkeit jedem Formular das Speicherobjekt mitzugeben und verändern zu lassen flach.
Anders herum fällt mir auch keine befriedigende Lösung ein, die Einstellungen zurückzufüttern - ClosingArgs gibts nicht, wozu auch, das Formular ist ja nach dem Schließen weg.
Die quick-and-dirty Variante eines globalen Variant für solche Zwecke fällt auch flach, weil VBA auf User-Defined-Types kein Late-Binding unterstützt und somit folgendes nicht geht:
Global storage As Variant
storage = varOfUserDefinedType
Was ist also die saubere Lösung für den Datenaustausch? Soll ich meinem Steuerungsmodul eine öffentliche Variable vom passenden UDT verpassen?
MfG
Rouven
-------------------
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#