Delphi-PRAXiS

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 TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch (https://www.delphipraxis.net/126439-trichedit-eingefuegter-eintrag-erzeugt-zeilenumbruch.html)

rey003 24. Dez 2008 14:25


TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Hallo,
ich hab grade ein Problem mit der Komponente TRichEdit.
Ich benutze sie, da man damit leicht Text färben kann. In meinem Projekt soll sie ein Edit-Feld ersetzen und ist deshalb nur einzeilig.
Nun hab ich folgendes Problem, wenn ich einen Text in die Komponente einlesen erzeugt dieser immer einen Zeilenumbruch den ich jedoch gar nicht will, da dadurch mein eigentlicher Text verschwindet bzw hochrutscht.

Delphi-Quellcode:
 re_s1.Clear;
 showmessage('!'+re_s1.Lines.Text+'!');
//Ergebnis: '!!'
 re_s1.Lines.Add('hallo');
 showmessage('!'+re_s1.Lines.Text+'!');
//Ergebnis: '!hallo
//           !'
Hat jemand eine Idee wieso es dazu kommt?
Frohe Weihnachten @ all

SirThornberry 24. Dez 2008 14:29

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Es kommt dazu weil das Property Text wenn eine Zeile vorhanden ist einen abschließenden Zeilenumbruch anhängt. Wenn du diesen nicht willst musst du dir selbst eine entsprechende Funktion schreiben. Bzw. macht es mehr Sinn du lässt dir immer nur die erste Zeile anzeigen anstelle den kompletten Text wenn du sowieso nur eine Zeile haben willst.

rey003 24. Dez 2008 14:37

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Ok danke dir,
das Problem ist nur, dass die man immer auf die 2. Zeile kommt wenn man im Text zu weit nach hinten geht und das nach einschreiben von Text das Feld automatisch auf der 2. Zeile steht.
Wie kann man sich denn nur die erste anzeigen lassen?

Edit:
ok habe grade gesehn wenn ich so in das RichEdit schreibe funktioniert es:
Delphi-Quellcode:
RichEdit1.Lines.Strings[0]:= 'Hallo';

turboPASCAL 24. Dez 2008 15:20

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Delphi-Quellcode:
procedure MemoAddLineText(Memo: TMemo; LineIndex: Integer; Text: String);
begin
  if LineIndex < Memo.Lines.Count then Memo.Lines[LineIndex] := Memo.Lines[LineIndex] + Text
   else Memo.Lines.Add(Text);
end;

procedure TFormX...
begin
  memo1.Clear;
  memo1.lines.add('Hallo');
  MemoAddLineText(memo1, 0, ' du !');
end;
;)

Helmi 24. Dez 2008 17:03

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Zitat:

Zitat von rey003
Ich benutze sie, da man damit leicht Text färben kann. In meinem Projekt soll sie ein Edit-Feld ersetzen und ist deshalb nur einzeilig.

Ist das nicht etwas overload wenn du ein RichEdit als Edit-Feld-Ersatz verwendest?

Meines Wissen nach kann man in einem Edit-Feld (TEdit) auch den Text färben.

mkinzler 24. Dez 2008 21:21

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Es kommt darauf an, ob er den kompletten Text in einer farbe oder mehrfarbig haben will. Dann würde sich aber eine HTML-Kompo eher eignen

rey003 24. Dez 2008 22:19

Re: TRichEdit: eingefügter Eintrag erzeugt Zeilenumbruch
 
Das Programm das ich schreibe steuert ein Lauflicht, das 3 verschiedene Farben kennt.
Man kann den Text in den 3 Farben färben, der String dann entsprechend umgewandelt wird damit das Lauflicht ihn versteht.
Aber in dem Fall muss es eben rückwärts auch gehen.
Mit der Variante von mir erst oben scheint es zu funktionieren.
Danke euch...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.

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