Merhaba,
Password Char değişikliğini aşağıdaki yöntemle yapabiliriz gibi. Daha önce uğraşmamıştım. Varsayılan ne ise onu kullanıyorum. FMX mimarisi platformlara bu konuda bağımlı hale gelmiş durumda. O yüzden Platform API taraflarında tanımlı ne ise onu kullanıyor. Ama bu mecbur olduğumuz anlamına gelmez elbette.
Dün paylaşma fırsatım olmadı yoğunluğumdan ötürü. Delphi 12.3 ile yazılmıştır.
unit Unit1;
interface
uses
System.SysUtils,
System.Types,
System.UITypes,
System.Classes,
System.Variants,
FMX.Types,
FMX.Controls,
FMX.Forms,
FMX.Graphics,
FMX.Dialogs,
FMX.Controls.Presentation,
FMX.Edit,
FMX.StdCtrls,
FMX.Layouts,
FMX.Objects,
FMX.Effects,
FMX.Ani;
type
TForm1 = class(TForm)
Layout1: TLayout;
Rectangle1: TRectangle;
Rectangle2: TRectangle;
StyleBook1: TStyleBook;
Layout4: TLayout;
Layout2: TLayout;
Label2: TLabel;
Label1: TLabel;
Rectangle3: TRectangle;
Edit1: TEdit;
Rectangle4: TRectangle;
Edit2: TEdit;
Layout3: TLayout;
Rectangle5: TRectangle;
Label3: TLabel;
Rectangle6: TRectangle;
Label4: TLabel;
ShadowEffect1: TShadowEffect;
ShadowEffect2: TShadowEffect;
ColorAnimation1: TColorAnimation;
ColorAnimation2: TColorAnimation;
procedure Edit1Typing(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Click(Sender: TObject);
procedure Rectangle1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
procedure Rectangle6Click(Sender: TObject);
procedure Rectangle5Click(Sender: TObject);
private
public
FPassword: string;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit1.Text := StringOfChar(Edit2.Text[1], Edit1.Text.Length);
Edit1.SelStart := Edit1.Text.Length;
end;
procedure TForm1.Edit1Typing(Sender: TObject);
begin
if Length(FPassword) > Length(Edit1.Text) then
FPassword := Edit1.Text
else
FPassword := FPassword + Copy(Edit1.Text, Length(Edit1.Text), 1);
Edit1.Text := StringOfChar(Edit2.Text[1], Edit1.Text.Length);
Edit1.SelStart := Edit1.Text.Length;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{$IF DEFINED(ANDROID) OR DEFINED(IOS)}
SELF.Transparency := false;
Rectangle1.XRadius := 0;
Rectangle1.YRadius := 0;
Rectangle2.Corners := [TCorner.BottomLeft, TCorner.BottomRight];
{$ENDIF}
FPassword := '';
end;
procedure TForm1.Rectangle1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
SELF.StartWindowDrag;
end;
procedure TForm1.Rectangle5Click(Sender: TObject);
begin
Edit1.Text := FPassword;
end;
procedure TForm1.Rectangle6Click(Sender: TObject);
begin
Edit1.Text := StringOfChar(Edit2.Text[1], Edit1.Text.Length);
end;
end.
PasswordChar.zip (Dosya Boyutu: 301,05 KB / İndirme Sayısı: 6)