![]() |
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:
Das ist aber nur ein umständlicher Workaround. Hat jemand eine bessere Idee?
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; |
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.
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Ich brauche das nicht zur Datenhaltung, sondern der User soll das zur Dateneingabe benutzen.
LG |
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.
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
|
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; |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Entferne doch die Zeilenumbrüche wieder, wenn du die Daten weiterverarbeitest.
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Was Luckie meint,
wäre z.B. sowas... ![]() zu diesem Thema findest Du hier im Forum viel Beiträge. Gruß Jens |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
Ein TEdit mit WordWrap oder ein Verfahren, das ein solches simuliert. |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Es gibt kein mehrzeiliges TEdit!
Dafür ist TMemo zuständig. Wenn Du aus was für Gründen auch immer keine CR/LF in Deinem Text haben willst, kannst Du diese entweder aus dem TMemo.Text entfernen oder mit Hilfe von String und TLabel/TStaticText Dein mehrzeiliges TEdit simulieren. Denn irgendwann schlägt sich die Darstellung in einem TMemo auf die Daten im TMemo.Text nieder. Zitat:
K-H |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
@ p80286
hast du den Code ausprobiert, den ich am Anfang im Ausgangsposting reingestellt habe? |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
@PeterPanino: Irgendwie bist du gefangen in deiner Idee, du bräuchtest ein mehrzeiliges Editfeld ohne Zeilenumbrüche (was ja schon ein Widerspruch in sich ist).
Du versuchst Sourcecode zu finden wo es eigentlich nötig wäre über die Benutzeroberfläche nachzudenken und zu diskutieren. "Befreie deinen Geist!" - Na aus welchem Film ist das Zitat? Was genau soll der Benutzer eingeben? Warum soll es ihm verboten sein eine neue Zeile einzufügen oder eine bestehende Zeile umzubrechen? Wäre vielleicht nicht ein Stringgrid viel besser geeignet? |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
Glaub mir, ich hab' zu viele Jahre an Erfahrung auf dem Buckel, als dass ich nicht wüsste, was ich brauche ...:) * "Man wird niemals mehr als 364 KB Arbeitsspeicher brauchen!" (B.G.) PS: Bald werde ich das Geheimnis lüften ... ;-) |
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
|
AW: Mehrzeiliges TEdit bzw. LineBreak in TMemo verhindern?
Zitat:
Allerdings kann es Spezialanwendungen geben, die nur für eine bestimmte Klientel gedacht ist, und die sich ständig mit ihr beschäftigen: Dann kann eine wohldurchdachte neue Eingabemetapher eingeführt werden. Ich persönlich würde jedoch sehr sehr spartanisch damit umgehen und in diesem Fall lieber ein stinknormales Memo nehmen und die Texte nach einem OnExit formatieren, d.h. Zeilenumbrüche entfernen. Dann sieht der Anwender aktiv, was mit seinem Text geschieht. Dies entspricht dem Grundstatz der visuellen Rückmeldung und Transparenz. Da Du aber -aufgrund deiner Erfahrung- offensichtlich genau weisst, was Du willst, sind wir wirklich gespannt auf diesen Anwendungsfall: Dazulernen können selbst die ältesten Hasen immer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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