vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Object global declarieren  
Autor: reisender
Datum: 10.10.13 14:25

Hallo Forum
VB6
Anfänger

Mal eine blöde Frage aber ich komme nicht drauf und mit der su.fu. auch nichts gefunden.
Da ich verschiedenen Subroutinen, Text und Listboxen ansprechen muss nervt es, überall den gesamten Pfad einzugeben. Form1. zb: „Form1.ListView1.ListItems“
Oder in jeder Routine „Set xxx = Form1.ListView1.ListItems“ anzugeben.

Frage: Gibt es die Möglichkeit solche Deklarationen global zu schreiben.

Danke für eure Hilfe

Beitrag wurde zuletzt am 10.10.13 um 14:26:05 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: Blackbox
Datum: 10.10.13 14:58

Hi,

klar geht das. Nimm ein Modul und definiere darin das Objekt.Zugriffspezifiktion: PUBLIC.

PUBLIC MyGlobObject As FORM1.LISTVIEW

in der Form dann die Zuweisung:

Set MyGlobObject = Form1.Listview
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: Zardoz
Datum: 10.10.13 15:36

http://www.vbarchiv.net/faq/details.php?id=allg_module

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: reisender
Datum: 10.10.13 16:00

Hallo Blackbox

Danke für die schnelle antwort
Leider klappt das nicht, ich bekomme die Fehlermeldung.
[u] „Benutzerdefinierter Typ nicht definiert„

Private Sub Form_Load()
Set MyGlobObject = Form1.ListView
End Sub
 
'Modul:
Public MyGlobObject As Form1.ListView
Grüsse Reisender
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: reisender
Datum: 10.10.13 16:56

hallo Zardoz
Danke dir für deinen Link.
Die Funktionsweise von deinem Link habe ich zwar verstanden, aber ich sehe da keine Verbindung zu meiner Frage.
Aber inzwischen bin ich selber daufgekommen mit einem Denkanstoss von Blackbox.
'im Modul 
Global LView As Object
'----------
'im Form
Private Sub Form_Load()
Set LView = Form1.ListView1.ListItems
Danke dir aber trotzdem.
schöne Grüsse
Reisender
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: reisender
Datum: 10.10.13 17:01

Nochmal Blackbox
Hat sich erledigt.
Musste im Modul lauten : Global MyGlobObject As Object
Danke dir.
schönen Tag noch
Grüsse
Reisender
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: Blackbox
Datum: 10.10.13 21:48

Hi,

bitte nicht Global verwenden - sowas vermeidet man in ooP. Verwende PUBLIC im Modul. GLOBAL ist veraltet und nur aus abwärts Kompatibilität verwendet. Ich würde nicht unbedingt gerade eine Object-Collections wie zB: ListView.ListItems dazu verwenden.

Vielleicht gibt es Probleme, deine PUBLIC Objekt-Variable mit For Each durchlaufen zu können, weil die die Dispatch-ID -4 vielleicht nicht kennt. Die IEnumVariant - die hier angezogen werden würde - ist in VB 6 nicht gerade elegant gelöst worden. Das sind Erfahrungswerte. Diese Probleme kommen später, wenn die EXE fertig ist.

Gemeint ist: Nicht Form1.Listview.ListViewItems dazu verwenden - sondern einen Schritt zurück:

Form1.Listview.

Wenn man die dann später im Programm mit For Each laufen lassen müsste,

so geht dann 100%: For Each v in LView.ListItems.

Das wäre dann trotz late Bindung ein eindeutiger Verweis auf eine perfekte IEnumVariant.

ist nur am Rande bemerkt ;)

Beitrag wurde zuletzt am 10.10.13 um 21:54:32 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Object global declarieren 
Autor: reisender
Datum: 11.10.13 00:34

Danke dir Blackbocks
Werde ich mir merken

Habe mal in grauer Vorzeit an VB gerochen.
Daher das mit "Global".
Danke
Reisender
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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