Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Memo.Lines


BL - Di 07.06.11 20:26
Titel: Memo.Lines
Hallo,

ich will eine MemoBox zeilenweise vollschreiben.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort1.ReadStr(Str, Count);
  Edit2.Text := Str;
  Memo2.Lines[ZeilenZaehler] := Str;
  ZeilenZaehler := ZeilenZaehler + 1;
end;
Zeile 0 und 1 klappt prima. Danach schreibt der mir aber nichts mehr rein.

Kann es sein, dass man die Zeilen erst erzeugen muß? Dazu habe ich in der Hilfe aber keine Methode gefunden.

Besten Dank!

BL

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.


jaenicke - Di 07.06.11 20:28


Delphi-Quelltext
1:
YourMemo.Lines.Add('Hallo Welt');                    


haentschman - Di 07.06.11 20:30

Hallo...

also Zeilen hinzufügen hast du nicht gefunden ? :gruebel: Wie wäre es mit Add(DeinString) ?
Den Zeilenzähler brauchst du nicht, da das Memo einen Index mitführt und über Count die Zeilenanzahl zu ermitteln ist.

:? zu langsam

Machen wir´s richtig...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort1.ReadStr(Str, Count);
  Edit2.Text := Str;
  Memo2.Lines.Add(Str);
end;


HenryHux - Di 07.06.11 20:30

Ohne das Problem genau zu kennen, nimm einfach die Memo1.lines.add(Str)

lg

Edit : Und auch noch direkt 2 schneller :roll:


MaxWurzel - Mi 08.06.11 07:36

Benutze memo2.lines.add(str).

Edit: Mist, etwas zu spät.


BL - Mi 08.06.11 08:48

Herzlichen Dank für den Tipp. Haut einwandfrei hin.

Ich hätte auch von selber drauf kommen können/müssen. Aber meine aktivere Delphi-Zeit liegt 7 Jahre zurück und bezog sich noch auf Delphi3, weshalb ich mich erstens nicht mehr so recht erinnern konnte und zweitens annahm, dass das heute in Delphi 2005 sicher anders ist.
Zu meiner Ehrenrettung möchte ich aber anfügen, dass unter der Hilfe für TMemo wirklich keine Methode "ADD" aufgeführt ist. Die müßte unter TStrings stehen. Es fehlt in der TMemo-Hilfe der Hinweis, dass die Lines ein Objekt TSrings darstellen. Das sieht der Laie dann wieder nur in der IDE und da muß er wissen, was das ist.
Sei's drum, nochmal herzlichen Dank. Ich muß mich jetzt drum kümmern, wie ich aus dem eingelesenen ASCII-Text Hex-Zeichen versende.



BL