Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#1

Wieder probleme mit Record und LV

  Alt 1. Nov 2002, 15:07
Hallöchen,

also, im folgenden Source, füge ich den Inhalt von 6 Edits in einen Record. Und zähle dabei eine Variable namen LokAnzahl hoch. Soweit, sogut.

Code:
[b]procedure[/b] TMainFormMC2004.ButtonKKLokOKClick(Sender: TObject);
[b]var[/b]
  i: integer;
[b]begin[/b]
  [b]if[/b] IDFLok = False [b]then[/b]
  [b]begin[/b]
    [b]if[/b] IDFMtr = False [b]then[/b]
    [b]begin[/b]
      [b]if[/b] Length(EditKKLokID.Text) > 0 [b]then[/b]
      [b]begin[/b]
        SetLength(MC2004.MenueInit.LokStamm, MC2004.MenueInit.LokAnzahl +1);
        i := MC2004.MenueInit.LokAnzahl;
        [b]with[/b] MC2004.MenueInit.LokStamm[i] [b]do[/b]
        [b]begin[/b]
          LokID := StrToInt(EditKKLokID.Text);
          LokName := EditKKLokName.Text;
          LokAdresse := StrToIntDef(EditKKLokAdresse.Text, 0);
          LokTraeg := StrToIntDef(EditKKLokTraeg.Text, 0);
          LokBeschl := StrToIntDef(EditKKLokBeschl.Text, 0);
          LokVerzoeg := StrToIntDef(EditKKLokVerzoeg.Text, 0);
        [b]end[/b];
        Inc(MC2004.MenueInit.LokAnzahl);
        LVLokFuellen;
      [b]end[/b]
      [b]else[/b]
      [b]begin[/b]
        ShowMessage('Bitte erst eine ID eingeben!');
      [b]end[/b];
    [b]end[/b]
    [b]else[/b]
    [b]begin[/b]
      ShowMessage('Die ID ist bereits einer Multitraktion zugewiesen!');
    [b]end[/b];
  [b]end[/b]
  [b]else[/b]
  [b]begin[/b]
    ShowMessage('Die ID ist bereits einer Lok zugewiesen!');
  [b]end[/b];
  ColumnToSort := 0;
  ListViewKKLok.AlphaSort;
  EditKKLokID.Clear;
  EditKKLokName.Clear;
  EditKKLokAdresse.Clear;
  EditKKLokTraeg.Clear;
  EditKKLokBeschl.Clear;
  EditKKLokVerzoeg.Clear;
  EditKKLokID.SetFocus;
  Check;
[b]end[/b];
Die Prozedur LVLokFuellen, sollte! mir den Inhalt des Records bz. des Arrays, in der LV anzeigen. Das Problem ist, es wird immer nur der letzte Eintrag in der LV angezeigt.
Die VAr LokAnzahl steigt aber mit jedem einfügen so wie es soll, lass ich mir mittels ShowMessage anzeigen.

Code:
[b]procedure[/b] TMainFormMC2004.LVLokFuellen;
[b]var[/b]
  i: integer;
[b]begin[/b]
  ListViewKKLok.Clear;
  ListViewKKLok.Items.Add;
  [b]for[/b] i := 0 [b]to[/b] MC2004.MenueInit.LokAnzahl -1 [b]do[/b]
  [b]begin[/b]
    [b]with[/b] ListViewKKLok.Items.Item[ListViewKKLok.Items.Count -1] [b]do[/b]
    [b]begin[/b]
      Caption := IntToStr(MC2004.MenueInit.LokStamm[i].LokID);
      SubItems.Add(MC2004.MenueInit.LokStamm[i].LokName);
      SubItems.Add(IntToStr(MC2004.MenueInit.LokStamm[i].LokAdresse));
      SubItems.Add(IntToStr(MC2004.MenueInit.LokStamm[i].LokTraeg));
      SubItems.Add(IntToStr(MC2004.MenueInit.LokStamm[i].LokBeschl));
      SubItems.Add(IntToStr(MC2004.MenueInit.LokStamm[i].LokVerzoeg));
    [b]end[/b];
  [b]end[/b];
[b]end[/b];
Da wo in der oberen Prozedur LVLokFuellen steht, stand früher der Code, der jetzt in der Prozedur LVLokFuellen steht. Eigentlich nichts wildes. Nur das vorher am Anfang LV.Clear; ist neu.

Ich blick da jetzt ncht durch warum es nicht geht, bzw. warum mir nur der letzte Eintrag in der LV angezeigt wird.
Vielen Dank.

Grüsse, Daniel
  Mit Zitat antworten Zitat