Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zeilenanzahl eines memos SETZEN (https://www.delphipraxis.net/135421-zeilenanzahl-eines-memos-setzen.html)

Shimau 10. Jun 2009 14:53


Zeilenanzahl eines memos SETZEN
 
Und zwar hab ich ne Schleife geschrieben, die Zeilen eines Memos automatisch füllen soll. Nun werden beim testen aber immer nur die gefüllt, wo ich vorher schon etwas stehen hatte. Ich möcht natürlich aber auch die ganzen anderen Felder füllen. Ich nehm mal an das progi kann diese aber nicht füllen, da diese ganz einfach nicht existieren. Lines.Count kann man jedoch nicht setzen, wie mach ich das?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  Randomize;
  for i:=0 to StrToInt(Anzahl.Text)-1 do
  begin
    Eingabe.Lines[i]:=IntToStr(random(1000000));
  end;
end;

DeddyH 10. Jun 2009 14:55

Re: Zeilenanzahl eines memos SETZEN
 
Soll der alte Text des Memos erhalten bleiben oder überschrieben werden?

himitsu 10. Jun 2009 14:58

Re: Zeilenanzahl eines memos SETZEN
 
im Notfall könnte man auch so oft .Add aufrufen, bis die Zeilenanzahl erreicht ist

Delphi-Quellcode:
while Eingabe.Lines.Count < Anzahl do Eingabe.Lines.Add('');

in deinem Fall die vorhandenen Zeilen wie bisher füllen und dann die Zusätzlichen Zeillen anhängen
also so oft Folgendes aufrufen, bis die Zeilenanzahl wieder stimmt.
Delphi-Quellcode:
Eingabe.Lines.Add(IntToStr(random(1000000)));

Luckie 10. Jun 2009 15:00

Re: Zeilenanzahl eines memos SETZEN
 
Zitat:

Zitat von Shimau
Und zwar hab ich ne Schleife geschrieben, die Zeilen eines Memos automatisch füllen soll. Nun werden beim testen aber immer nur die gefüllt, wo ich vorher schon etwas stehen hatte. Ich möcht natürlich aber auch die ganzen anderen Felder füllen. Ich nehm mal an das progi kann diese aber nicht füllen, da diese ganz einfach nicht existieren.

Und wenn was nicht existiert, dann fügt man es hinzu. ;)
Delphi-Quellcode:
Memo1.Lines.Add('meine neue Zeile');

Shimau 10. Jun 2009 15:04

Re: Zeilenanzahl eines memos SETZEN
 
Naja der alte Text soll ja überschrieben werden und wenn ich nur hinzufüge, dann bleibt er ja stehen, Welche prozedu löscht denn das ganze Memo? (Also jetzt nur den text nicht die ganze Komponente)

arkon 10. Jun 2009 15:06

Re: Zeilenanzahl eines memos SETZEN
 
memo.lines.clear;

Shimau 10. Jun 2009 15:11

Re: Zeilenanzahl eines memos SETZEN
 
Na da lösch ich einfach das gesamte memo und füg dann die Zeilen hinzu.
Danke für die Hilfe
Problem gelöst

DeddyH 10. Jun 2009 15:49

Re: Zeilenanzahl eines memos SETZEN
 
Und wenn das viele Zeilen werden, kannst Du BeginUpdate und EndUpdate von TMemo.Lines verwenden, dann wird nicht permanent neu gezeichnet.

Uwe Raabe 10. Jun 2009 17:42

Re: Zeilenanzahl eines memos SETZEN
 
Ich weiß nicht, ob es das schon in D7 gab:

Delphi-Quellcode:
uses
  StrUtils;

...
  Memo1.Lines.Text := DupeString(Memo1.Lines.LineBreak, LineCount); // LineCount ist die gewünschte Zeilenzahl
...
Uwe Raabe

himitsu 10. Jun 2009 17:47

Re: Zeilenanzahl eines memos SETZEN
 
ob das so schneller wird ... immerhin muß in .SetText (.Text) der String erstmal zerlegt und dann auch Zeile für Zeile per .Add hinzugefügt werden.

aber DupeString in Unit SysUtils gibt's schon :angel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz