AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wieder probleme mit Record und LV

Ein Thema von Daniel B · begonnen am 1. Nov 2002 · letzter Beitrag vom 2. Nov 2002
Antwort Antwort
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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 1. Nov 2002, 15:38
Moin Daniel B,

Du musst für jede Zeile die Du im Listview hinzufügen willst ListView.Item.Add ausführen.

Code:
[b]procedure[/b] TMainFormMC2004.LVLokFuellen;
[color=#000080]//ListView KK Loks mit Daten aus dem Loks-Record füllen [/color]
[b]var[/b]
  i: integer;
[b]begin[/b]
  ListViewKKLok.Clear;
  [b]for[/b] i := 0 [b]to[/b] MC2004.MenueInit.LokAnzahl -1 [b]do[/b]
  [b]begin[/b]
    [color=red]ListViewKKLok.Items.Add;[/color]
    [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];
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 1. Nov 2002, 15:43
Du weisst ja, Wald, Bäume, ...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Wieder probleme mit Record und LV

  Alt 1. Nov 2002, 15:45
Zitat von Daniel B:
(...)
Ihr solltet wirklich mal den Code-Formatter prüfen.
Da fehlt doch das "i" in der Zeile
Code:
with MC2004.MenueInit.LokStamm do
und wird als kursiv miss-deutet.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 2. Nov 2002, 08:26
Es müsste sogar Deiner sein Mathias. DelphpBB, mit dem weissen Logo, wo nur phpBB drin steht. Der von Christian ist es jedenfalls nicht.

  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6
  Alt 2. Nov 2002, 09:27
Da muss ich mal ernsthaft widersprechen. Nachdem Luckie solch "fehlerhaften" Code postete und in AUQ.de einen Link zu dem Tool angab, das er nutzt (meins!), da habe ich das auch gedacht. Aber:
Code:
[b]var[/b]
  i : integer;
[b]begin[/b]
  [b]for[/b] i := 1 [b]to[/b] 1000 [b]do[/b]
    [b]if[/b](Items[i] = 'Hallo, Welt') [b]then[/b]
      inc(z);
[b]end[/b];
Mal unabhängig von der Logik dieser Funktion ...

Einzig: ich habe gestern eine neue Version hochgeladen, in der ich den Begriff "name" vorerst deaktiviert habe. Wie sich rausstellte, wurde dieser Begriff z.B. hier fett formatiert:
Code:
ds.[b]Name[/b] // <-- "ds" = "TSearchRec"
Das machen auch Programme mit SynEdit so (Proton, als Beispiel). In meiner Delphi-IDE wird dieser Begriff allerdings niemals in irgendeiner Form hervorgehoben. Auch nicht bei der "exports"-Sektion von DLLs. Insofern ist das das einzige Fixing am Programm.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#7

[OT]

  Alt 2. Nov 2002, 09:40
Hmm, kannst Du mir mal einen Link von dem Schicken, den Du benutzt? Danke.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8
  Alt 2. Nov 2002, 10:34
Ah! 8)

Ich kenne den Grund, glaube ich. Wenn du den letzten Kommentar
Code:
//Buttons Enablen/Disablen
mal weglässt, wird der Code korrekt formatiert. Ich erinnere mich dunkel, dass Daniel (der Admin, nicht du!) mal sagte, die Foren-Software akzeptiert das I und B (usw.) in eckigen Klammern, solange es kein schließendes Element dazukommt. In diesem Fall ist der letzte Kommentar aber dieses schließende Element, und die Foren-Software interpretiert es als kursive Schrift. Das erkennt man ja auch prima an dem
Code:
[i]
vor dem Kommentar in deinem Beispielcode, Daniel.

Es ist also IMHO eine Unverträglichkeit. Eine Lösung habe ich ehrlich gesagt nicht, aber als Work-Around schlage ich vor, in solchen Fällen auf Kommentare u.ä. zu verzichten, wenn man phpBB-typische Syntaxelemente als und im Code benutzt. Will sagen: im Fall des eingeklammerten I sollte man danach also keine Kommentare mehr benutzen.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 2. Nov 2002, 10:39
Auch Ah

Hab jetzt mal die Kommentare raus, jetzt stimmt es. Muss wohl in Zukunft die Kommentare immer rausschmeissen.

C'Ya
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 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