Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringmanipulation (https://www.delphipraxis.net/41775-stringmanipulation.html)

Wargrave 8. Mär 2005 14:01


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

SubData 8. Mär 2005 14:03

Re: Stringmanipulation
 
Delphi-Quellcode:
edit2.text := '';
for i := 0 to length(edit1.text) - 1 do
begin
  edit2.text := edit2.text + '*';
end;
Das wäre ne ganz einfache Möglichkeit ;>

Edit: Kleine Korrektur ^^

Jasocul 8. Mär 2005 14:05

Re: Stringmanipulation
 
und das ganze im OnKeyPress-Event. dann brauchst du nichtmal einen Button.
Für Stringverarbeitungs-Grundlagen guckst du hier

Muetze1 8. Mär 2005 14:09

Re: Stringmanipulation
 
Moin!

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
  Edit2.Text := StringOfChar('*', Length(Edit1.Text));
End;
MfG
Muetze1

SubData 8. Mär 2005 14:14

Re: Stringmanipulation
 
Zitat:

Zitat von Muetze1
Moin!

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
  Edit2.Text := StringOfChar('*', Length(Edit1.Text));
End;
MfG
Muetze1

-ZungeRausstreck-
Wenn du nix zum Optimieren findest, biste nich glücklich oder? :mrgreen:
Das ist NICHT böse gemeint! :>

himitsu 8. Mär 2005 14:37

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] := '*';

Binärbaum 8. Mär 2005 14:51

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

SubData 8. Mär 2005 15:11

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 23:08 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