Entwickler-Ecke

Internet / Netzwerk - [Indy] idTelnet Komponente, Empfangenes in MEMO


Nepumuck - Di 24.09.02 17:53
Titel: [Indy] idTelnet Komponente, Empfangenes in MEMO
Ich hab ein Memo Feld und die idTelnet KOmponente.

Wie kann ich was ich vom server zurückgeschickt bekomme in die Memo reinmachen?


bis11 - Sa 29.01.05 12:24


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
procedure TMainWindow.IdTelnetDataAvailable(Sender: TIdTelnet;
  const Buffer: String);
const
  CR = #13;
  LF = #10;
var
  Start, Stop: Integer;
begin
  Statusfeld.Clear;
  if Statusfeld.Lines.Count = 0 then
    Statusfeld.Lines.Add('');

  Start := 1;
  Stop := Pos(CR, Buffer);
  if Stop = 0 then
    Stop := Length(Buffer) + 1;
  while Start <= Length(Buffer) do
  begin
    Statusfeld.Lines.Strings[Statusfeld.Lines.Count - 1] :=
      Statusfeld.Lines.Strings[Statusfeld.Lines.Count - 1] +
      Copy(Buffer, Start, Stop - Start);
    if Buffer[Stop] = CR then
    begin
      Statusfeld.Lines.Add('');
    end;
    Start := Stop + 1;
    if Start > Length(Buffer) then
      Break;
    if Buffer[Start] = LF then
      Start := Start + 1;
    Stop := Start;
    while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
      Stop := Stop + 1;
  end;
end;


Statusfeld ist die TMemo-Komponente.


IngoD7 - So 30.01.05 19:05

bis11 hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
  Statusfeld.Clear;
  if Statusfeld.Lines.Count = 0 then
    Statusfeld.Lines.Add('');
...


Statusfeld ist die TMemo-Komponente.
Welche Chance gibt es, dass TMemo.Lines.Count nicht Null ist nach einem TMemo.Clear? :wink:

Wieso machst du überhaupt die Umwege überStatusfeld.Lines.Add('');und

Delphi-Quelltext
1:
2:
3:
    Statusfeld.Lines.Strings[Statusfeld.Lines.Count - 1] :=  
      Statusfeld.Lines.Strings[Statusfeld.Lines.Count - 1] +  
      Copy(Buffer, Start, Stop - Start);
anstatt den (Teil-)String direkt per Add-Methode dem Memo zuzufügen?

Hat das eine besondere Bedeutung, die ich übersehen habe?

NACHTRAG:
Wenn das für den Fall sein soll, dass evtl. eine Zeile vom Server über zwei Sendungen verteilt kommt, so wäre dein grundsätzliches Löschen des Memos am Anfang noch weniger verständlich ....

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.