AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TMemo, MaxLength, Anzeige der noch möglichen Zeichen
Thema durchsuchen
Ansicht
Themen-Optionen

TMemo, MaxLength, Anzeige der noch möglichen Zeichen

Ein Thema von hoika · begonnen am 24. Jul 2009 · letzter Beitrag vom 24. Jul 2009
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TMemo, MaxLength, Anzeige der noch möglichen Zeichen

  Alt 24. Jul 2009, 12:36
Hallo #,

ich habe hier eine TMemo, da dürfen nur 250 Zeichen rein.
Jetzt möchte ich dem User anzeigen
"Noch x Zeichen möglich"

Muss ich da irgendwas wegen den Enters (manuell oder automatischer Umbruch)
irgendwas beachten ?
Gibt es da Fallstricke ?


Heiko
Heiko
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TMemo, MaxLength, Anzeige der noch möglichen Zeichen

  Alt 24. Jul 2009, 12:53
Hi,

beim automatischen Umbruch musst imho nicht beachten. Der Text ändert sich dadurch nicht. Beim manuellen Umbruch ist es so, dass dieser 2 Zeichen erzeugt. Da ist die Frage ob du diese 2 Zeichen mit berechnen willst oder außen vor läßt. Der Zeilenumbruch wäre #13#10.

Gruß
Ansgar
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TMemo, MaxLength, Anzeige der noch möglichen Zeichen

  Alt 24. Jul 2009, 12:53
Also automatische Zeilenumbrüche des Memos werden nicht in den Lines.Text string umgesetzt. Manuelle aber schon.
Es sollte also ohne Probleme gehen "250 - Length(Lines.Text)" zu schreiben...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TMemo, MaxLength, Anzeige der noch möglichen Zeichen

  Alt 24. Jul 2009, 13:25
Hallo,

Danke, ich probier es aus.
In meinem Fall (muss in eine DB als VarChar)
muss ich die #13#10 schon mit berücksichtigen.

#Update:#
Es klappt wunderbar.
Delphi-Quellcode:
  Label_LengthInfo.Caption:=
    IntToStr(Edit_Msg.MaxLength-Length(Edit_Msg.Lines.Text))
    +' / '+IntToStr(Edit_Msg.MaxLength);
Der Code wird im Memo.OnChange ausgeführt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

Re: TMemo, MaxLength, Anzeige der noch möglichen Zeichen

  Alt 24. Jul 2009, 13:41
Zitat von hoika:
In meinem Fall (muss in eine DB als VarChar)
muss ich die #13#10 schon mit berücksichtigen.
in Memo1.Lines.Text bzw. Memo1.Text enthält ja die Zeilenumbrüche (abgesehn von den automatischen Umbrüchen, welche nur virtuell in der Anzeige umgebrochen werden, aber nicht in den .Lines

setze wirklich einfach nur .MaxLength deines Memos auf 250
und dann nur noch ...
Delphi-Quellcode:
procedure TForm1.Memo1Change(Sender: TObject);
begin
  Label1.Caption := Format('noch %d Zeichen', [Memo1.MaxLength - Length(Memo1.Text)]);
end;
alle weiteren Begrenzungen macht Delphi für dich

also eigentlich mußt da da nichts weiter beachten
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 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