Inputbox:Delphi InputBox?
answer:=Inputbox('a','b','c');
iyi çalışır, ancak ben sadece küçük yıldız yerine yazdığınız karakter görmek şifre kutusu gibi, bir maskeli birini arıyorum.
Inputbox:Delphi InputBox?
answer:=Inputbox('a','b','c');
iyi çalışır, ancak ben sadece küçük yıldız yerine yazdığınız karakter görmek şifre kutusu gibi, bir maskeli birini arıyorum.
Düzenleme denetimini parola girişi için işaretleyecek olan InputBox
tarafından oluşturulan düzenleme denetimine Windows iletisi gönderebilirsiniz. Kod aşağıda http://www.swissdelphicenter.ch/en/showcode.php?id=1208 alınan:
const
InputBoxMessage = WM_USER + 200;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage);
var
hInputForm, hEdit, hButton: HWND;
begin
hInputForm := Screen.Forms[0].Handle;
if (hInputForm <> 0) then
begin
hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
{
// Change button text:
hButton := FindWindowEx(hInputForm, 0, 'TButton', nil);
SendMessage(hButton, WM_SETTEXT, 0, Integer(PChar('Cancel')));
}
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
InputString: string;
begin
PostMessage(Handle, InputBoxMessage, 0, 0);
InputString := InputBox('Input Box', 'Please Enter a Password', '');
end;
Delphi'nin kutudan böyle bir şey içerdiğini sanmıyorum. Belki de http://www.torry.net/ numaralı telefondan veya internette başka bir yerde bulabilirsiniz. Aksi halde sadece kendiniz yazın - o kadar da zor olmamalı. :-) "Yeterince büyük" bir Delphi sürümüne sahipseniz, kaynak koduna bile bakabilirsiniz.
Uli.
InputBox, formu dinamik olarak oluşturan Dialog'larda InputQuery işlevini çağırır. Bu işlevin bir kopyasını her zaman yapabilir ve TEdit'in PasswordChar özelliğini değiştirebilirsiniz.
XE2'de yılında InputBox()
ve InputQuery()
doğal TEdit
girişini maskeleme desteklemek için güncellendi, bu özellik henüz bildirilmemiş olup, her ne kadar. APrompt
parametrenin ilk karakteri herhangi bir değere ayarlanırsa < #32
sonra TEdit.PasswordChar
, *
ayarlanır örn:
answer := InputBox('a', #31'b', 'c');
Şimdi bu sezgisel! –
'InputQuery()' ('InputBox() ') dahili olarak kullanan çoklu girişler ve' OnCloseQuery' geri çağrıları için yeni parametrelerle genişlediklerine rağmen, yeni bir parametre oluşturmak için rahatsız olmazlardı. şifre maskeleme belirleniyor mu? Çoklu istemler, her sefere yönelik maskelemeyi destekler, ancak bu arabirimi daha sezgisel hale getirmiş olabilirler. Özel kurşun karakterleri olan bir dizi diziyi kullanmak yerine, dizgeyi/maske çiftlerini içeren bir dizi kayıt kullanmış olmalıdırlar. Bu, 'TEdit' kontrolleri üzerinde daha iyi kontrol için gelecekteki alanların eklenmesine bile izin verecek. Ama hayır. –
Vay! yürütme ertelemek için zarif bir yol :-) –