Autor Beitrag
Nepumuck
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 24.09.02 17:53 
Ich hab ein Memo Feld und die idTelnet KOmponente.

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

_________________
REAL IST WAS DU DRAUS MACHST!
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 29.01.05 12:24 
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: So 30.01.05 19:05 
bis11 hat folgendes geschrieben:
ausblenden 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
ausblenden 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.