Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - MemoBox in Text Leerzeilen einfügen


Friedhelm - Do 23.01.03 09:33
Titel: MemoBox in Text Leerzeilen einfügen
Hallo zusammen ,
ich möchte in einer MemoBox zwischen den Lines Leerzeilen einfügen. Wie kann man das am sinnvollsten machen?

Danke für die Antwort

Gruss
Friedhelm


smiegel - Do 23.01.03 09:41

Hallo,


Quelltext
1:
Memo1.Lines.Add('');                    


Delete - Do 23.01.03 09:42

In einer Schleife die Zeilen des Memos durchgehen und wenn zaehlvariable mod 2 = 0 ist eine Zeile einfügen:

Quelltext
1:
Memo1.Lines.Add('');                    


Falsch.

Quelltext
1:
Memo1.Lines.Insert(zaehlvariable, '');                    


Oder eine While-Schleife nehmen mit eine Zählvariablen und die immer um 2 erhöhen und jedes mal mit obigen Code eine Leerzeile einfügen.


Friedhelm - Sa 25.01.03 12:24

Hallo Luckie,
ich habe folgenden Quellcode:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TSparte.Button7Click(Sender: TObject);
var i,j : integer;
begin

Sparte.memo3.Visible := false;


j := Sparte.memo3.lines.Count -1;

if j > 1 then
Sparte.Gauge1.MaxValue := j-1
else                  Sparte.gauge1.maxvalue := 1;

Sparte.Gauge1.MinValue := 1;

for i := 0 to j -1 do
    begin
    Sparte.memo3.lines.Insert(j-i,'------------------------------------------------------------------------------------------------');
    Sparte.Gauge1.Progress := i;
    end;
Sparte.memo3.visible := true;

end;


Dabei soll ein Strich (LeerZeichen)als Zeile eingefügt werden. Geht auch. Aber wenn ich die mehrere hintereinander einfüge wird die Kiste zur Schnecke. Wie kann das verbessert werden?
:cry:

Danke für den Tip
GRuss
FRiedhelm


Tino - Sa 25.01.03 14:22

Friedhelm hat folgendes geschrieben:
Aber wenn ich die mehrere hintereinander einfüge wird die Kiste zur Schnecke. Wie kann das verbessert werden?


Versuch es mal so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Sparte.Memo3.Lines.BeginUpdate;

For i := 0 To j -1 Do
  Begin
    Sparte.Memo3.Lines.Add ('----------------------------------------- -------------------------------------------------------');
    Sparte.Gauge1.Progress := i;
  End;

Sparte.Memo3.Lines.EndUpdate;


Gruß
TINO


matze - Sa 25.01.03 15:04

ich hab da mal ne frage:

die Memo kompo hat doch auch die eigenschaft Text.
allerdings kann man mit der keinen zeilenumbruch erzeugen indem man einfach Memo1.text := 'bla' #13 'blabla';. was müsste man denn statt dem #13 einfügen damit das memo das als zeilenumbruch interpretiert ??

#13 sowie #10 gehen nicht !


Delete - Sa 25.01.03 16:03


Quelltext
1:
Memo1.Text := 'Hallo'+#13#10+'du';                    

Ohne Worte. :roll:


Friedhelm - So 26.01.03 08:49

Hallo Tino,

das Einfügen geht wunderbar. Nur ich kopiere einen Text in die Memo und zwischen den Zeilen will ich anschliessend jeweils eine Leerzeile oder einen Strich einfügen können. So sollte es sein.

Gruss
FRiedhelm


Delete - So 26.01.03 08:57

Wo ist da um Gottes Willen das Problem? :shock:

Luckie hat folgendes geschrieben:

Oder eine While-Schleife nehmen mit eine Zählvariablen und die immer um 2 erhöhen und jedes mal mit obigen Code eine Leerzeile einfügen.

Ist das wirklöich so schwer in Code umzusetzen? :roll:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  i := 0;
  while i < Memo1.Lines.Count do
  begin
    Memo1.Lines.Insert(i, '----------------');
    Inc(i, 2);
  end;
end;


matze - So 26.01.03 10:54

Luckie hat folgendes geschrieben:

Quelltext
1:
Memo1.Text := 'Hallo'+#13#10+'du';                    

Ohne Worte. :roll:


tja... denkste !!! mach das mal !!! bei mir kommen dann zwei vertikale linien zwischen den wörtern !!! das sieht dann ungefähr so aus : hallo||du


Delete - So 26.01.03 11:10

Was hast du für ein Memo? Willst du ein Screenshot?


matze - So 26.01.03 12:04

meinst du mich ??? ich hab das ganz normale memo das bei D5 debei ist !


Delete - So 26.01.03 12:08

Ja. Bei mir klappt das wunderbar. Einfach ein Memo auf das Formular gepackt, im OI nichts geändert und die Zeile im OnCreate des Formulars ausgeführt, geht auch bei ButtonClick.

Und voila, die beiden Worte stehe in zwei Zeilen im Memo.

(D6 Personal.)


matze - So 26.01.03 14:13

also bei mir geht das nich !! das kann aber daran liegen, dass es D5 prof ist !!!


Sharky - So 26.01.03 18:39

matze hat folgendes geschrieben:
also bei mir geht das nich !! das kann aber daran liegen, dass es D5 prof ist !!!


Hai,

also bei mir gehen alle Beispiele von Luckie genau so wie beschrieben. Ohne Fehler und alles.