Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: Problem bei case // Problem bei Komponenten löschen

  Alt 3. Sep 2010, 13:02
Deine if-Anweisung führt NUR DAS ERSTE CASE aus:

Delphi-Quellcode:
  for ichecked := 0 to CheckListBox1.Items.Count-1 do
    if CheckListBox1.Checked[ichecked] then
// if bezieht sich auf die NÄCHSTE Anweisung (da Du keinen begin...end-Block benutzt)
      case iZaehler of
          0..9:
          begin
          Frames := TFrame4.Create(Self);
          L.Add(Frames);
          Frames.ClientHeight := 200;
          Frames.Name:='';
          iZaehler := iZaehler + 1;
          iGecheckteframes := iGecheckteframes + 1;
          Frames.Parent := Formular;
          end;
        end;
// ab hier wird IMMER ausgeführt
          case iZaehler of
          10:
          begin
            for I := l.Count -1 downto 0 do
            begin
Also nochmal:
Rücke alles so ein, dass alle nachfolgenden (gleichrangigen) Anweisungen GENAU untereinander stehen.
Das betrifft auch begin und end -> sollen genau untereinander stehen.
alles zwischen begin und end wird um 2 Zeichen eingerückt.

Dann hättest Du Dein o.g. Problem selbst gesehen!

Das erste case kannst Du auch ersethen durch:
if iZaehler < 10 then begin ... end
da Du ja nicht unterschiedliche Fälle behandeln willst.

Du machst Dir Deine Probleme selbst, da Du viel zu luschig arbeitest. 3 Min in eine ordentliche Quelltextstruktur inversieren kann 3 Stunden Fehlersuche sparen!
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat