- Beiträge
- 6.323
- Reaktionspunkte
- 2.341
-> Hier kostenlos registrieren
Hallo,
ich habe hier ein etwas aufgeblasenes Skript gehabt das 30 mal das selbe macht, ich habe die Funktion nun in eine Schleife gepackt und alles indirekt addressiert.
und jetzt - oh wunder - es geht nicht mehr...
so wie ich das nachvollziehen konnte werden die variablen nicht aktualisiert, da steht im debugger bei manchen "0" drin obwohl das nicht sein darf...
da ich jetzt nicht so der vb-skript profi bin, mache ich sicher nur irgendwas falsch, oder geht das so wirklich nicht?
hier das skript:
ich habe hier ein etwas aufgeblasenes Skript gehabt das 30 mal das selbe macht, ich habe die Funktion nun in eine Schleife gepackt und alles indirekt addressiert.
und jetzt - oh wunder - es geht nicht mehr...
so wie ich das nachvollziehen konnte werden die variablen nicht aktualisiert, da steht im debugger bei manchen "0" drin obwohl das nicht sein darf...
da ich jetzt nicht so der vb-skript profi bin, mache ich sicher nur irgendwas falsch, oder geht das so wirklich nicht?
hier das skript:
Code:
' Erstelle Variablen
Dim Mitte, D
Dim Rolle
Dim Schnittnummer
Dim vonLinks
Dim vonRechts
Dim Position
Dim i
'setzte Festevariable
vonLinks = 340
vonRechts = (340 + (SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Header.Mutterrollenbreite") / 7))
Mitte = 596 - ((SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Header.Rollendurchmesser")/10)/2)
D = SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Header.Rollendurchmesser")/10
' Höhe + Breite der Mutterrolle anpassen
HmiRuntime.Screens("B_Editor").ScreenItems("Mutterrolle").Height= D
HmiRuntime.Screens("B_Editor").ScreenItems("Mutterrolle").Width = SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Header.Mutterrollenbreite") / 7
' Position der Mutterrolle anpassen
HmiRuntime.Screens("B_Editor").ScreenItems("Mutterrolle").Left = 340
HmiRuntime.Screens("B_Editor").ScreenItems("Mutterrolle").Top = Mitte
'####################
' S C H L E I F E - 1 Alle Schnitte auf Unsichtbar setzen
'####################
For i = 1 To 30 ' Schleife - (Maximal 30 Schnitte möglich)
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&i).Visible = False
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&i).Visible = False
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&i).Visible = False
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&i).Visible = False
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&i).Visible = False
Next
'####################
' S C H L E I F E - 2 Bestimmung der Position und Größe - Nur nenötigte Schnitte Sichtbar setzen
'####################
For Schnittnummer = 1 To SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Header.Schrittnummer_MAX")
' Schnitttyp-2 ist ein Sauberschnitt (eine Sägeblattbreite)
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Schnittyp") = 2 Then
vonLinks = vonLinks + (10/7)
End If
'Positon und Größe wenn der Schnitt auf der LINKEN Seite ist (Schnittseite-1)
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Schnittseite") = 1 Then
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Left = vonLinks
Position = vonLinks
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Width = SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7
vonLinks = vonLinks + ((SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7) + 10/7)
'Positon und Größe wenn der Schnitt auf der RECHTEN Seite ist (Schnittseite-2)
Else
vonRechts = vonRechts - (SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt[1].Rollenbreite_SOLL")/7)
Position = vonRechts
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Width = SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Left = vonRechts
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Top = Mitte
' sieht komisch aus ist es auch aber, dadurch das die Darstellung am Äußeren Rand vom Panel ist
' kann es Vorkommen das jenach Richtung das Bild erst die Größe ändert und dann so groß wird, das es nicht mehr auf
' das Panel passt und somit gar nicht erst dargesstellt wird. Deswegen diese Doppelt Programmierung egal wie das Bild liegt so passt es immer
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Left = vonRechts
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Width = SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7
End If
' Darstellung der Schnittypen in Unterschiedlichen Farben
Select Case SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Schnittyp")
Case 0 HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Visible = False
Case 1 HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).BackColor = vbBlack
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Visible = True
Case 2 HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).BackColor = vbWhite
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Visible = True
Case 3 HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).BackColor = vbGreen
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Visible = True
Case 4 HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).BackColor = vbBlue
HmiRuntime.Screens("B_Editor").ScreenItems("Schritt_"&Schnittnummer).Visible = True
End Select
' Darstellung von Fräs und Schneid Einstellungen
' Fräsen links
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Fraesen_LINKS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&Schnittnummer).Visible = True
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&Schnittnummer).Left = Position
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("FRL_"&Schnittnummer).Width = 4
End If
' Schleifen links
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Schleifen_LINKS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Visible = True
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Fraesen_LINKS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Left = Position + 4
Else
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Left = Position
End If
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("SCL_"&Schnittnummer).Width = 4
End If
' Fräsen rechts
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Fraesen_RECHTS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&Schnittnummer).Visible = True
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&Schnittnummer).Left = Position + ((SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7) - 4)
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("FRR_"&Schnittnummer).Width = 4
End If
' Schleifen rechts
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Schleifen_RECHTS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Visible = True
If SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt[1].Fraesen_RECHTS") = True Then
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Left = Position + ((SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7) - 8)
Else
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Left = Position + ((SmartTags("Rezeptur_Var\Rollendaten_EDIT.Schnittdaten.Schnitt["&Schnittnummer&"].Rollenbreite_SOLL")/7) - 4)
End If
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Top = Mitte
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Height = D
HmiRuntime.Screens("B_Editor").ScreenItems("SCR_"&Schnittnummer).Width = 4
End If
Next