Autor Beitrag
BL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

WIN 98, WIN XP, WIN 2000
Delphi 2005
BeitragVerfasst: Di 07.06.11 20:26 
Hallo,

ich will eine MemoBox zeilenweise vollschreiben.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 07.06.11 20:28 
ausblenden Delphi-Quelltext
1:
YourMemo.Lines.Add('Hallo Welt');					
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: 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...
ausblenden 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;


Zuletzt bearbeitet von haentschman am Di 07.06.11 20:32, insgesamt 1-mal bearbeitet
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: 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:


Zuletzt bearbeitet von HenryHux am Di 07.06.11 20:31, insgesamt 1-mal bearbeitet
MaxWurzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Mi 08.06.11 07:36 
Benutze memo2.lines.add(str).

Edit: Mist, etwas zu spät.
BL Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

WIN 98, WIN XP, WIN 2000
Delphi 2005
BeitragVerfasst: 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