Hallo!
Ich verwende in meinem Projekt diverse sev-Elemente, bis jetzt ohne Probleme.
ABER:
In der Anwendung gibt es ein "Suchen-Formular" dort werden die folgenden Komponenten verwendet: sevEingabe, sevGrid und sevCmd gut.
Ich glaube der Fehler den ich bekomme der liegt im oder am sevGrid.
Bei diesem Vorgang, (laden des Formulars -> auf Button "Suchen" klicken -> SevGrid wird mit Daten befüllt und angezeigt -> Doppeltklick auf gewünschte Zeile ->Formular wird entladen, hängt sich die ganze Anwendung nach ca 50 Wiederholungen auf).
Der Fehler passiert genau beim grid.refresh, dies konnte ich im Debugmodus feststellen (daher gehe ich davon aus dass es am sevGrid liegt).
Der Error siehr dann ungefähr so aus:
Alle Sev-Elemente die verwendet werden hab dann plötzlich lauter Querstriche, Die Anwendung erstarrt komplett, nach ein paar Mausklicks bekommt man auch mehrere Fehlermeldungen. Es beginnt mit: sevTextBox -> Laufzeitfehler OK ...dann folgt (nach bestätigen des Buttons) sevDataGrid -> Laufzeitfehler '480': AutoRedraw-Bild kann nicht erstellt werden OK ...dann folgt (wieder nach bestätigen des Buttons) die erste Fehlermeldung die mir direkt das VB zurück gibt: Automatisierungsfehler OK und die bleibt dann auch konstant, das Programm kann nur noch über den Taskmanager beendet werden.
Ich glaube das da eventuell der WindwsHandler voll ist und sich deshalb alles aufhängt???
Der Fehler kann an verschiedenen Rechner generiert werden.
Hier der Code zum generieren des Grids:
Private Function funFillSuchenGrid(ByRef vArr As Variant)
On Error GoTo PROC_ERR
objErr.Push "frmAirSuchen.funFillSuchenGrid"
Dim oItem As sevDataGrid.ListItem
Dim str As String
Dim i, j As Integer
frmAirSuchen.MousePointer = vbHourglass
If UBound(vArr, 1) <> 0 Then
ProgressBar1.Max = UBound(vArr, 1)
ProgressBar1.Visible = True
Label3.Caption = UBound(vArr) & " " & funGetMsgTrans(" Datensätze" & _
"gefunden. Datensätze werden eingetragen - bitte warten", 0, _
pubIntLanguage)
Label3.Refresh
gridSuchen.Visible = False
With gridSuchen
.Clear True
.LockUpdate True
.DataMode = Mode_List
For j = 0 To UBound(vArr, 2)
.ColumnAdd vArr(0, j), vArr(0, j), 1100
Next
If bAirAdresseSearch Or bCorrectSearch Or bAirShipperSearch Then
.ColumnAdd "LOESCHEN", "LOESCHEN", 600, ALIGNMENT_CENTER, , _
TYP_CHECKBOX
End If
Dim v As Variant
v = Split(sColumnWidths, "|")
For i = 0 To UBound(v)
If v(i) = 0 Then
.Columns(i + 1).Visible = False
Else
.Columns(i + 1).Width = v(i)
End If
Next
If sCheckBoxColumns <> "" Then
If InStr(1, sCheckBoxColumns, "|") > 0 Then
v = Split(sCheckBoxColumns, "|")
For i = 0 To UBound(v)
.Columns(v(i)).ColType = TYPE_CHECKBOX
Next
Else
.Columns(CInt(sCheckBoxColumns)).ColType = TYPE_CHECKBOX
End If
Else
'we don't have any checkbox columns (default)
End If
For j = 1 To UBound(vArr, 1)
str = ""
For i = 0 To UBound(vArr, 2)
str = str & vbTab & vArr(j, i)
Next i
Set oItem = .AddItem(Mid(str, InStr(1, str, vbTab) + 1))
DoEvents
ProgressBar1.Value = j
Next
.AutoSort = True
.ShowSortSymbols = True
.AllowEdit = True
.AllowMultiSelect = False
.AllowDelete = False
.AllowColumnSizing = True
.LockUpdate False
.Refresh
End With
gridSuchen.Visible = True
ProgressBar1.Visible = False
Else
gridSuchen.Clear True
gridSuchen.Visible = False
Label3.Caption = funGetMsgTrans("Keine Datensätze gefunden.", 0, _
pubIntLanguage)
Label3.Refresh
End If
frmAirSuchen.MousePointer = vbDefault
PROC_EXIT:
objErr.Pop
Exit Function
PROC_ERR:
objErr.HandleError
Resume PROC_EXIT
End Function Ich arbeite auf einem WindowsXp SP2 (alle Patches), 1GB Ram, 3GHZ AMD
Die sev-Komponenten wurden alle auf den neuesten Stand gebracht, leider ohne Erfolg
Achja, wenn man nur das Formular aufruft und auf "Suchen" klickt, dann funktioniert das ohne Probleme (auch nach 50 Versuchen passiert nix), nur wenn man anscheinend das Formular "Unloaded" und wieder ladet gehts schief.
Bitte um Hilfe - Danke! |