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!