hallo
es ist meine erste Frage und möchte mich kurz vorstellen,
heiße Alois und bin ein etwas älterer Gelegenheitsprogrammierer, der mit
ASM, C++, Borland Pascal ... groß geworden ist. Bin nun über Basic 6
bei vb.net hängen geblieben, leider habe ich es mit der OOP noch nicht
so recht, leider, weil es eigentlich eine super Sache ist.
Aktuell
möchte ich ein technisches Simulations-Programm erstellen (Forms), wo
ich ein oder mehrere DIP Schalter platzieren möchte. Diese bestehen aus
einfachen Buttons (Anzahl konfigurierbar) auf einem Panel
platziert/zusammengefasst.
Ich schreibe an einer DIP Schalter Klasse, und auf einer Form platziere ich per Designer ein Panel und
rufe dann über den NEW() Konstruktor die DIP Schalter Klasse auf, hier
übergebe ich dann auch das bereits auf der Forms platzierten Panel, nur
leider funktioniert das nicht .
Hier mal die Klasse:
und hier der Aufruf von Forms:
Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Freue mich, wenn mir das wer erklären könnte, was ich falsch mache.
Gruß,
Alois
P.S.: cool wäre es, wenn man das Ganze als eigenes CustomControl dann verwenden kann (Teil der Toolbox). Aber das ist dann der letzte Schritt.
es ist meine erste Frage und möchte mich kurz vorstellen,
heiße Alois und bin ein etwas älterer Gelegenheitsprogrammierer, der mit
ASM, C++, Borland Pascal ... groß geworden ist. Bin nun über Basic 6
bei vb.net hängen geblieben, leider habe ich es mit der OOP noch nicht
so recht, leider, weil es eigentlich eine super Sache ist.
Aktuell
möchte ich ein technisches Simulations-Programm erstellen (Forms), wo
ich ein oder mehrere DIP Schalter platzieren möchte. Diese bestehen aus
einfachen Buttons (Anzahl konfigurierbar) auf einem Panel
platziert/zusammengefasst.
Ich schreibe an einer DIP Schalter Klasse, und auf einer Form platziere ich per Designer ein Panel und
rufe dann über den NEW() Konstruktor die DIP Schalter Klasse auf, hier
übergebe ich dann auch das bereits auf der Forms platzierten Panel, nur
leider funktioniert das nicht .
Hier mal die Klasse:
VB.NET-Quellcode
- Public Class DIP_Switch
- Enum Richtung
- N
- S
- O
- W
- End Enum
- Private Panel_Bank As Panel
- Private Panel_Nummer As UInt16
- Private DIPschalter_Anzahl As UInt16 'maximal 16 DipSchalter pro Bank
- Private DisplayNumerierung As Boolean 'Nummer wird unter dem DIP Schalter eingeblendet
- Private Startwert_Numerierung As UInt16 'Startwert der Nummer unter den DIP Schaltern
- Private Schalterstellung As Boolean 'wenn DIP unten, dann ist der Wert 0 oder 1
- Private Ausrichtung As Richtung
- Private Dezimalwert As UInt16 'Rückgabewert
- Private boolWert_DIPnr As BitArray 'Rückgabewert
- Private Bild_DIP_unten As Image = My.Resources.DIP_unten
- Private Bild_DIP_oben As Image = My.Resources.DIP_oben
- Private Bild_DIP_rechts As Image = My.Resources.DIP_rechts
- Private Bild_DIP_link As Image = My.Resources.DIP_links
- Public Sub New(mypanel As Panel, panelNumber As UInt16,
- dipswitchcount As UInt16, show_number As Boolean, startvalue As UInt16,
- switchpos As Boolean, direction As Richtung
- )
- Panel_Bank = New Panel
- Panel_Bank = mypanel
- Panel_Bank.Tag = panelNumber
- DIPschalter_Anzahl = dipswitchcount
- DisplayNumerierung = show_number
- Startwert_Numerierung = startvalue
- Schalterstellung = switchpos
- Ausrichtung = direction
- Dim butDIP() As Button = Nothing
- For i As UInt16 = 0 To DIPschalter_Anzahl - 1
- butDIP(i) = New Button With {
- .Parent = Panel_Bank
- }
- Next
- End Sub
- ReadOnly Property Decimalvalue As UInt16
- Get
- Return Dezimalwert
- End Get
- End Property
- Next
- End Sub
- End Class
und hier der Aufruf von Forms:
Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Freue mich, wenn mir das wer erklären könnte, was ich falsch mache.
Gruß,
Alois
P.S.: cool wäre es, wenn man das Ganze als eigenes CustomControl dann verwenden kann (Teil der Toolbox). Aber das ist dann der letzte Schritt.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „ORTECH“ ()