x93000
Goto Top

Globales Class Array. Definieren und Verwenden

Zweck: Datensätze in verschiedenen Forms parat haben

Hallo,

es geht mir darum ein Array zu definieren in dem ich ein paar Datensätze aufnehmen kann und diese
FORMÜBERGREIFEND zu verwenden.

So solls werden:

Personen(0).Name = "Huber"
Personen(0).Nachname = "Müller"

Personen(1).Name = "Heinz"
Personen(1).Nachname = "Dietrich"

etc.

Bisheriger Lösungsversuch:

Module Module1
Public Class klasse1

Public Name As String
Public Nachname As String

End Class

Public Personen = New klasse1()

End Module

Die Definition wird angenommen. Allerding wenn ich Versuche in einem Form Window einen Wert zuzuweisen kommt ein Fehler, sobald
das Programm läuft.

Personen(0).Name = "Heinz"

Fehler: Wenn ein Member in der Klassenbibiothek gelöscht wurde, müssen Sie alle Asymbleys mit Verweisen auf diese Bibiothek
neu Kompilieren. Wenn Sie auf Member einer spät gebundenen Objektvariable zugreifen, müssen Sie sicherstellen, dass diese Public deklariert ist.

Wie und wo definiere ich es? Und wie greife ich in Form1 bzw. Form2 etc. darauf zu?

Ich hätte das ganze gern als Globale Variablen (nicht übergeben).
Wie heißen die Code Zeilen? Wo müssen diese hin?

Content-ID: 74746

Url: https://administrator.de/contentid/74746

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

misterdemeanor
misterdemeanor 29.11.2007 um 15:41:51 Uhr
Goto Top
Hallo "x93000",

ich nehme mal an Du "programmierst" in VB6...richtig? Nach Der Fehlermeldung zu gehen ist das aber VB.Net bzw. VB 2005. Wenn das der Fall ist kann ich Dir allerhöchstens ein, zwei Buchempfehlungen zu grunglegenden Programmierkonzepten der OOP geben...lass es uns wissen.

Naja, ansonsten schau mal in der "Hilfe" Deiner "Programmiersprache" nach Arrays, insbesondere wenn es um dynamische Arrays geht. Desweiteren noch wie man mit "Klassen" bzw. Objekten umgeht. Da sei Dir im Bereich VB die Anweisung Set ans Herz gelegt.

Nichts für ungut...wenn Du nicht weiterkommst stehe ich Dir gerne zur Seite.

BG, Felix
x93000
x93000 29.11.2007 um 19:07:03 Uhr
Goto Top
Hallo Felix,

Ja, ich verwende VB 2005 Express Edition.

Ich fand bei meiner Internet Rechere irgendwo ein:

Public Objekte
Set Objekte = New objektdefinition()

Allerdings nimmt er die Syntax nicht (Set) in dem Modul.


Ich brauche nach wie vor die Syntax wie die Deklaration und Verwendung funktioniert. Mit meinem Beispiel vom vorherigen Post funktioniert zumindest die Deklaration.
misterdemeanor
misterdemeanor 29.11.2007 um 22:03:57 Uhr
Goto Top
Hi,

also was Du da in bzw. mit vb 2005 anstellen willst ist absolut, verzeihe, lächerlich. Selbst in VB6 wäre Dein Vorhaben schlecht, angefangen vom Gedanken etwas /global/ zu verwenden, bishin das dies /global/ verwendete Daten sind.

Besser jemand sagt es Dir direkt als das Du Dir niemals ein Buch vornimmst!

Jetzt habe ich angefangen Dir zu antworten, aber im mom ehrlich keine Lust Ressourcen rauszusuchen. Morgen werde ich Dir gerne einige Buchempfehlungen aussprechen, ggfls. einige Links zu Ressourcen die kostenlos im Internet frei erreichbar sind. Wenn Du nur etwas googlest findest Du unter Umständen sogar bessere.

Niedermachen will ich Dich wirklich nicht! Es ist gut das Du Dich für das programmieren interessierst. Aber wenn Dir eine /relativ/ komplexe IDE wie z.B. VB 2005 Express zu Verfügung gestellt wird, dann solltest Du Dich auch damit auseinandersetz.en. Zumindest minimal bevor Du in einem angesehen Forum wie administrator.de postest.

Wirklich nichts für Ungut, ich hoffe Du und jeder Leser nimmt es sich zu Herzen.

BG, Felix
x93000
x93000 30.11.2007 um 10:39:11 Uhr
Goto Top
Hallo,

du findest es sei kein guter Programmierstil, glaub ich, schließlich kennst du dich mit vb aus. Persönlich nehme ich es nicht.

Dennoch, für meine Zwecke (recht kleine Programme) ist für mich das praktischeste das Klassen Array einfach Global zu machen.

Ich durchsuchte google für 6 Stunden und fragte einen Lehrer, leider ohne Erfolg.

Wenn dies also jemand liest: Brauche, wie im ersten Post geschrieben die Syntax, ein Array mit mehrere Datensätzen Global zu erstellen. Damit ich in allen Form Windows darauf zugreifen kann.
misterdemeanor
misterdemeanor 30.11.2007 um 15:20:54 Uhr
Goto Top
Hi x93000,

Arrays können in VB 2005 natürlich noch genutzt werden aber das Framework (und auch VB 2005 als Sprache selbst) stellt Dir berfügung. Stichwort Collections.

Damit Du weiterkommst hier mal solch eine Alternative:

Anstelle von

Public Personen = New klasse1()

schreibst Du

Public Personen As New List(Of Person)

und wenn Du eine neue Person erstellst machst Du es folgendermaßen:

Dim p As New Person p.Name = "Alex" p.Nachname = "Tester" Personen.Add(p)

OOP technisch würde man da völlig anders Vorgehen, damit willst Du Dich aber wohl nicht auseinandersetzen.

Schönes WE

Felix
x93000
x93000 01.12.2007 um 19:22:03 Uhr
Goto Top
Deinen Lösung funktioniert. Allerdings weis ich noch nicht wie ich mir dann einzelne Personen gezielt rausgreif, bzw. lösche.

Zwischenzeitlich warf ich ein Blick in ein Buch eines Kollegen und habe mich für folgende schlichte Lösung entschieden:

(Im Modul)
Public Datensatz (20,1) As String

Im FormWindow
Datensatz(0,0) = "Alex"
Datensatz(0,1) = "Müller"

Datensatz (1,0) = "Hans"
Datensatz(1,1) = "Meier"
etc.

Danke für die Antworten und ebenfalls schönes Wochenende