| |

Fortgeschrittene ProgrammierungVariablengültigkeit aus der EXE für eine ActivX-Dll | |  | Autor: Zimmermann mit Hut | Datum: 03.05.07 10:27 |
| Hallo benötige Logik Hilfe,
Re: Wertaustausch EXE <-> ActiveX Dll Wöllmi , 10.01.06 14:53
Hi Dirk, der Grund ist eigentlich simpel. Ich brauche eine Variable, die im gesamten Projekt allen Modulen, DLL's, Klassen, Formübergreifend, eben global verfügbar ist und von jed
Forum: Fortgeschrittene Programmierung
Ich bin zur Zeit beim selben Problem wie in diesem Thema beschrieben. Meine Variable
Public G as Single
ist im Allgemein.bas deklariert und wird auch in der Modulklasse KlappGZoom.cls erkannt und zoomt mir meine Zeichnung.
Jetzt habe ich eine ActiveX-DLL mit einer KlappGPZoomGrat.cls erstellt zur Auslagerung.
Alles funktioniert bis auf die übergabe meiner Variable aus der Allgemein.bas welche sich um 1 erhöht oder verkleinert je nach dem wie der Anwender es auslößt.
Wenn ich die Variable direckt in die ActiveX-Dll KlappGZoom.cls die Variable
G = 1 deklariere dann geht es, aber es ist nicht der richtige vom Anwender aus der EXE herraus.
[u]KlappZGratDll.dll (ActiveX-Dll in Verweisse enthalten)
__________________________________________________________-
ZoomSZZAllgemein.bas
Option Explicit
……
Public G As Single
##############################################################
________________
[u]KlappGZoom.cls (5 Multi Use)
------------------------
Option Explicit
Public picZeichnenfläche As PictureBox
Public Klapp As Long
'für Auslagerung der StartZeichnungen
'Public myZeichnungen As New ZoomStartGZ
***************************************************
Public Sub ZurückAblaufSparren()
picZeichnenfläche.DrawWidth = 2
G = 1
'************************************
'01. Sparren auf Fallpfette
picZeichnenfläche.Line (266 * G, 347 * G)- _
(279 * G, 332 * G), vbRed.
…
End Sub
Public Sub HinAnzeigenSparren()
Call HinAblaufSparren
End Sub
Public Sub ZurückAnzeigenSparren()
Call ZurückAblaufSparren
End Sub
Public Property Let Klappe(klp As String)
If klp = "Klappen" Then
Klapp = vbGreen
End If
End Property
Public Property Get Klappe() As String
If Klapp = vbGreen Then Klappe = "Klappen"
End Property
*************************************************
_____________
[u]ZoomKlappGP.cls (Private, weil sonnst kommt dann Fehlermeldung))
-------------------------
Option Explicit
Private MyZoomKlappGP As New Collection
Public Function Add(ByVal Klappe$, ByVal picZeichnenfläche As PictureBox) As KlappGPZoomGrat
Dim newHinHerKlappung As New KlappGPZoomGrat
With newHinHerKlappung
.Klappe = Klappe
Set .picZeichnenfläche = picZeichnenfläche
MyZoomKlappGP.Add newHinHerKlappung, .Klappe
End With
Set Add = newHinHerKlappung
End Function
Public Sub Delete(ByVal Index As Variant)
MyZoomKlappGP.Remove Index
End Sub
Public Function Item(ByVal Index As Variant) As KlappGPZoomGrat
Set Item = MyZoomKlappGP.Item(Index)
End Function
Public Function NewEnum() As IUnknown
Set NewEnum = MyZoomKlappGP.[_NewEnum]
End Function
[u]Problem ist eben die Variable G.
Ich habe das Modul aus der Anwendung
ZoomSZZAllgemein.bas
in der die öffentliche Variable
„Public G as Single“ für alle zugänglich
ebenfall in der ActiveX-DLL ebenfalls eingefügt und ist auch Public.
Sie wird aber nicht in der KlappGZoom.cls in der KlappZGratDll.dll ausgeführt um Die Zeichnung zu zoomen. Sie bleibt in der Picturezeichnung welche gezoomt ist als kleine Klappung und das passt nicht zusammen.
Ohne Auslagerung in einer ActiveX-DLL der
picZeichnenfläche.Line (266 * G, 347 * G)-(279 * G, 332 * G), vbRed
…….
klappt es,
nur in der Auslagerung der großen Datenmengen in eine ActiveX-DLL Datei klappt es nicht.
Vielleicht ist es ja in VB6 eine Sackgasse aber ich habe jetzt schon sehr viele Beiträge durchforstet und nur das eine Thema mit diesem Problem gefunden, nur dazu gab es keine Problem Lösung mit der Anerkennung der einzelnen VARIABLE in einer ActiveX-Dll.
Vielleicht gibt es ja doch eine Lösung.
MfG Andreas |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
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
|
|