![]() |
Stringmanipulation
Hallo!
Ich bin nach langer Zeit mal wieder hier und brauche eure hilfe. Und zwar habe ich 2 Editfelder und eienn button. wenn ich auf den button klicke sollen im unteren editfeld so viele **** ausgespuckt werden wie das im ersten editfeld eingegebene wort zeichen hatte. Quasi son passwort effekt. also der soll die länge erkennen oder die anzahl der zeichen und dann im anderen Editfeld so viele sternchen hinmachen. Wäre nett wenn mir jemand hilft. Mfg Patrick |
Re: Stringmanipulation
Delphi-Quellcode:
Das wäre ne ganz einfache Möglichkeit ;>
edit2.text := '';
for i := 0 to length(edit1.text) - 1 do begin edit2.text := edit2.text + '*'; end; Edit: Kleine Korrektur ^^ |
Re: Stringmanipulation
und das ganze im OnKeyPress-Event. dann brauchst du nichtmal einen Button.
Für Stringverarbeitungs-Grundlagen guckst du ![]() |
Re: Stringmanipulation
Moin!
Delphi-Quellcode:
MfG
Procedure TForm1.Button1Click(Sender: TObject);
Begin Edit2.Text := StringOfChar('*', Length(Edit1.Text)); End; Muetze1 |
Re: Stringmanipulation
Zitat:
Wenn du nix zum Optimieren findest, biste nich glücklich oder? :mrgreen: Das ist NICHT böse gemeint! :> |
Re: Stringmanipulation
Ihr sollte euch doch deßwegen nicht streiten, denn schließlich haben beide Codes etwas gutes an sich. :zwinker:
Der Code von Muetze1 zeigt die "optimalere" Variante. Und SubData's Cödchen zeigt, wie es gemacht wird ... StringOfChar macht das intern ja ähnlich, (OK, dort ist der Speicherzugriff optimiert) aber so kann Wargrave wenigstens auch noch etwas lernen ;)
Delphi-Quellcode:
edit2.text := '';
for i := 0 to length(edit1.text) - 1 do // 1 edit2.text := edit2.text + '*'; // 2 // 2: brauche ein Zeichen // 1: so oft, wie Zeichen im Edit1 vorhanden sind @Wargrave: StringOfChar macht das in etwa so:
Delphi-Quellcode:
SetLength(Edit2.Text, Length(Edit1.Text));
For i := 0 to Length(Edit1.Text) - 1 do Edit2.Text[i] := '*'; //PS: dieser Code zeigt nur, wie es geht, aber mit dem Propewrty .Text Funktioniert es nicht, //dafür bäuchte man schon einen richtigen String: Var S: String; SetLength(S, Length); For i := 0 to Length - 1 do S[i] := '*'; |
Re: Stringmanipulation
Nur zur Ergänzung:
Mit der TEdit-Komponente aus der CLX kann man das sogar im selben Edit haben, wenn man die Property EchoMode auf emPassword stellt. Nun bin ich mir aber nicht ganz sicher, ob es das in der VCL auch gibt. IMHO gibt es dort die Eigenschaft PasswordChar (oder so ähnlich), mit der man das Zeichen angeben kann, das bei einer Passwort-Eingabe dargestellt wird. Die Eigenschaft Text bleibt aber davon unberührt und enthält nach wie vor den "richtigen" (d.h. real eingegebenen) Text. MfG Binärbaum |
Re: Stringmanipulation
Jop das gibs da auch...
Du musst nur n Password Char festlegen, dann is die Eingabemaske automatisch auf Passwörter ausgelegt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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