vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Problem gelöst? 
Autor: MCP
Datum: 29.01.10 10:23

Servus CrazyMetal.
Ja Problem scheint gelöst.
Ich war heute früh auch schon fleißig und habe den Ansatz implementiert.
Das Ergebnis:
Vorwärtsdeklarationen stellen in Klassen kein Problem da! Da jede Klasse in einer eigenen Datei liegt.
Mein Prototyp sieht zwar etwas anders aus als Deiner, aber macht im Endeffekt das gleiche.

Nun hatte ich noch ein kleines Problem:
Bei Visual Basic 6 darf man zwar einen eigenen Typen/eine eigene Klasse als ein Public Attribut definieren. Jedoch darf ein Array von Object/Variant/eigenere Klasse/Benutzerdefinierter Typ kein Public Attribut einer Klasse sein. Wortlaut:
"Fehler beim Kompilieren:
Konstanten, Zeichenfolgen fester Länge, benutzerdefinierte Arrays und Declare-Anweisungen sind als öffentliche Mitglieder von Objektmodulen nicht zugelassen."

Das Problem konnte ich umgehen indem ich das Array Private deklariert habe und eine Get Property Function implementierte. So gebe ich das Array zurück. Fehlt nur noch ein Property um an ein einzelnes Element zu kommen. Das sollte aber nicht schwer sein.
Das Ergebnis sieht bei mir wie folgt aus:

Typ1.cls:

'Klassenvariablen
Public m_sVar As String
Private m_T2() As Typ2
 
'Das Get Property um das Array der anderen Klasse abzufragen
Public Property Get T2() As Typ2()
    T2 = m_T2
End Property
 
'Ein Funktion um das Array zu initialisieren und mit Dummy Werte zu füllen.
Public Function load()
'Dummyvariable
    Dim T2_1 As New Typ2
'Arraygröße anpassen
    ReDim m_T2(2)
'Dummy 1 füllen
    T2_1.sVar = "Nr. 1"
    Set m_T2(0) = New Typ2
    Set m_T2(0) = T2_1
'Dummy 2 füllen  
    Set T2_1 = Nothing
    Set T2_1 = New Typ2
    T2_1.sVar = "Nr. 2"
    Set m_T2(1) = New Typ2
    Set m_T2(1) = T2_1
'Dummy 3 füllen
    Set T2_1 = Nothing
    Set T2_1 = New Typ2
    T2_1.sVar = "Nr. 3"
    Set m_T2(2) = New Typ2
    Set m_T2(2) = T2_1
End Function
Typ2:
'Kurz und knapp:
Public sVar As String
Public T1 As Typ1
Programm:
'Testen der Dummyklassen
'Deklarieren der Klassen
Dim oTyp1 As New Typ1
Dim oTyp2 As New Typ2
'Array von Typ 2 das durch Get Property gefüllt wird um die Dummy Werte aus 
' Typ1 auszugeben
Dim oTempT2() As Typ2
 
Beschreiben von Typ2.T1 zum Testen.
Set oTyp2.T1 = oTyp1
 
'Dummy Werte in T1 initialisieren
oTyp1.load
'Das Array der Typ2 von Typ1 holen und der Dummy Variable zuweisen
oTempT2 = oTyp1.T2
'Die Dummy Werte ausgeben
Debug.Print oTempT2(0).sVar
Debug.Print oTempT2(1).sVar
Debug.Print oTempT2(2).sVar
Das scheint soweit rund zu laufen und die gewünschte Funktionalität zu erfüllen.
Sollten noch weitere Probleme auftreten werde ich mich hier nochmal melden.

Das mit den WeakReferences hat nicht sehr gut funktioniert. Beim Aufruf der CopyMemory des Systems hat sich das Programm samt VB6 verabschiedet. ;) Den Fehler konnte ich leider nicht eingrenzen.

Aber mit den Klassen wird es auch funktionieren.

Danke an alle für die Hilfe. Ich habe wiedermal eine ganze Menge mehr über VB6 gelernt. Letztendlich lag die Lösung doch näher als erwartet. Manchmal sieht man den Wald vor lauter Bäumen nicht. ^^
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Komplexere Strukturen in VB63.841MCP25.01.10 11:02
Re: Komplexere Strukturen in VB62.165Dirk25.01.10 12:52
Re: Komplexere Strukturen in VB61.950Dirk25.01.10 12:56
Re: Komplexere Strukturen in VB62.120MCP25.01.10 13:06
Re: Komplexere Strukturen in VB62.031Dirk25.01.10 13:35
Re: Komplexere Strukturen in VB61.914MCP25.01.10 13:47
Re: Komplexere Strukturen in VB61.954CrazyMetal28.01.10 09:52
Re: Komplexere Strukturen in VB61.940MCP28.01.10 10:50
Re: Komplexere Strukturen in VB61.783CrazyMetal28.01.10 11:35
Re: Komplexere Strukturen in VB61.808MCP28.01.10 11:45
Problem gelöst?2.014CrazyMetal29.01.10 07:55
Re: Problem gelöst?1.858MCP29.01.10 10:23
Re: Problem gelöst?1.794Dirk29.01.10 10:53

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel