Autor Beitrag
Dolognio
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 01.11.06 12:46 
Hallo Forum,
ich hab jetzt schon ewig lang nachgedacht und im Forum gesucht, aber ich komm in meinem Problem nicht weiter.
Vielleicht ist es ganz einfach zu lösen und seh den Wald vor lauter Bäumen nicht, wie man so schön sagt.

Ich arbeite mit den TSimpleTCP-Komponenten von UDontKnow (btw: die sind genial), über die ich eine Stringlist sende. Mein Client, der aus verschiedenen Frames aufgebaut ist, soll die Stringlist empfangen und in eine Listbox auf Frame5 eintragen. Das hab ich so gelöst:

InputEvent bei meinem Client:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.TCPServerInput(Connection: TSimpleTCPConnection;
  Stream: TStream; var DisposeStream: Boolean);
var sl: TStringList;
begin
  showmessage('kam was an');     //<-- Meldung kommt, wenn ich frame5.listbox1.items.add('kam was an');  
                                 //eingib, wird nix angezeigt
  sl:= TStringList.Create;
  sl.BeginUpdate;                 //anfangs hatte ich alles ohne BeginUpdate und EndUpdate
  try
    sl.LoadFromStream(stream);
  finally
    sl.EndUpdate;
    sl.Free;
  end;
  frame5.ListBox1.Items.BeginUpdate;
  frame5.ListBox1.Items.Assign(sl);
  frame5.ListBox1.Items.EndUpdate;
end;


Meine Frage ist nun: Wie bekomme ich das hin, dass die empfangene Stringlist gleich in die Listbox auf dem Frame eingetragen wird?

Hoffe mir kann einer helfen, ich weiß nicht mehr weiter.

Dolognio.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Mi 01.11.06 12:53 
du wirfst die stringliste sl weg, bevor du sie der listbox assignst.
ich denke mal, ohne es getestet zu haben, dass das der fehler ist.

grüße
alex
Dolognio Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 01.11.06 12:59 
Meinst du das sl.free nach dem assignen reinschreiben? Also:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  sl:= TStringList.Create;
  sl.BeginUpdate;
  try
    sl.LoadFromStream(stream);
  finally
    sl.EndUpdate;
    frame5.ListBox1.Items.BeginUpdate;
    frame5.ListBox1.Items.Assign(sl);
    frame5.ListBox1.Items.EndUpdate;
  end;
  sl.Free;


Wenn ja, das war nicht der Fehler, grad getestet.

Aber wenn das der Fehler gewesen sein sollte, müsste ja statt dem showmessage('kam was an'); auch frame5.listbox1.items.add('kam was an'); gehen.

Das ging ja au net.
Aber thx.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Mi 01.11.06 13:04 
gibts denn einen fehler?
oder wird einfach nichts in die listbox geschrieben?
Dolognio Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 01.11.06 13:07 
Wird einfach nichts reingeschrieben.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Mi 01.11.06 13:28 
ist der frame/die listbox denn überhaupt sichtbar?
es müsste nämlich ansonsten einen fehler geben, wenn beim reinschreiben was schief geht.
Dolognio Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 01.11.06 13:39 
Ja, ist natürlich sichtbar, versteh ich au net, warums kein fehler gibt