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/)
-   -   Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern? (https://www.delphipraxis.net/156725-mehrzeiliges-tedit-bzw-linebreak-tmemo-verhindern.html)

PeterPanino 13. Dez 2010 01:17

Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Hallo,

ich benötige ein mehrzeiliges TEdit, d.h. ein TEdit mit WordWrap, wobei der umgebrochene Text natürlich kein LineBreak (#13#10) enthalten soll.

Da ich keine entsprechende Komponente gefunden habe, habe ich versucht, eine solche mit einem TMemo zu simulieren, bei dem das Einfügen eines LineBreak verhindert wird:
Delphi-Quellcode:
mmo1.WordWrap := True;

procedure TForm1.mmo1Change(Sender: TObject);
var
  CP: Integer;
begin
  if Pos(#13#10, mmo1.Text) > 0 then
  begin
    CP := mmo1.SelStart;
    mmo1.Text := StringReplace(mmo1.Text, #13#10, '', [rfReplaceAll]);
    mmo1.SelStart := CP - 2;
  end;
  mmo1.Width := mmo1.Width + 1;
  mmo1.Width := mmo1.Width - 1;
end;
Das ist aber nur ein umständlicher Workaround. Hat jemand eine bessere Idee?

Luckie 13. Dez 2010 01:34

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Benutze visuelle Komponenten nicht zur Datenhaltung. Wenn du den Text ohne Zeilenumbrüche brauchst nimm eine normale Variable vom Typ String.

PeterPanino 13. Dez 2010 01:41

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Ich brauche das nicht zur Datenhaltung, sondern der User soll das zur Dateneingabe benutzen.

LG

Luckie 13. Dez 2010 01:50

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Dann ist es doch egal. Er guckt sich die Daten nur an und bei einem Zeilenumbruch sieht man ja nicht die Steuerzeichen. Deswegen verstehe ich jetzt nicht, was du willst.

PeterPanino 13. Dez 2010 01:58

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Zitat:

Zitat von Luckie (Beitrag 1068178)
Deswegen verstehe ich jetzt nicht, was du willst.

Verhindern, dass der User ein LineBreak eingibt.

Björn Ole 13. Dez 2010 02:12

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Delphi-Quellcode:
procedure TSchöneForm.SchönesMemoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(VK_RETURN) then
    Key := #0;
end;

Luckie 13. Dez 2010 02:56

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Entferne doch die Zeilenumbrüche wieder, wenn du die Daten weiterverarbeitest.

Jens Hartmann 13. Dez 2010 07:04

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Was Luckie meint,

wäre z.B. sowas...

http://www.delphipraxis.net/17346-wi...-loeschen.html

zu diesem Thema findest Du hier im Forum viel Beiträge.

Gruß Jens

PeterPanino 13. Dez 2010 09:01

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Zitat:

Zitat von Björn Ole (Beitrag 1068180)
Delphi-Quellcode:
procedure TSchöneForm.SchönesMemoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(VK_RETURN) then
    Key := #0;
end;

Danke, das funktioniert aber nicht beim Einfügen aus der Zwischenablage - deswegen habe ich ja OnChange verwendet.

PeterPanino 13. Dez 2010 09:03

AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
 
Zitat:

Zitat von PeterPanino (Beitrag 1068179)
Verhindern, dass der User ein LineBreak eingibt.

Das war etwas ungenau ausgedrückt. Das trifft es besser:

Ein TEdit mit WordWrap oder ein Verfahren, das ein solches simuliert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 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