Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: x93000

x93000 (Level 1) - Jetzt verbinden

28.11.2007, aktualisiert 01.12.2007, 6362 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 ..
Ähnliche Inhalte
Netzwerkmanagement
Netzwerkumstellung Class C Netz
gelöst Frage von ProjectoNetzwerkmanagement13 Kommentare

Hallo liebe Forenmitglieder, ich verzweifel an der Frage, die sich mir seit zwei Wochen stellt. Es geht um ein ...

Windows Server
PolicyDefinitions Global bereit stellen
Frage von 77282Windows Server4 Kommentare

Hallo zusammen, neulich hatte ich einen Fehler auf meinen Windows 7 Clients ,der besagte das nicht alle ADMX/ADML Dateien ...

JavaScript
Javascript Array
gelöst Frage von internet2107JavaScript2 Kommentare

Ich habe folgendes Problem. Ersetze ich die folgenden Zahlen gegen Variablenwerte, bekomme ich nicht das Ergebnis, wie mit festen ...

Windows Netzwerk

Unterschied zwischen Distribution Group Universal-Global und Security Group Universal-Global

Frage von manuel109Windows Netzwerk2 Kommentare

Hallo Zuammen, kann mir jemand kurz den Unterschied erklaeren der oben genannten Elemente. Ist Distribution Group fuer Exchange und ...

Neue Wissensbeiträge
Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 2 TagenOff Topic

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 2 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Sicherheit

MikroTik: Sicherheitslücke wird ausgenutzt obwohl ein Update seit langem verfügbar ist

Information von sabines vor 2 TagenSicherheit

Obwohl ein Update, dass die nun massenhaft ausgenutzte Lücke schließt, seit langem (März 2018) verfügbar ist, wird es offensichtlich ...

Informationsdienste
Gut getarnter Trojaner unterwegs (Emotet)
Information von nepixl vor 4 TagenInformationsdienste3 Kommentare

Hallo, quick & dirty: ein neuer Cryptotrojaner sorgt wieder für Millionenschäden. BSI Artikel Heise Artikel Der Trojaner kommt in ...

Heiß diskutierte Inhalte
Rechtliche Fragen
Systemhaus auf Abwegen
Frage von rocco61Rechtliche Fragen12 Kommentare

Hallo zusammen, bin derzeit ratlos bei dem folgenden Scenario: In einen Seniorenheim wurde beschlossen, die IT an eine andere ...

Router & Routing
MikroTik - Routing, Bridging, Switching
gelöst Frage von Alex29Router & Routing9 Kommentare

Hallo in die Runde, als Hobby-Admin würde ich bitte mal wieder Eure Hilfe benötigen. Seit der Umstellung auf RouterOS ...

Windows Server
HP Proliant DL 380G7 ILO2 Problem und DL 580G6 OS Prolem
gelöst Frage von Home-NeulingWindows Server6 Kommentare

Hallo, ich bin neu hier, und hoffe das ich hier jetzt auch richtig Poste. Ich habe mir zuhause ein ...

Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
Frage von gabeBUExchange Server6 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...