全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2204
推到 Plurk!
推到 Facebook!

INPUTBOX中的确认,取消

尚未結案
zhouying
一般會員


發表:7
回覆:4
積分:2
註冊:2004-12-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-31 12:28:21 IP:210.22.xxx.xxx 未訂閱
我想请问,有什么办法可以使INPUTBOX,MESSAGEDLG中的OK,CANCEL按钮变成中文的“确认”“取消”呢?
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-31 13:00:54 IP:222.35.xxx.xxx 未訂閱
引言: 我想请问,有什么办法可以使INPUTBOX,MESSAGEDLG中的OK,CANCEL按钮变成中文的“确认”“取消”呢?
MESSAGEDLG可以改成 APPLICATION.MessageBox( '按钮变成中文', '提示', MB_OK);
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-31 13:05:45 IP:219.129.xxx.xxx 未訂閱
引言: 我想请问,有什么办法可以使INPUTBOX,MESSAGEDLG中的OK,CANCEL按钮变成中文的“确认”“取消”呢?
zhouying 您好: 好像不能直接进行修改,自己写一个inputbox,参考下列:
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;

const
  SMsgDlgOK='确定';
  SMsgDlgCancel='取消';    implementation    {$R *.dfm}    function GetAveCharSize(Canvas: TCanvas): TPoint;
var
  I: Integer;
  Buffer: array[0..51] of Char;
begin
  for I := 0 to 25 do Buffer[I] := Chr(I   Ord('A'));
  for I := 0 to 25 do Buffer[I   26] := Chr(I   Ord('a'));
  GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
  Result.X := Result.X div 52;
end;    function InputQuery(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
      Canvas.Font := Font;
      DialogUnits := GetAveCharSize(Canvas);
      BorderStyle := bsDialog;
      Caption := ACaption;
      ClientWidth := MulDiv(180, DialogUnits.X, 4);
      Position := poScreenCenter;
      Prompt := TLabel.Create(Form);
      with Prompt do
      begin
        Parent := Form;
        Caption := APrompt;
        Left := MulDiv(8, DialogUnits.X, 4);
        Top := MulDiv(8, DialogUnits.Y, 8);
        Constraints.MaxWidth := MulDiv(164, DialogUnits.X, 4);
        WordWrap := True;
      end;
      Edit := TEdit.Create(Form);
      with Edit do
      begin
        Parent := Form;
        Left := Prompt.Left;
        Top := Prompt.Top   Prompt.Height   5;
        Width := MulDiv(164, DialogUnits.X, 4);
        MaxLength := 255;
        Text := Value;
        SelectAll;
      end;
      ButtonTop := Edit.Top   Edit.Height   15;
      ButtonWidth := MulDiv(50, DialogUnits.X, 4);
      ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
      with TButton.Create(Form) do
      begin
        Parent := Form;
        Caption := SMsgDlgOK;
        ModalResult := mrOk;
        Default := True;
        SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth,
          ButtonHeight);
      end;
      with TButton.Create(Form) do
      begin
        Parent := Form;
        Caption := SMsgDlgCancel;
        ModalResult := mrCancel;
        Cancel := True;
        SetBounds(MulDiv(92, DialogUnits.X, 4), Edit.Top   Edit.Height   15,
          ButtonWidth, ButtonHeight);
        Form.ClientHeight := Top   Height   13;
      end;
      if ShowModal = mrOk then
      begin
        Value := Edit.Text;
        Result := True;
      end;
    finally
      Form.Free;
    end;
end;    function MyInputBox(const ACaption, APrompt, ADefault: string): string;
begin
  Result := ADefault;
  InputQuery(ACaption, APrompt, Result);
end;    //系统的inputbox
procedure TForm1.Button1Click(Sender: TObject);
var
  InputString: string;
begin
  InputString:= InputBox('Input Box', 'Prompt', 'Default string');
  showmessage(InputString);
end;
//自己所写的inputbox
procedure TForm1.Button2Click(Sender: TObject);
var
  InputString: string;
begin
  InputString:=MyInputBox('Input Box', 'Prompt', 'Default string');
  showmessage(InputString);
end;    end.
============================= 为什么经过多年以后,得失的过程如此冷漠 =============================
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-31 13:07:03 IP:219.129.xxx.xxx 未訂閱
多了一篇,烦版主给予删除< >这网络真的气人< > 發表人 - DEITY 於 2004/12/31 13:15:30
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-31 13:11:23 IP:59.32.xxx.xxx 未訂閱
多了一篇,烦版主给予删除< >这网络真的气人< > 發表人 - DEITY 於 2004/12/31 13:16:13
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-31 13:14:21 IP:202.39.xxx.xxx 未訂閱
參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30372 修改 SMsgDlgOK 與 SMsgDlgCancel 這兩個 const 即可 -- QBQ: 我能做什麼?
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-31 13:18:24 IP:222.35.xxx.xxx 未訂閱
引言: 參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30372 修改 SMsgDlgOK 與 SMsgDlgCancel 這兩個 const 即可 -- QBQ: 我能做什麼?
説明一下: 剛才APPLICATION.MessageBox( '按钮变成中文', '提示', MB_OK);中的MB_OK應該成MBOK。
系統時間:2024-07-02 14:39:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!