| |
Visual-Basic EinsteigerRe: Fehler bei Abbruch von Common Dialog | | | Autor: Hollie | Datum: 05.03.24 09:38 |
| Oh ja, das hatte ich auch schon mal "Bei jedem Fehler". Darauf wäre ich jetzt nicht gekommen. Aber fein, wenn das Problem nun behoben ist.
PS: war keine Mühe, es ist "Solidarität" | |
Fehler bei Abbruch von Common Dialog | | | Autor: URi | Datum: 02.03.24 11:59 |
| Hallo zusammen.
Ich war jetzt schon ne Weile nicht mehr hier (letzte Anmeldung 2019, registriert seit 2003), da ich andere "Prioritäten" gesetzt habe und mit VB schon lange nichts mehr mache. Ich habe jetzt aber ein Problem, welches ich nicht verstehe.
Ich habe ein Programm geschrieben, mit welchem ich meinen Schriftverkehr/Dokumente einscannen kann und mittels treeview und listview für Übersicht sorgt. Das Programm ist auch nicht mehr das jüngste. Geschrieben habe ich es 2016 mit VB6 unter Win 7. Die exe konnte ich mit einigen Klimmzügen dann auf Win 10 zum laufen bringen und es läuft nun auch schon seit 2021 ohne Probleme.
Jetzt wollte ich ein lange geplantes Feature endlich einbauen und wollte es, so wie es ist/war in der GUI erst mal durchtesten.
Und hier bin ich über ein Problem mit dem Common Dialog gestolpert.
Wenn man auf abbrechen klickt kommt die Fehlermeldung: "Laufzeitfehler '32755' 'Abbrechen' wurde ausgewählt."
In der (alten) exe geht es aber ohne Probleme. Der Code-Ausschnitt sieht wie folgt aus:
CMDia.CancelError = True
On Error Resume Next
CMDia.ShowOpen
If Err.Number <> 0 Then
On Error GoTo 0
Exit Sub
End If Aber bei CMDia.ShowOpen bleibt er mit besagtem Fehler hängen.
Wie gesagt, ich habe am Code noch rein gar nichts geändert. Hat jemand eine Idee, was das sein könnte?
Und sorry, ich weiß. Es hinterlässt schon ein "Gschmäckle", wenn man sich jahrelang nicht meldet, dann aber gleich mit ner Hilfesuche um die Ecke kommt. | |
Re: Fehler bei Abbruch von Common Dialog | | | Autor: Kuno60 | Datum: 02.03.24 12:50 |
| Hallo,
wenn CancelError auf True festgelegt wird, dann wird immer ein Fehler ausgelöst, wenn auf Abbrechen geklickt wird. | |
Re: Fehler bei Abbruch von Common Dialog | | | Autor: URi | Datum: 02.03.24 13:08 |
| Danke. Aber das will ich ja. Wenn auf Abbrechen geklickt wird, soll er die Sub ja verlassen. Und mit on error goto next und der Abfrage nach Err.Number weiß ich ja, dass auf Abbrechen geklickt wurde (oder sonst was nen error warf). Dann soll er eben raus aus der Sub und nix machen. | |
Re: Fehler bei Abbruch von Common Dialog | | | Autor: URi | Datum: 04.03.24 12:07 |
| So, ersteres Problem habe ich nun dahin gehen gelöst, dass ich nach .ShowOpen prüfe, ob .FileName entweder leer ist oder die Datei nicht existiert. Ist eines von beidem der Fall, gehts mit Exit Sub wieder raus.
Ich scheine aber generell ein Problem mit on error zu haben.
ich prüfe mit folgendem Code, ob das Programm als exe läuft, oder in der IDE:
Public Function IsIDE() As Boolean
On Error Resume Next
Debug.Print 1 / 0
IsIDE = (Err <> 0)
End Function Und auch hier bleibt er bei Debug.Print 1 / 0 mit der Fehlernummer 11 (Division durch Null) hängen. Was zum Geier ist mit dem "On Error" los. Es scheint keine Auswirkungen zu haben. Ich habe auch schon die ganzen Eigenschaten, die ich so finden konnte durchgeschaut und nirgends etwas gefunden, was auf so etwas schließen lassen würde. | |
Re: Fehler bei Abbruch von Common Dialog | | | Autor: Hollie | Datum: 05.03.24 09:07 |
| Hallo, ich hab jetzt keinen konkreten Hinweis auf eine mögliche Fehlerursache, hinterlege aber mal einen Code-Ausschnitt aus einem meiner Programme. Das läuft problemlos in der Entwicklungsumgebung und der "Exe".
Vielleicht hilft Dir das. VG.
I=0: existierende Datei öffnen
I=1: neue Datei anlegen
StrMsg: enthält einen Speicherort (z.B. "N:\mein Speicherort")
On Error Resume Next
'Hier wird in meinem Programm geprüft, ob ein vom User festgelegter
'Speicherort (z.B. ein USB-Speicherstick) tatsächlich verfügbar ist:
Me.Dialog1.InitDir = IIf(OBJEKT_AUF_LW_VORHANDEN_EINS("Ordner", StrMsg) = _
True, StrMsg, App.Path)
Me.Dialog1.CancelError = True
Me.Dialog1.Filter = "*.txt (UTF8-Textformat)|*.txt"
Select Case I
'Existierende Datei aufrufen:
Case 0: Me.Dialog1.Flags = cdlOFNFileMustExist + cdlOFNExplorer + _
cdlOFNHideReadOnly
Me.Dialog1.DialogTitle = "Datei initialisieren..."
Me.Dialog1.ShowOpen
'Neue Datei anlegen:
Case 1: Me.Dialog1.Flags = cdlOFNCreatePrompt + cdlOFNOverwritePrompt + _
cdlOFNHideReadOnly
Me.Dialog1.DialogTitle = "Neue Dateien anlegen..."
Me.Dialog1.ShowSave
End Select
StrMsg = ""
If Me.Dialog1.FileName = "" Or Err.Number = 32755 Then
Me.Dialog1.InitDir = ""
MsgBox "Keine Datei initialisiert oder angelegt.", 16, ApplName
Me.cmdDatei(1).SetFocus
Exit Sub
End If | |
Re: Fehler bei Abbruch von Common Dialog | | | Autor: URi | Datum: 05.03.24 09:29 |
| Vielen Dank, aber lief auch auf Fehler. Ich habs aber dann endlich gefunden.
Wenn man im Menü "Extras" den Punkt "Optionen" wählt, gibt es im Reiter "Allgemein" die Auswahl wie Fehler behandelt werden sollen. Da gibt es
- Bei jedem Fehler
- In Klassenmodul
- Bei nicht verarbeiteten Fehlern
Bei mir war "Bei jedem Fehler" ausgewählt. Habs jetzt auf "Bei nicht verarbeiteten Fehlern" gesetzt und jetzt geht es. So ein kleines Dingelchen und ich such mir nen Wolf und bin am Verzweifeln
Trotzdem nochmal Danke für die Hilfe und Mühe. | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
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
|
|