Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi If Abrage verhält sich komisch? (https://www.delphipraxis.net/158997-if-abrage-verhaelt-sich-komisch.html)

OrNEC 10. Mär 2011 12:25

If Abrage verhält sich komisch?
 
Hallo Jungs, ich hab ein Problem. Sieht euch mal diesen Code an:

Delphi-Quellcode:
const
  urlplan: array[0..3] of String = (
  '',
  'http://domain.de',
  'http://domain2.de',
  '');

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if urlplan[ComboBox1.ItemIndex]='' then
ShowMessage('leer') else ShowMessage('voll');
end;
Also egal was die arrays beinhalten bekomme ich die Message "voll", obwohl etliche arrays leer sind. Ich verstehe nicht wieso funktioniert diese Abfrage nicht?

Danke!

FrankJ28 10. Mär 2011 12:38

AW: If Abrage verhält sich komisch?
 
Hallo,
an dem CodeSchnipsel ist leider nicht zu erkennen, welchen Wert ItemIndex deiner ComboBox hat. Ist das etwas ausgewählt? Wenn nein, ist ItemIndex -1. Scheu doch einmal durch den Debugger auf wen Wert deines ItemIndex (oder mach 'ne Ausgabe via ShowMessage).
Ciao
Frank

OrNEC 10. Mär 2011 12:47

AW: If Abrage verhält sich komisch?
 
Also an dem "ComboBox1.ItemIndex" liegt es nicht, die Werte sind richtig, also von 0 bis 3, je nach dem was ich auswähle.

Wenn ich aber ein array mit einem Wert fülle ich diesen dann abfragen, klappt das auch, also wie folgt:

Delphi-Quellcode:
const
  urlplan: array[0..3] of String = (
  '',
  'http://domain.de',
  'http://domain2.de',
  'hallo');

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if urlplan[ComboBox1.ItemIndex]='hallo' then
ShowMessage('leer') else ShowMessage('voll');
end;

alfold 10. Mär 2011 12:57

AW: If Abrage verhält sich komisch?
 
entweder stehen in deiner Combobox nicht die gleichen strings drin, denn es funktioniert ohne Probleme!
Wie und mit was füllst du denn die Combobox?

Gruss alfold

OrNEC 10. Mär 2011 13:00

AW: If Abrage verhält sich komisch?
 
Jah... also es hört sich lächerlich an, aber jetzt geht's auf ein Mal. :roteyes:
Keine Ahnunug woran es lag, vllt hat meine Delphi IDE nen Bug oder so....

Aber danke euch!

himitsu 10. Mär 2011 14:01

AW: If Abrage verhält sich komisch?
 
Zitat:

Zitat von OrNEC (Beitrag 1087306)
Keine Ahnunug woran es lag, vllt hat meine Delphi IDE nen Bug oder so....

Wenn kein Item in der ComboBox ausgewählt ist, dann steht ItemIndex auf -1 und greift demnach auf etwas zu, welches vor deinem Array liegt.

Schalte zukünftig einfach mal die Bereichs- und Überlaufprüfung in den Projektoptionen an.

WM_CLOSE 10. Mär 2011 14:33

AW: If Abrage verhält sich komisch?
 
er meinte ein paar posts weiter oben, dass die Indizes stimmen

OrNEC 10. Mär 2011 14:47

AW: If Abrage verhält sich komisch?
 
Ja die Indizes haben immer gestimmt.

p80286 10. Mär 2011 15:42

AW: If Abrage verhält sich komisch?
 
Zitat:

Zitat von OrNEC (Beitrag 1087289)
Delphi-Quellcode:
const
  urlplan: array[0..3] of String = (
  '',
  'http://domain.de',
  'http://domain2.de',
  '');

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if urlplan[ComboBox1.ItemIndex]='' then
ShowMessage('leer') else ShowMessage('voll');
end;
Also egal was die arrays beinhalten bekomme ich die Message "voll", obwohl etliche arrays leer sind. Ich verstehe nicht wieso funktioniert diese Abfrage nicht?

Also ich sehe hier nur ein Array!
Und an Wunder glaube ich erst recht nicht. Was sagt denn die Bereichsüberprüfung?
(und mein Freund der Debugger?)

Gruß
K-H

OrNEC 10. Mär 2011 15:48

AW: If Abrage verhält sich komisch?
 
Jah.. ich hab mehrere Arrays, wollte sie nicht alle hier her kopieren. Hab hier natürlich die Strings gemeint, pardo.
Na ja... egal, es läuft. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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