Einzelnen Beitrag anzeigen

aphexx

Registriert seit: 23. Apr 2010
19 Beiträge
 
#4

AW: Memo lässt Zeilen verschwinden

  Alt 25. Mär 2011, 18:39
Delphi-Quellcode:
  ....
  InitFillEntries(Liste); //Array Füllen

  for i := 0 to Length(Entries) - 1 do
  begin
    L.BeginUpdate;
    L.Add(Entries[i].User);
    L.Add(Entries[i].DatumZeit);
    L.Add('');
    L.Add(Trim(Entries[i].Msg.Text));

    for c := 0 to 19 do s := s + Form1.EDiv.Text;
    L.Add(s);
    s := '';
  end;
  L.EndUpdate;

  Form1.MOutput.Lines.Clear;

  Form1.MOutput.Lines.Assign(L);
  ....
Das ist ja der Teil um den es geht, und abgesen von s='' (das sollte vor for c:=0... stehen) sehe ich da nichts erwähnenswertes.
Die Nachricht ist nicht zu sehen. Das Array läuft sauber, die Daten exisiteren, nur die Darstellung nicht
Da bist Du Dir sicher?

Gruß
K-H
s bringt uns nur eine improvisierte Trennlinie von 20 Zeichen. In PassEntries hole ich die Daten aus dem Array und setze sie ins Memo, in InitFillEntries fülle ich das Array wiederum. Ich werde mal die EXE uppen, dann sieht man den Murks mal in action

@Luckie: Sorry, da war Zensursula etwas übereifrig. Beim Speichern kann eigentlich auch nix schief laufen, da die txt-Dateien alle vollständig sind.

Hier die OnClick vom Senden-Button:
Delphi-Quellcode:
procedure TForm1.BSendClick(Sender: TObject);
var
  L: TStringList;
  s1, s2, p: String;
begin
  if EUser.Text = 'then
  begin
    ShowMessage('Chatting without a name sucks.');
    EUser.SetFocus;
    Exit;
  end;
  if MMessage.Lines.Count = 0 then
  begin
    ShowMessage('Chatting without writing something sucks.');
    MMessage.SetFocus;
    Exit;
  end;
  L := TStringList.Create;
  L.BeginUpdate;
  L.Clear;
  L.Add(EUser.Text);
  L.Add(FormatDateTime('dd.mm.yyyy hh:nn:ss.zzz', now));
  L.AddStrings(MMessage.Lines);
  if DirectoryExists('dbchat') then
  begin
    s1 := RandomString;
    p := ExtractFilePath(ParamStr( 0 ))+'\dbchat\' + s1 + '.txt';
    while FileExists(p) = True do
    begin
      ShowMessage('FileExists');
      s1 := RandomString;
      p := ExtractFilePath(ParamStr( 0 ))+'\dbchat\' + s1 + '.txt';
    end;
    L.SaveToFile(p);
  end;
  L.EndUpdate;
  L.Free;
  PassEntries;
  MMessage.Lines.Clear;
  MMessage.SetFocus;
end;

Die EXE habe ich beigelegt, bitte versucht mal 3 oder 4 Einträge anzulegen und danach die Sortierung nach Datum umzukehren; ihr werdet sehen, dass nur bei einem Eintrag was faul ist. DANKE!
Angehängte Dateien
Dateityp: 7z Dropbox Chat V01.7z (305,3 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat