![]() |
Probleme mit Combobox
Hallo DPler,
ich habe das seltsame Phänomen, dass ich eine exception bekomme, wenn ich einen bestimmten Eintrag in einer Combobox auswähle. Das komische daran ist, dass ich kein onclick oder onchange Ereignis definiert habe, ich also garnicht weiß, wie zu dem Zeitpunkt eine Exception entstehen kann. Die exception wird aber nur bei einem bestimmten item der Combobox ausgelöst, alle anderen klappen hervorragend. Was könnte mit dem item passiert sein, dass es beim angewählt werden eine exception raised? Und kann ich per If-Abfrage verhindern, dass so ein Item erzeugt wird oder angeklickt wird? Danke für alle Antworten im Vorraus. Gruß Jan |
Re: Probleme mit Combobox
Wie meinst du das genau?
Kann es sein, dass du so etwas in einem Timer oder so aufrufst:
Delphi-Quellcode:
if ComboBox1.Text='irgendwas' then ...
|
Re: Probleme mit Combobox
@Matze - glaub, er meint das nicht Programmseitig.
Ein bissl Code könnte nicht schaden, damit man etwas zum prüfen hat. |
Re: Probleme mit Combobox
es gibt ja keinen code, das ist es ja. Die Comboboxen werden normal befüllt und es gibt auch keinen error oder sowas, aber wenn ich dann einen bestimmten Eintrag der Combobox auswähle bekomme ich eine exception, ohne dass ich in meinem Code auf dieses Event reagiert hätte.
Aber wenn ich dazu unbedingt code posten muss, dann ist hier die befüllungsroutine:
Delphi-Quellcode:
Gruß
if form1.opendialog1.execute then
begin edit1.text:=form1.OpenDialog1.FileName; try impstr:=tstringlist.Create; impstr.LoadFromFile(edit1.text); except showmessage('Die zu ladende Datei ist korrupt.'); end; chooselist:=tstringlist.create; chooselist.commatext:=impstr[0]; impstr.Free; for i:=0 to chooselist.Count-1 do begin combobox1.items.add(chooselist.Strings[i]); combobox2.items.add(chooselist.Strings[i]); combobox3.items.add(chooselist.Strings[i]); combobox4.items.add(chooselist.Strings[i]); combobox5.items.add(chooselist.Strings[i]); combobox6.items.add(chooselist.Strings[i]); combobox7.items.add(chooselist.Strings[i]); combobox8.items.add(chooselist.Strings[i]); combobox9.items.add(chooselist.Strings[i]); combobox10.items.add(chooselist.Strings[i]); combobox11.items.add(chooselist.Strings[i]); combobox12.items.add(chooselist.Strings[i]); end; chooselist.free; end; Jan |
Re: Probleme mit Combobox
Hallo Matze,
nein, ich habe keinen Timer in dem Programm. Gruß Jan |
Re: Probleme mit Combobox
Ich kann auch kein problem finden, bei mir werden alle ComboBoxen aber mit dem 1. String der Stringlist gefüllt, den Sinn verstehe ich nicht. Jede ComboBox hat dann nur 1 Item zur Auswahl. :gruebel:
|
Re: Probleme mit Combobox
Erstelle eine 2-dimensionale csv-datei und es wird die ganze 1.Zeile zur Auswahl gestellt.
Vielleicht liegt der Error daran, dass ich absichtlich eine falsch angelegte CSV-Datei mit unterschiedlichen Zeilenlängen nehme? Gruß Jan |
Re: Probleme mit Combobox
@Jan: So genau weiß ich auch nicht was ich dazu sagen soll, aber hast du es schon mal mit ner Try-Anweisung gemacht, dann ist zumindest das FEhler-Handling besser...
|
Re: Probleme mit Combobox
nur kurz abseits vom thema:
Delphi-Quellcode:
das müsste gleich funzen und sieht eleganter aus
for i:=0 to chooselist.Count-1 do
for j := 1 to 12 do (FindComponent('Combobox'+IntToStr(j)) as TComboBox).Items.Add(ChooseList.Strings[i]); Wann genau wird er Fehler ausgelöst? wenn du übers Item drüberfährst oder wenn du es anklickst? |
Re: Probleme mit Combobox
Sorry Jan, dann kann ich dir wohl nicht helfen, denn mit csv-Dateien kenne ich mich nicht aus, ich weiß nicht mal was das ist, wie man es erstellt,... :oops:
:duck: |
Re: Probleme mit Combobox
Hallo Alexander,
liebend gerne würde ich das machen, wenn du mir auch noch sagst wo ich den try/except-Block hinpacken soll... Es ist ja schliesslich kein Stück meines Codes der da die Exception hervoruft, sondern irgendwas anderes. Gruß Jan |
Re: Probleme mit Combobox
Hallo Matze,
eine CSV-Datei ist einfach eine beliebige Textdatei die folgendermassen aufgebaut ist:
Code:
das wars schon.
wert00,wert01,wert02,wert03,wert04
wert10,wert11,wert12,wert13,wert14 wert20,wert21,wert22,wert23,wert24 wert30,wert31,wert32,wert33,wert34 wert40,wert41,wert42,wert43,wert44 Du könntest das, was ich da oben geschrieben habe schon in eine textdatei packen und feddich ist. Gruß Jan |
Re: Probleme mit Combobox
Arg, stimmt da waren meine Finger schneller beim Tippen...
Stimmt, aber bist du dir wirklich sicher, das du da nichts machst? @Matze CSV= Comma Separated Value, kann man zb auch in Excel öffnen... |
Re: Probleme mit Combobox
Hallo Illuminator,
Wenn ich anklicke. Gruß Jan |
Re: Probleme mit Combobox
Also ich kann acuh kein problem feststellen und das OnChange, OnClick oder OnDropDown hast du nicht verwendet?
Dann weiß ich auch nicht weiter. :gruebel: |
Re: Probleme mit Combobox
Hallo Matze, versuch bitte mal folgenden Array zu importieren, um den Fehler nachvollziehen zu können:
Code:
und dann versuch mal in der combobox alle items nacheinander auszuwählen.
wert00,wert01,wert02,wert03,wert04
wert10,wert11,wert12,wert13,wert14 wert20,wert23,wert24 wert30,wert31,wert32,wert33,wert34 wert40,wert41,wert42,wert43,wert44 Gruß Jan |
Re: Probleme mit Combobox
Hast du schon mal geprüft, ob der Text der diesem Item zugeordnet ist nicht einen Fehler (z.B. Sonder-/Steuerzeichen) enthält?
|
Re: Probleme mit Combobox
Ist es eigentlich normal, dass in den ComboBoxen nur die Werte 00 - 04 angezeigt werden?
|
Re: Probleme mit Combobox
keine sonderzeichen.
|
Re: Probleme mit Combobox
Ja Matze, das ist normal, das soll so, weil ich die Comboboxen nur brauche um Spalten zuzuweisen.
|
Re: Probleme mit Combobox
Moin Jan,
also ich bekomme da keine AV. So könntest Du es übrigens mit den Resourcenschutzblöcken machen:
Delphi-Quellcode:
var
i : integer; j : integer; chooselist : TStringList; impstr : TStringList; begin if not form1.opendialog1.execute then exit; edit1.text:=form1.OpenDialog1.FileName; chooselist := TStringList.Create; try impstr := TStringList.Create; try try impstr.LoadFromFile(edit1.text); chooselist.commatext:=impstr[0]; except showmessage('Die zu ladende Datei ist korrupt.'); end; finally FreeAndNil(impstr); end; for i:=0 to chooselist.Count-1 do begin for j := 1 to 12 do begin (FindComponent('Combobox'+IntToStr(j)) as TComboBox).Items.Add(ChooseList[i]); end; end; finally FreeAndNil(chooselist); end; end; |
Re: Probleme mit Combobox
Also dann kann ich dir leider nicht helfen, ich finde keinen Fehler.
Wenn du kein OnChange,... (was ich schon aufgezählt habe) hast, dann weiß ich auch nicht weiter. :gruebel: Ich geh dann mal. Gute Nacht. |
Re: Probleme mit Combobox
Hat mal einer das hier Probiert:?
Zitat:
Gruß Jan |
Re: Probleme mit Combobox
Moin Jan,
auch diese Daten bringen keinen Fehler. |
Re: Probleme mit Combobox
Liste der Anhänge anzeigen (Anzahl: 2)
Ei Grutzifix, du hast recht, aber mit dieser, zugegeben etwas grösseren Liste passiert es:
[edit] mit der kleinen test2.rar auch, die ist wesentlich übersichtlicher. |
Re: Probleme mit Combobox
Moin Jan,
kein Fehler, weder mit der grossen noch mit der kleinen. Mal abgesehen davon, dass in jeder ComboBox das gleiche steht, nämlich der erste Satz, fällt mir nichts auf. |
Re: Probleme mit Combobox
also es soll auf jeden fall in jeder combobox das gleiche stehen, und weiterhin musst du nur einen leeren eintrag anklicken in einer der comboboxen. Das muss einfach eine exception geben.
BB Jan |
Re: Probleme mit Combobox
Moin Jan,
tut mir leid Dich enttäuschen zu müssen. Nix. Sind das ganz normale TComboBox? Wie sind die Stringlisten deklariert? Ist bei den TComboBox irgendetwas eingestellt? |
Re: Probleme mit Combobox
Liste der Anhänge anzeigen (Anzahl: 1)
So nehme er denn bitte, wenn er denn Zeit habe, meine Anwendung und gehe auf: Datei->csv-datei importieren. :wink:
Die Dateien zum importeien sind ja schon angehängt. Gruß Jan |
Re: Probleme mit Combobox
Moin Jan,
nachdem ich alle Form.DesignSize ignoriert, alle Unit Variant Angaben gelöscht und die Drucken Variable überall auf Vdrucken umbenannt habe, konnte ich kompilieren. Den genannten Fehler habe ich nicht bekommen, aber ein paar andere. Bei Import aus der Toolbar heraus wurde jede Datei als Korrupt angesehen. Da das Import Fenster nicht jedesmal neu initialisiert wird (die Comboboxen bleiben mit der zuletzt angewählten gefüllt), gibt's irgendwann mal einen Indexfehler. Das würde ich als erstes mal bearbeiten. Die Feststellung: Kevin Spacey ist kein gültiger Integerwert ist mir auch untergekommen. |
Re: Probleme mit Combobox
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm andere Delphiversion.. hätte direkt die exe-datei schicken sollen.
Diese ganzen Errors habe ich bei mir nämlich nicht. Ach und vielen vielen Dank für deine Zeit! Gruß Jan |
Re: Probleme mit Combobox
Moin Jan,
jetzt bekomm' ich zwar die AV (in der NTDLL.DLL) aber der Import über den Toolbarbutton geht immer noch nicht. Gleicher Fehler. Wenn ich es aus dem Menü heraus mache, und dann den Import Button drücke wird zwar importiert, aber ausser der ID nichts angezeigt. Wähle ich (test.csv) für jedes Feld einen Wert aus, der dazu passt, erhalte ich die AV bei leeren Einträgen. Ich denke mal, wenn zwei ',' aufeinander folgen wird an der Stelle ein nil in die Items eingetragen. Könnte ein Bug in der VCL sein. Nachdem ich also nun, wo's geht die Werte ausgewählt habe, und Import anklicke erhalte ich als erstes mal die Meldung, dass die Datei korrupt ist, und dann "Listenindex überschreitet das Maximum (11) [EDIT] Mach ich das mit den Feldern nicht, sondern klicke gleich Import an wird importiert, aber ausser der ID nichts angezeigt. [/EDIT] |
Re: Probleme mit Combobox
korrekt, genau so ist das bei mir auch, das mit der toolbar ist normal, weil importieren und datenbank öffnen 2 unterschiedliche sachen sind.
Es soll ja eigentlich auch garnicht funktionieren, dass ich die datei importieren kann, ich will lediglich verhindern, dass ich eine AV bekomme, die ich nicht abfangen kann, weil ich nicht weiss wovon sie kommt. Dass da irgendwas wie nil eingetragen wird dachte ich mir schon fast, aber wie könnte ich das denn verhindern? Gruß Jan |
Re: Probleme mit Combobox
Moin Jan,
gute Frage. Mangels D7 kann ich ja nichts auf Erfolg/Misserfolg hin ausprobieren. Probier mal ob' sich was bei Verwendung meiner Routine ändert. |
Re: Probleme mit Combobox
Wenn ich Dein Projekt und Delphi 4 Standard teste ist es so wie bei Christian.
Unter Delphi 7 Enterprise oder mit deiner vorkompilierten Version tritt dein allerdings Fehler nicht auf. |
Re: Probleme mit Combobox
das klingt irgendwie nicht nach einem programmierfehler, sondern mehr nach einem bug.
Irgendwelche Vorschläge? Gruß Jan |
Re: Probleme mit Combobox
Moin Jan,
fummel den String selber auseinander und Verlass Dich nicht auf CommaText. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz