Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX mimarisinde zorlandığınız kısımlar ve çözümleri
#3
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.


.zip   PasswordChar.zip (Dosya Boyutu: 301,05 KB / İndirme Sayısı: 6)
Cevapla


Bu Konudaki Yorumlar
Cvp: FMX mimarisinde zorlandığınız kısımlar ve çözümleri - Yazar: Mr.X - 04-10-2025, Saat: 11:05

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FMX Mimarisinde Harici FONT (True - Type) Kullanmak RAD Coder 1 978 26-10-2023, Saat: 18:40
Son Yorum: SamerAssil



Konuyu Okuyanlar: 1 Ziyaretçi