delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيفة التغير في خصائص InputQuery ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم


أود إستغلال صندوق الحوار InputQuery الموجود ضمن مكتبة الدلفي كإدخال كلمة السر و التي يجب أن تكون مخفية بهذا الشكل ( *****)

السؤال هل ذلك ممكن؟
و كيف سيكون ذلك ؟

جزاكم الله خيرا .
السلام عليكم هنا ارفق مثال على استعمال التابع inputQuery
,و المراد إخفاء كلمة السر اثناء الادخال
كود :
const motdepasse='Delphi4arab'; var reponse:string; nbressais:integer; begin nbressais:=1; reponse:=''; inputquery('verification du mot de passe','entrer le mot de passe',reponse); if reponse<>motdepasse then repeat if reponse='' then showmessage('Mot de passe obligatoire!') else showmessage('Mot de passe incorrect.veuillez recommencez!'); nbressais:=nbressais+1; reponse:=''; inputquery('Verification du mot de passe','Entrer le mot de passe',Reponse); until(reponse=motdepasse)or(nbressais=3); if(nbressais=3)and(reponse<>motdepasse)then begin showmessage('Vous avez oublier votre mot de passe.Veuiller contacter l''administrateur systéme'); close; end
السلام عليكم ورحمة الله وبركاته

استخدم نموذج خاص فيه ال
PHP كود :
Edit.passwordChar=* 
اشكرك على الرد ولكني لا أرغب في إستعمال فورم بها edit
لكني أركزفي سؤالي على inputQuery
السلام عليكم ورحمة الله وبركاته

الطريقة فيما أعلم أنك لا بد من إضافة خاصية كلمة السر(*) في خانة النص الموجودة داخل ال inputquery

ولكي تتمكن من ذلك يجب عليك معرفة الـ Handle

إليك هذا الرابط في كود التغيير
كود :
http://www.delphipages.com/forum/showthread.php?tid=172547

ومن الأفضل لك أن تجعل فورم خاصة نستخدمها متى أردت
وعليكم السلام ورحمة الله
الفكرة تعتمد على التعديل على المكون من خلال مقبضه كما قال الأخ alkofily
مثال Thomas Stutz
PHP كود :
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; 
بطريقة أخرى يمكنك إعادة تعريف CreateMessageDialog من المكتبة Dialogs.pas بالشكل الذي تريد.
بالتوفيق.
اشكركم

ساحاول العمل بما قاله الأخ alkofily.

جزاكم الله خيرا