Registriert seit: 3. Dez 2002
132 Beiträge
Delphi 2006 Enterprise
|
Combobox ItemIndex=-1; Text ändern im Event
20. Jul 2007, 09:05
Hallo zusammen!
Ich benutze eine Combobox, um darin das Dateiformat einer dargestellten Datei zu verwalten. Bekannte Formate werden als Items geladen. Wird eine Datei mit unbekanntem Format geladen, kann diese (mit Einschränkungen) trotzdem Angezeigt werden. Dann bleibt die Combobox auf dem Index -1 und der Text wird in 'nicht gültig' geändert.
Soweit so gut, funktioniert prima.
Jetzt wollte ich aber die eigentliche Funktion für die die Combobox vorgesehen ist programmieren: Eine Formatkonvertierung. Das habe ich auch gemacht und auch das funktioniert. Ich habe allerdings ein Problem, wenn der Anwender den Vorgang abbricht und die alten Werte der Combobox wiederhergestellt werden sollen.
Folgende Situation:
1. Es wird eine Datei mit unbekanntem Format geladen => Combobox: ItemIndex:=-1 und Text:= 'nicht gültig'
2. Anwender wählt einen Eintrag in der Combobox für die Konvertierung aus.
3. Im Event (OnChange, oder OnSelect) wird eine Abfrage ausgelöst, ob die Konvertierung wirklich gemacht werden soll.
4a. "Ja": Alles prima (Konvertierung wird durchgeführt und Combo steht auf dem richtigen Eintrag.
4b. "Nein": Die alten Werte in der Combobox müssen wiederhergestellt werden (also ItemIndex:=-1 und Text:='nicht gültig').
4b funktioniert leider nicht. Zwar wird der Index auf -1 gesetzt und auch der Text lässt sich ändern, wird aber danach (vermutlich durch die Eventbehandlung des Objekts) noch mals mit '' überschrieben.
Ich habe schon versucht das mit "abort" zu verhindern. Leider kein Erfolg. Auch alle möglichen Tips aus dem Forum zu ähnlichen Themen haben mich leider nicht weiter gebracht.
Hat jemand eine Idee, oder kann mir sagen, ob es ein Event gibt, dass ausgelöst wird, wenn die Bearbeitung abgeschlossen ist (so dass nichts mehr überschrieben wird, oder wie ich die "Weiterbearbeitung" verhindern kann.
Vielen Dank und viele Grüße,
StTüff
|