Hallo,
ich beschäftige mich noch nicht so lange mit VB und objektorientierter Programmierung und auch auf die Gefahr hin, dass ich mich bis auf die Knochen blamiere stelle ich trotzdem mal meine Frage.
Ich habe in meinem Projekt 2 Forms die sich bisweilen sehr ähnlich sind. Das eine Form gehört zu einem HW-Modul, dessen Entwicklung abgeschlossen ist, die Darstellung innerhalb des Forms wird sich also nicht mehr ändern. Das neue, nachfolge HW-Modul basiert auf dem alten, aber wird stetig weiter entwickelt werden. Dadurch wird sich auch der dargestellte Inhalt des neuen Forms im Laufe der Zeit immer mehr verändern und nicht mehr dem alten entsprechen, was es nicht möglich macht die selbe Klasse dafür zu verwenden.
Der nachfolgende Code ist nur Beispielhaft um mein Problem zu erklären.
In beiden Forms wird (da sich die Forms bisweilen sehr ähneln) ein Array benutzt. Diese sind (weil unterschiedliche Klassen) unabhängig voneinander auch lebensfähig.
Ich hatte bisher (als es nur das alte Form gab) in einem Modul einen Aufruf wie diesen
Soweit so gut. Jetzt gibt es aber neuerdings noch frm_new auf welches ich alternativ zugreifen möchte.
Nachfolgendes funktioniert natürlich nicht, das ich frmAccess nicht wahlweise auf frm_old oder frm_new festlegen kann:
Und daran scheiterte dann auch das gesamte Vorhaben.
Vielleicht hat ja jemand einen Tipp für mich, wie ich das Problem möglichst elegant lösen kann.
Ginge es nur um einzelne Aufrufe, dann würde ich einfach zwei unterschiedliche aufrufende Subs in dem Modul schreiben. Das Problem liegt aber auch darin, dass frm_old einige hundert Zeilen Code hat und ich darin immer und immer wieder mit frmAccess auf unterschiechste Variablen und Controls zugreifen, auf die ich in frm_new nun alternativ (abhängig davon welche Hardware verwendet wird) zugreifen möchte.
ich beschäftige mich noch nicht so lange mit VB und objektorientierter Programmierung und auch auf die Gefahr hin, dass ich mich bis auf die Knochen blamiere stelle ich trotzdem mal meine Frage.
Ich habe in meinem Projekt 2 Forms die sich bisweilen sehr ähnlich sind. Das eine Form gehört zu einem HW-Modul, dessen Entwicklung abgeschlossen ist, die Darstellung innerhalb des Forms wird sich also nicht mehr ändern. Das neue, nachfolge HW-Modul basiert auf dem alten, aber wird stetig weiter entwickelt werden. Dadurch wird sich auch der dargestellte Inhalt des neuen Forms im Laufe der Zeit immer mehr verändern und nicht mehr dem alten entsprechen, was es nicht möglich macht die selbe Klasse dafür zu verwenden.
Der nachfolgende Code ist nur Beispielhaft um mein Problem zu erklären.
In beiden Forms wird (da sich die Forms bisweilen sehr ähneln) ein Array benutzt. Diese sind (weil unterschiedliche Klassen) unabhängig voneinander auch lebensfähig.
Ich hatte bisher (als es nur das alte Form gab) in einem Modul einen Aufruf wie diesen
Soweit so gut. Jetzt gibt es aber neuerdings noch frm_new auf welches ich alternativ zugreifen möchte.
Nachfolgendes funktioniert natürlich nicht, das ich frmAccess nicht wahlweise auf frm_old oder frm_new festlegen kann:
VB.NET-Quellcode
- Public Sub ReadValues(ByVal AccessNewForm As Boolean)
- 'testen ob altes oder neues Form geladen ist
- 'abhängig davon frmAccess dimensionieren
- 'entweder
- If AccessNewForm = False Then
- Dim frmAccess As frm_old
- Else
- 'oder
- Dim frmAccess As frm_new
- End If
- 'und im geöffneten Form Werte setzen
- frmAccess.Array(1).ValueA = 1
- frmAccess.Array(1).ValueB = 1
- End Sub
Und daran scheiterte dann auch das gesamte Vorhaben.
Vielleicht hat ja jemand einen Tipp für mich, wie ich das Problem möglichst elegant lösen kann.
Ginge es nur um einzelne Aufrufe, dann würde ich einfach zwei unterschiedliche aufrufende Subs in dem Modul schreiben. Das Problem liegt aber auch darin, dass frm_old einige hundert Zeilen Code hat und ich darin immer und immer wieder mit frmAccess auf unterschiechste Variablen und Controls zugreifen, auf die ich in frm_new nun alternativ (abhängig davon welche Hardware verwendet wird) zugreifen möchte.