Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Probleme mit Combobox (https://www.delphipraxis.net/10409-probleme-mit-combobox.html)

Jan 17. Okt 2003 20:33


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

Matze 17. Okt 2003 20:37

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 ...

himitsu 17. Okt 2003 20:41

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.

Jan 17. Okt 2003 20:46

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:
  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;
Gruß
Jan

Jan 17. Okt 2003 20:47

Re: Probleme mit Combobox
 
Hallo Matze,
nein, ich habe keinen Timer in dem Programm.
Gruß
Jan

Matze 17. Okt 2003 20:50

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:

Jan 17. Okt 2003 20:52

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

Alexander 17. Okt 2003 20:55

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...

Illuminator-23-5 17. Okt 2003 20:56

Re: Probleme mit Combobox
 
nur kurz abseits vom thema:
Delphi-Quellcode:
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]);
das müsste gleich funzen und sieht eleganter aus

Wann genau wird er Fehler ausgelöst? wenn du übers Item drüberfährst oder wenn du es anklickst?

Matze 17. Okt 2003 20:57

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:

Jan 17. Okt 2003 20:57

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

Jan 17. Okt 2003 21:00

Re: Probleme mit Combobox
 
Hallo Matze,
eine CSV-Datei ist einfach eine beliebige Textdatei die folgendermassen aufgebaut ist:

Code:
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
das wars schon.
Du könntest das, was ich da oben geschrieben habe schon in eine textdatei packen und feddich ist.
Gruß
Jan

Alexander 17. Okt 2003 21:00

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...

Jan 17. Okt 2003 21:00

Re: Probleme mit Combobox
 
Hallo Illuminator,
Wenn ich anklicke.
Gruß
Jan

Matze 17. Okt 2003 21:04

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:

Jan 17. Okt 2003 21:06

Re: Probleme mit Combobox
 
Hallo Matze, versuch bitte mal folgenden Array zu importieren, um den Fehler nachvollziehen zu können:

Code:
wert00,wert01,wert02,wert03,wert04 
wert10,wert11,wert12,wert13,wert14 
wert20,wert23,wert24 
wert30,wert31,wert32,wert33,wert34 
wert40,wert41,wert42,wert43,wert44
und dann versuch mal in der combobox alle items nacheinander auszuwählen.
Gruß
Jan

himitsu 17. Okt 2003 21:09

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?

Matze 17. Okt 2003 21:10

Re: Probleme mit Combobox
 
Ist es eigentlich normal, dass in den ComboBoxen nur die Werte 00 - 04 angezeigt werden?

Jan 17. Okt 2003 21:11

Re: Probleme mit Combobox
 
keine sonderzeichen.

Jan 17. Okt 2003 21:12

Re: Probleme mit Combobox
 
Ja Matze, das ist normal, das soll so, weil ich die Comboboxen nur brauche um Spalten zuzuweisen.

Christian Seehase 17. Okt 2003 21:13

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;

Matze 17. Okt 2003 21:14

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.

Jan 17. Okt 2003 21:19

Re: Probleme mit Combobox
 
Hat mal einer das hier Probiert:?
Zitat:

Hallo Matze, versuch bitte mal folgenden Array zu importieren, um den Fehler nachvollziehen zu können:

Code:
 
wert00,wert01,wert02,wert03,wert04 
wert10,wert11,wert12,wert13,wert14 
wert20,wert23,wert24 
wert30,wert31,wert32,wert33,wert34 
wert40,wert41,wert42,wert43,wert44

Weil nur wenn ich eine Kaputte CSV_Datei nutze passiert das, mit einer intakten CSV_geht alles Prima, aber ich wollte es jetzt hinbekommen, dass ich eine eigene Message ausspucken kann, wenn eine falsche csv geladen wird.
Gruß
Jan

Christian Seehase 17. Okt 2003 21:21

Re: Probleme mit Combobox
 
Moin Jan,

auch diese Daten bringen keinen Fehler.

Jan 17. Okt 2003 21:30

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.

Christian Seehase 17. Okt 2003 21:56

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.

Jan 17. Okt 2003 21:58

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

Christian Seehase 17. Okt 2003 22:08

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?

Jan 17. Okt 2003 22:13

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

Christian Seehase 17. Okt 2003 22:30

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.

Jan 17. Okt 2003 22:34

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

Christian Seehase 17. Okt 2003 22:48

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]

Jan 17. Okt 2003 22:51

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

Christian Seehase 17. Okt 2003 22:56

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.

himitsu 17. Okt 2003 22:56

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.

Jan 17. Okt 2003 22:59

Re: Probleme mit Combobox
 
das klingt irgendwie nicht nach einem programmierfehler, sondern mehr nach einem bug.
Irgendwelche Vorschläge?
Gruß
Jan

Christian Seehase 17. Okt 2003 23:02

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 04:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz