Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Globales Class Array. Definieren und Verwenden

Frage Entwicklung VB for Applications

Mitglied: x93000

x93000 (Level 1) - Jetzt verbinden

28.11.2007, aktualisiert 01.12.2007, 6310 Aufrufe, 6 Kommentare

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?
Mitglied: misterdemeanor
29.11.2007 um 15:41 Uhr
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
Bitte warten ..
Mitglied: x93000
29.11.2007 um 19:07 Uhr
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.
Bitte warten ..
Mitglied: misterdemeanor
29.11.2007 um 22:03 Uhr
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
Bitte warten ..
Mitglied: x93000
30.11.2007 um 10:39 Uhr
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.
Bitte warten ..
Mitglied: misterdemeanor
30.11.2007 um 15:20 Uhr
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
Bitte warten ..
Mitglied: x93000
01.12.2007 um 19:22 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Netzwerke
VPN nur für bestimmte Port(s) verwenden unter Win10 (1)

Frage von Bluebrain zum Thema Netzwerke ...

Webentwicklung
Redirect - Ausnahme definieren in Htaccess (3)

Frage von dodo-r zum Thema Webentwicklung ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...