Einzelnen Beitrag anzeigen

StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#16

Re: Combobox ItemIndex=-1; Text ändern im Event

  Alt 23. Jul 2007, 08:06
Hallo zusammen!

erst mal vielen Dank für die Antworten!

@Sharky:
Ich glaube, ich habe die Funktion der Combobox nicht so ganz richtig rüber gebracht:
Für die Combobox wird beim Programmstart für jedes bekannte Format (ist erweiterbar, ohne das Programm zu ändern) ein Eintrag erzeugt ("nicht unterstützt" ist da natürlich nicht dabei). Damit können dann Dateien in jedem bekannten Foramt erzeugt werden. Wird eine bereits vorhandene Datei geladen, so wird der entsprechende Eintrag angewählt. Wird eine Datei geladen für die es keine passende Formatbeschreibung gibt (es befindet sich also kein passender Eintrag in der Combobox), so kann auch kein Eintag in der Combobox gewählt werden und es wird der Index -1 gesetzt und der Text in "kein gültiges Format" geändert.
Der Anwender kann jederzeit (auch wenn das Format unbekannt ist) durch Auswahl eines anderen Eintrags in der Combobox eine Formatkonvertierung auslösen und so die Dateien beliebig (sehr einfach) in andere Formate konvertieren. Bei der Auswahl soll dem Anwender natürlich ("nicht unterstützt" bzw. "ungültiges Format") nicht angeboten werden.
Das alles funktioniert damit einwandfrei und bis jetzt kam auch jeder Anwender damit sehr gut zurecht. Inzwischen gibt es aber sehr aufwendige Konvertierungen, die einige Sekunden dauern. Daher war ein Anwenderwunsch, dass man nach der Formatauswahl noch eine Möglichkeit haben soll, um zu entscheiden, ob man die Konvertierung wirklich durchführen möchte. Zunächst dachte ich: Kein Problem (ist es ja eigentlich auch nicht), bis ich auf das Problem mit dem Text gestoßen bin. Natürlich könnte ich jetzt alles anders machen. Ich wollte aber eigentlich nicht so viel an der Bedienung ändern.

Vielleicht erklärt dass jetzt, warum ich a) nicht disablen kann (somit könnte die Datei nicht in ein gültiges Fromat überführt werden (was eignetlich möglich ist)) und b) die Einträge nicht beim Laden der Datei sondern beim Programmstart generiert werden und für alle Dateien sinnvoll sind.

@Lannes:
Mein Problem ist nicht, dass das Event durch die Änderung erneut ausgelöst wird, sondern, dass nach meiner Änderung der Text noch mal (aber nicht durch ein neues Event) überschrieben wird (so wie Reinhard das beschreibt).
Trotzdem vielen Dank!

@Reinhard:
Genau das ist mein Problem. Und die Idee mit der Windowsmassege könnte die Lösung sein. Versuche ich gleich mal.
Ich hatte in meiner "Not" auch schon so blöde ideen mit Timer usw. was aber nicht zuverlässig funktionieren würde. Ich könnte die Box auch überwachen und immer, wenn der Index auf -1 steht den Text eintragen. Ist aber alles nicht sauber. Dein Ansatz gefällt mir gut. Werde ich testen....

Viele Grüße,

StTüff
  Mit Zitat antworten Zitat