![]() |
Re: Memo Zeichenzähler mit Eingabe
MMh, mir fällt grd auf, das wenn ich was lösche, das dies als zeichen mit hinzugefügt wird.
MMh, naja. Ich mach morgen weiter. Heute isses mir zu spät. MfG Dave |
Re: Memo Zeichenzähler mit Eingabe
Zitat:
|
Re: Memo Zeichenzähler mit Eingabe
Hi!
Als Tipp dazu: Du musst dann noch abfragen, welches Zeichen da so kommt - es kommen ja nur 2 Tastendrücke in Frage, die etwas löschen können. Allerdings gibt es noch mehr Sonderfälle: Markierten Text (mehr als ein Zeichen) löschen oder sogar ausschneiden oder überschreiben... Auch das Einfügen von Text (sei es über Kontextmenü oder über Tastenkombi) solltest du bedenken... Grüße, Frederic |
Re: Memo Zeichenzähler mit Eingabe
Zitat:
Das solltest du wie beim Memo lieber weglassen. Zum Thema: Warum denkt ihr so kompliziert? :mrgreen:
Delphi-Quellcode:
Bzw. wenn der Zeilenumbruch gar nicht gezählt werden soll, dann einfach durch einen leeren String statt mit einem Leerzeichen ersetzen, fertig.
StatusBar1.Panels[1].Text := 'Zeichenzahl: '
+ IntToStr(Length(StringReplace(Memo1.Text, #13#10, ' ', [rfReplaceAll]))); Diese Lösung ist zwar langsamer usw. als einfaches Zählen, aber bei der zu erwartenden Zeichenanzahl spielt das ja keine Rolle. |
Re: Memo Zeichenzähler mit Eingabe
Zitat:
Delphi-Quellcode:
StatusBar1.Panels[1].Text:=IntToStr(Length(Memo1.Text)-Memo1.Lines.Count);
|
Re: Memo Zeichenzähler mit Eingabe
Zitat:
Zitat:
// EDIT: Es sollte reichen bei 0 Zeichen in der letzten Zeile nochmal minus Eins zu rechnen. Kommt noch dazu, dass man die Leerzeile woanders machen kann... |
Re: Memo Zeichenzähler mit Eingabe
Ich hab das schon getestet, habe mir aber zugegebenermaßen nicht alle Kommentare angesehen und deswegen den Sonderfall (Zeile hat noch kein CRLF) nicht 'drauf gehabt.
So sollte es dann vollständig funktionieren:
Delphi-Quellcode:
M.E. sollte das aber nicht in Memo1KeyPress stehen sondern im Memo1Change.
var s:string; len:integer;
begin s:=Memo1.Text; len:=Length(s); dec(len,Memo1.Lines.Count-Integer((len>0) and (s[len]<>#10))); Statusbar1.Panels[0].Text:=IntToStr(len); end; |
Re: Memo Zeichenzähler mit Eingabe
Man könnte es auch mit
Delphi-Quellcode:
versuchen
Anzahl := Length(Memo.Lines.DelimitedText);
|
Re: Memo Zeichenzähler mit Eingabe
Hallo
Dank jaenicke, das war das was ich gesucht hatte
Delphi-Quellcode:
Funzt perfekt
IntToStr(Length(StringReplace(Memo1.Text, #13#10, ' ', [rfReplaceAll])));
MfG Dave |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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