Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Memo2.Lines speichern

  Alt 27. Mai 2015, 21:45
hallo neutral-general,

jetzt wird aber nur 'Memo2.Lines[0].text' abgespeichert.
1) Ja, weil du Memo2.Clear am Ende der Schleife ausführst. Also du löschst den gesammten Inhalt von Memo2, nachdem die Schleife EINMAL durchgelaufen ist.
2) Bitte benutzt doch ordentliche Code-Einrückung!
Delphi-Quellcode:
procedure TForm1.SQLSAVETimer(Sender: TObject);
var
  i: Integer;
begin
  if CheckBox2.Checked and (Memo2.Text <> '') then
    begin
      Einsaetze.Append;

      for i:= 0 to Min(Memo2.Lines.Count, 6) - 1 do
        begin
          Einsaetze.FieldByName(ListBox1.Items[i]).Text := Memo2.Lines[i];

          Einsaetze.Post;
          Einsaetze.Refresh;

          Memo2.Clear; // <-- Der Inhalt von Memo2 wird bei diesem Aufruf GELEERT
        end;
    end;
end;
So sollte es wohl gedacht sein:
Delphi-Quellcode:
procedure TForm1.SQLSAVETimer(Sender: TObject);
var
  i: Integer;
begin
  if CheckBox2.Checked and (Memo2.Text <> '') then
    begin
      Einsaetze.Append;

      for i:= 0 to Min(Memo2.Lines.Count, 6) - 1 do
        begin
          Einsaetze.FieldByName(ListBox1.Items[i]).Text := Memo2.Lines[i];
        end;
      
      Einsaetze.Post;
      Einsaetze.Refresh;

      Memo2.Clear;
    end;
end;
Wie schon gesagt: EINRÜCKUNG! Dann wird auch der Unsinn deutlicher, den man verzapft.

Geändert von nuclearping (27. Mai 2015 um 21:51 Uhr)
  Mit Zitat antworten Zitat