Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
123****89 şeklinde maskeleme
#1
Böyle bir edit objesi arıyorum.
123456789 şeklinde girilen bilgiyi 123****89 şeklinde gösteren. 

Daha sonraki aşama da da edit üzerinde çift tıklanınca açık olarak göstereceğim. 

Devex tarafında aşağıdaki gibi şey önermişler ama bu da çok kullanışlı değil. Dolaylı bir yöntem. 

https://www.devexpress.com/Support/Cente...cxmaskedit
Cevapla
#2
Bunun için ekstra bir edit bileşeni kullanmanıza gerek yok. Delphi'nin StuffString metodu işinizi görecektir. Örnek kullanım olarak şöyle gösterebilirim :

eski := '123456789';
yeni := StuffString(eski, 2, 4, '*****');

Sonuç 1*****789 şeklinde olacaktır. Sanırım istediğiniz böyle bir şey.
Firebird Ekipler Amiri. Dmitry Kouzmenko ve Dmitry Yemanov ile çalışmış , Eski IBSurgeon personeli, Kıdemli Firebird Kurtarma Uzmanı, Firebird Foundation bağışçısı...
Cevapla
#3
(16-05-2019, Saat: 17:49)rmzgenius Adlı Kullanıcıdan Alıntı: Bunun için ekstra bir edit bileşeni kullanmanıza gerek yok. Delphi'nin StuffString metodu işinizi görecektir. Örnek kullanım olarak şöyle gösterebilirim :

eski := '123456789';
yeni := StuffString(eski, 2, 4, '*****');

Sonuç 1*****789 şeklinde olacaktır. Sanırım istediğiniz böyle bir şey.

Bunca yıldır StuffString'i hiç duymamıştım  Sad 
Teşekkürler...
There's no place like 127.0.0.1
WWW
Cevapla
#4
Peki bunu dbedit gibi bir obje üzerinde nasıl yapabiliriz? 
Veritabanından datayı aldım, her defasında araya girip maskeleme yerine daha pratik bir yöntem arıyorum aslında.
Cevapla
#5
Merhaba, 
TEdit nesnesinden türetilen basit bir EditBox nesnesi.

unit KodAmelesi;

interface

uses
 System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls, Vcl.ExtCtrls;


type
 TKAEdit = class(TEdit)
 strict private
   FVeri: string;
 published
  property Veri : string read FVeri write FVeri;
 protected
  procedure DblClick(Sender : TObject);
  procedure Exit(Sender : TObject);
 public
  constructor Create(AOwner : TComponent); override;
 end;

procedure Register;

implementation

uses
 System.StrUtils;

procedure Register;
begin
RegisterComponents('Kod Amelesi', [TKAEdit]);
end;


{ TKAEdit }

constructor TKAEdit.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 OnDblClick := DblClick;
 OnExit     := Exit;
end;

procedure TKAEdit.DblClick(Sender: TObject);
begin
Self.Text := FVeri;
end;

procedure TKAEdit.Exit(Sender: TObject);
var tmpStr : string;
begin
FVeri := Self.Text;
tmpStr := Self.Text;
{
 Açıklama : StuffString fonksiyonu rmzgenius tarafından verilen cevaptan alınmıştır.
 Bağlantı : http://www.delphican.com/showthread.php?...2#pid28932
 Tarih    : 20190517
}
Self.Text := StuffString(tmpStr, 2, 4, '*****');
end;

end.
Cevapla
#6
(17-05-2019, Saat: 10:19)Pervane Adlı Kullanıcıdan Alıntı: Peki bunu dbedit gibi bir obje üzerinde nasıl yapabiliriz? 
Veritabanından datayı aldım, her defasında araya girip maskeleme yerine daha pratik bir yöntem arıyorum aslında.

Databaseden veriyi aldığınız Query nesnesindeki Field Editorde hangi alandaki veriyi maskeleyecekseniz onu seçerek, seçtiğiniz fieldin
OnGetText eventini kullanabilirsiniz. Bu şekilde veritabanından çekilen veriyi gösterim (grid, dbedit vs) sırasında farklı şekilde gösterebilirsiniz.

procedure TfrmEkstre.SPEkstreAdGetText(Sender: TField; var Text: string;
 DisplayText: Boolean);
begin
  text := 'ne görünmesini istiyorsak';
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulama, geçerli işlem için yanlış türde bir değer kullanıyor. şeklinde hata uyarısı denizfatihi 11 2.987 30-12-2021, Saat: 13:45
Son Yorum: denizfatihi
  Adodatasetin list Şeklinde FieldType'ı Var mı? Emrah Karagöz 0 341 28-12-2021, Saat: 17:46
Son Yorum: Emrah Karagöz
  PDF datasını text şeklinde okuma mrcdmr 2 817 15-09-2021, Saat: 16:04
Son Yorum: mrcdmr
  Daire Şeklinde Progressbar yhackup 11 7.123 10-04-2019, Saat: 15:54
Son Yorum: Tuğrul HELVACI
  klasörde bulunan dosyaları slide şeklinde oynatma Bay_Y 4 3.911 23-03-2018, Saat: 09:51
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi