請問個簡單問題 ( 积分: 6 )

  • 主题发起人 主题发起人 zhongsir
  • 开始时间 开始时间
Z

zhongsir

Unregistered / Unconfirmed
GUEST, unregistred user!
有哪個函數,可以象&nbsp;inputbox&nbsp;函數一樣出現對話框讓用戶輸入內容,但內容要用‘*’用代替?<br><br>就象登陸時輸密碼一樣,我不想用窗體。
 
只能自己写窗体。
 
function&nbsp;TForm1.Input_password(const&nbsp;ACaption,&nbsp;APrompt:&nbsp;string;<br>&nbsp;&nbsp;Value:&nbsp;string):&nbsp;string;<br>&nbsp;&nbsp;function&nbsp;GetAveCharSize(Canvas:&nbsp;TCanvas):&nbsp;TPoint;<br>&nbsp;var<br>&nbsp;&nbsp;&nbsp;I:&nbsp;Integer;<br>&nbsp;&nbsp;&nbsp;Buffer:&nbsp;array[0..51]&nbsp;of&nbsp;Char;<br>&nbsp;begin<br>&nbsp;&nbsp;&nbsp;for&nbsp;I&nbsp;:=&nbsp;0&nbsp;to&nbsp;25&nbsp;do&nbsp;Buffer&nbsp;:=&nbsp;Chr(I&nbsp;+&nbsp;Ord('A'));<br>&nbsp;&nbsp;&nbsp;for&nbsp;I&nbsp;:=&nbsp;0&nbsp;to&nbsp;25&nbsp;do&nbsp;Buffer[I&nbsp;+&nbsp;26]&nbsp;:=&nbsp;Chr(I&nbsp;+&nbsp;Ord('a'));<br>&nbsp;&nbsp;&nbsp;GetTextExtentPoint(Canvas.Handle,&nbsp;Buffer,&nbsp;52,&nbsp;TSize(Result));<br>&nbsp;&nbsp;&nbsp;Result.X&nbsp;:=&nbsp;Result.X&nbsp;div&nbsp;52;<br>&nbsp;end;<br><br>var<br>&nbsp;&nbsp;Form:&nbsp;TForm;<br>&nbsp;&nbsp;Prompt:&nbsp;TLabel;<br>&nbsp;&nbsp;Edit:&nbsp;TEdit;<br>&nbsp;&nbsp;DialogUnits:&nbsp;TPoint;<br>&nbsp;&nbsp;ButtonTop,&nbsp;ButtonWidth,&nbsp;ButtonHeight:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;'';<br>&nbsp;&nbsp;Form&nbsp;:=&nbsp;TForm.Create(nil);<br>&nbsp;&nbsp;//Windows.SetParent(Form.Handle&nbsp;,Handle);<br>&nbsp;&nbsp;form.ParentWindow:=&nbsp;handle;<br>&nbsp;&nbsp;form.FormStyle:=&nbsp;fsStayOnTop;<br>&nbsp;&nbsp;with&nbsp;Form&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Canvas.Font&nbsp;:=&nbsp;Font;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DialogUnits&nbsp;:=&nbsp;GetAveCharSize(Canvas);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BorderStyle&nbsp;:=&nbsp;bsDialog;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caption&nbsp;:=&nbsp;ACaption;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientWidth&nbsp;:=&nbsp;MulDiv(180,&nbsp;DialogUnits.X,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position&nbsp;:=&nbsp;poScreenCenter;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParentWindow:=&nbsp;handle;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prompt&nbsp;:=&nbsp;TLabel.Create(Form);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;Prompt&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parent&nbsp;:=&nbsp;Form;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caption&nbsp;:=&nbsp;APrompt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Left&nbsp;:=&nbsp;MulDiv(8,&nbsp;DialogUnits.X,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Top&nbsp;:=&nbsp;MulDiv(8,&nbsp;DialogUnits.Y,&nbsp;8);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constraints.MaxWidth&nbsp;:=&nbsp;MulDiv(164,&nbsp;DialogUnits.X,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WordWrap&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Edit&nbsp;:=&nbsp;TEdit.Create(Form);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;Edit&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parent&nbsp;:=&nbsp;Form;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Left&nbsp;:=&nbsp;Prompt.Left;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Top&nbsp;:=&nbsp;Prompt.Top&nbsp;+&nbsp;Prompt.Height&nbsp;+&nbsp;5;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Width&nbsp;:=&nbsp;MulDiv(164,&nbsp;DialogUnits.X,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passwordchar:=&nbsp;'*';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxLength&nbsp;:=&nbsp;255;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;:=&nbsp;Value;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectAll;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonTop&nbsp;:=&nbsp;Edit.Top&nbsp;+&nbsp;Edit.Height&nbsp;+&nbsp;15;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonWidth&nbsp;:=&nbsp;MulDiv(50,&nbsp;DialogUnits.X,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonHeight&nbsp;:=&nbsp;MulDiv(14,&nbsp;DialogUnits.Y,&nbsp;8);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;TButton.Create(Form)&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parent&nbsp;:=&nbsp;Form;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caption&nbsp;:=&nbsp;'确定';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModalResult&nbsp;:=&nbsp;mrOk;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetBounds(MulDiv(38,&nbsp;DialogUnits.X,&nbsp;4),&nbsp;ButtonTop,&nbsp;ButtonWidth,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonHeight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;TButton.Create(Form)&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parent&nbsp;:=&nbsp;Form;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caption&nbsp;:=&nbsp;'取消';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModalResult&nbsp;:=&nbsp;mrCancel;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetBounds(MulDiv(92,&nbsp;DialogUnits.X,&nbsp;4),&nbsp;Edit.Top&nbsp;+&nbsp;Edit.Height&nbsp;+&nbsp;15,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonWidth,&nbsp;ButtonHeight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form.ClientHeight&nbsp;:=&nbsp;Top&nbsp;+&nbsp;Height&nbsp;+&nbsp;13;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;ShowModal&nbsp;=&nbsp;mrOk&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;Edit.Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form.Free;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>end;
 
謝謝,看樣子,只有動態創建窗體了。
 
后退
顶部