首页  编辑  

InputBox

Tags: /超级猛料/VCL/Form,窗体/模态窗体/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` function InputBox(const ACaption, APrompt: string;

 var Value: string): Boolean;

var

 Form: TForm;

 Prompt: TLabel;

 Edit: TEdit;

 DialogUnits: TPoint;

 ButtonTop, ButtonWidth, ButtonHeight: Integer;

begin

 Result := False;

 Form := TForm.Create(Application);

 with Form do

   try

     Font.Handle:=GetStockObject(Default_Gui_font);

     Canvas.Font := Font;

     DialogUnits := GetAveCharSize(Canvas);

     BorderStyle := bsDialog;

     Caption := ACaption;

     ClientWidth := MulDiv(180, DialogUnits.X, 4);

     ClientHeight := MulDiv(63, DialogUnits.Y, 8);

     Position := poScreenCenter;

     Prompt := TLabel.Create(Form);

     with Prompt do

     begin

       Parent := Form;

       AutoSize := True;

       Left := MulDiv(8, DialogUnits.X, 4);

       Top := MulDiv(8, DialogUnits.Y, 8);

       Caption := APrompt;

     end;

     Edit := TEdit.Create(Form);

     with Edit do

     begin

       Parent := Form;

       Left := Prompt.Left;

       Top := MulDiv(19, DialogUnits.Y, 8);

       Width := MulDiv(164, DialogUnits.X, 4);

       MaxLength := 255;

       Text := Value;

       SelectAll;

     end;

     ButtonTop := MulDiv(41, DialogUnits.Y, 8);

     ButtonWidth := MulDiv(50, DialogUnits.X, 4);

     ButtonHeight := MulDiv(14, DialogUnits.Y, 8);

     with TButton.Create(Form) do

     begin

       Parent := Form;

       Caption := '确定(&Y)';

       ModalResult := mrOk;

       Default := True;

       SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth,

         ButtonHeight);

     end;

     with TButton.Create(Form) do

     begin

       Parent := Form;

       Caption := '取消(&C)';

       ModalResult := mrCancel;

       Cancel := True;

       SetBounds(MulDiv(92, DialogUnits.X, 4), ButtonTop, ButtonWidth,

         ButtonHeight);

     end;

     if ShowModal = mrOk then

     begin

       Value := Edit.Text;

       Result := True;

     end;

   finally

     Form.Free;

   end;

end;