Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   RichEdit Format (https://www.delphipraxis.net/173464-richedit-format.html)

Ykcim 26. Feb 2013 13:24

RichEdit Format
 
Hallo Zusammen,

Ich habe zum RichEdit zwei Fragen:
1. Gibt es eine Möglickeit, wie ich den Zeilenumbruch verhindern kann? Ich möchte, dass immer nur eine Zeile verwendet wird.
2. Gibt es eine einfache Möglichkeit, wie ich RichEdit formatieren kann (z.B. das Zahlen mit Tausendertrennzeichen, oder mit zwei Kommastellen angezeigt werden)? Ich meine nicht mitten im Text, sondern wenn dort nur eine Zahl eingetragen wird.

Vielen Dank
Patrick

DeddyH 26. Feb 2013 13:26

AW: RichEdit Format
 
Zu 1: WordWrap auf false stellen, oder meinst Du etwas anderes?
Zu 2: Ist mir nichts bekannt.

Ykcim 26. Feb 2013 13:41

AW: RichEdit Format
 
Zu1: Wenn ich auf die ENTER Taste drücke, dann springt er in die zweite Zeile - die nicht sichtbat ist... Das möchte ich verhindern.

p80286 26. Feb 2013 13:49

AW: RichEdit Format
 
If frage mich wofür das gut sein soll.
Richedit ist eigentlich eine verkappte (und kastrierte) Textbearbeitung, die dafür gedacht ist auszudruckenden Text zu erfassen. D.h. die "Zeile" ist nur eine sehr vergängliche Möglichkeit der Textstrukturierung, da je nach Font(größe) und Papierformat die Zeile unterschiedlich lang ist.

Wenn Du Wert auf Fett, Kursiv und unterschiedliche Textfarben legst, solltest Du vllt. synedit verwenden.

Für Deine zweite Anforderung gibt es
Delphi-Quellcode:
Format
oder falls Du gerne selbst bastelst
Delphi-Quellcode:
xxxtostr
mit nachträglicher Aufhübschung.

Gruß
K-H
Zitat:

Zitat von Ykcim (Beitrag 1205129)
Zu1: Wenn ich auf die ENTER Taste drücke, dann springt er in die zweite Zeile - die nicht sichtbat ist... Das möchte ich verhindern.

Zum besseren Verständnis:
Du hast einen RichEdit von dem nur eine Zeile sichtbar ist?

Warum nutzt Du nich TEdit?

Popov 26. Feb 2013 14:10

AW: RichEdit Format
 
@Ykcim

Ich hab mich mal mit dem Thema näher beschäftigt und kann behaupten, dass es das was du suchst nicht in der Form gibt oder ich es nicht gefunden habe.

Was ich letztendlich gemacht habe und du es auch machen kannst ist Tricksen.

Dein erstes Problem kannst du so lösen:

Delphi-Quellcode:
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then Key := #0;
end;
Damit fängst du das Enter an. Wenn du den Zeilenumbruch komplett abfangen willst, also auch den durch Einfügen von Text, dann mußt du auch das abfangen.

Dein zweites Problem ist etwas komplexer, aber auch nicht unmöglich. Nur mußt du dann das machen was du eigentlich mit Delphi machen willst: programmieren. Einfach die Texteingabe überwachen. Bei der ersten Eingabe einer Zahl den Startpunkt merken, dann auch den Endpunkt merken, also die erste Nichtzahl. Schon hast du die letzte Zahl die eingegeben wurde. Jetzt das ganze formatieren und den Cursor anpassen.

lbccaleb 26. Feb 2013 14:24

AW: RichEdit Format
 
Zu 2.

Du kannst die Zahl vorher formatieren, und dann in das RichEdit als Text einfügen:
Delphi-Quellcode:
function PointDelimiter(Argument: string; TrennChar: char): string;
var n,i: integer;
begin
  Result := Argument;
  n := Length(Result);
  if n > 3 then begin
    i := 0;
    While n > 0 do begin
      inc(i);
      if (i >= 3) and (n > 1) then begin
        Insert(TrennChar, Result, n);
        i := 0;
      end;
      dec(n);
    end;
  end;
end;


RichEdit1.Text := PointDelimiter('1234567890', '.');

Edit:
Zu 1.:
Du kannst mit stringreplace (http://www.delphibasics.co.uk/RTL.as...=StringReplace) die #13 im gesamten String austauschen gegen zB. ein Leerzeichen. Oder auch gar nichts..


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

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