Ok, hier mal ein wenig Code
Der Einstiegspunkt meine Anwendung ist das Load-Ereignis.
Hier wird eine Instanz meiner Klasse CFolie erstellt und danach die Prozedur loadINI aufgerufen.
Diese liest Werte aus einer INI-Datei und weist sie den Properties der Instanz Folie zu:
Private Sub Form_Load()
'Neues Folienobjekt erstellen
Set Folie = New CFolie
'INI-Datei laden
Call loadINI
... Hier der Code für die Prozedur loadINI:
'Die folgende Deklarationen werden zum Auslesen von Werten einer INI-Datei
' benötigt
Private Declare Function GetPrivateProfileInt Lib "kernel32" _
Alias "GetPrivateProfileIntA" (ByVal lpApplicationName _
As String, ByVal lpKeyName As String, ByVal nDefault As _
Long, ByVal lpFileName As String) As Long
'Bedeutung der Parameter:
'lpApplicationName - Abschnittsname in INI-Datei
'lpKeyName - Schluesselbezeichnung
'nDefault - Defaultwert falls noch nicht vorhanden
'lpFileName - Name der Ini-Datei
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long
'Bedeutung der Parameter:
'lpApplicationName - Abschnittsname in INI-Datei
'lpKeyName - Schluesselbezeichnung
'nDefault - Defaultwert falls noch nicht vorhanden
'lpReturnedString - Puffer, der den Rückgabewert enthält (muss mit
' ausreichend Leerstellen gefüllt sein)
'nSize - Größe des Puffers in Bytes.
'lpFileName Pfadangabe der (INI-)Datei
'Rückgabewert:
'Bei erfolgreichem Aufruf enthält der Rückgabewert die Länge des gelesenen
' Strings (Textes), andernfalls wird "0" zurückgegeben.
'Auslesen der Datei "Pressure.INI"
Public Sub loadINI()
Dim tempRetStr As String * 50
Dim retVal As Long
Dim iniDatei as String
iniDatei = App.Path & "/Pressure.INI"
Folie.MinFlaeche = GetPrivateProfileInt("Folie", "minFlaeche", 9, iniDatei)
Folie.spaltenX = GetPrivateProfileInt("Folie", "spaltenX", 64, iniDatei)
Folie.zeilenY = GetPrivateProfileInt("Folie", "zeilenY", 32, iniDatei)
retVal = GetPrivateProfileString("Folie", "breiteX", "394", tempRetStr, Len( _
tempRetStr), iniDatei)
If (retVal > 0) Then
Folie.BreiteX = CSng(tempRetStr)
Else
Folie.BreiteX = 394
End If
retVal = GetPrivateProfileString("Folie", "hoeheY", "193,5", tempRetStr, _
Len(tempRetStr), iniDatei)
If (retVal > 0) Then
Folie.HoeheY = CSng(tempRetStr)
Else
Folie.HoeheY = 193.5
End If
'FEHLERZEITPUNKT
retVal = GetPrivateProfileString("Folie", "toleranzFlaeche", "0,5", _
tempRetStr, Len(tempRetStr), iniDatei)
If (retVal > 0) Then
Folie.ToleranzFlaeche = CSng(tempRetStr)
Else
Folie.ToleranzFlaeche = 0.5
End If
retVal = GetPrivateProfileString("Folie", "toleranzGewicht", "0,5", _
tempRetStr, Len(tempRetStr), iniDatei)
If (retVal > 0) Then
Folie.ToleranzGewicht = CSng(tempRetStr)
Else
Folie.ToleranzGewicht = 0.5
End If
retVal = GetPrivateProfileString("Folie", "toleranzSensor", "0,3", _
tempRetStr, Len(tempRetStr), iniDatei)
If (retVal > 0) Then
Folie.ToleranzSensor = CSng(tempRetStr)
Else
Folie.ToleranzSensor = 0.3
End If
End If
End Sub Durch MsgBox zu Debug-Zwecken habe ich den Fehlerzeitpunkt festgestellt. Dieser ist oben im Code durch einen Kommentar gekennzeichnet.
Die Klasse CFolie besitzt insgesamt 2 private Konstanten, 17 öffentliche properties, 3 öffentliche Funktionen und 4 öffentliche Prozeduren.
Habe folgendes im Netz gefunden:
http://www.herber.de/forum/archiv/320to324/t320847.htm#320849
Ist meine Klasse CFolie zu groß ?????? |