Q&A

  • MessageBox의 한글처리...
MessageDlg에서 캡션과 버튼의 캡션을 한글로

표시하려면 어떻게 해야 하는지요?

MessageBox를 사용해서 앞에 (?) 또는 (X)등의 이미지를 나타낼수 있나여?



2  COMMENTS
  • Profile
    액션가면 2001.01.10 03:52


    안녕하세염~



    정 그런기능이 필요하시다면 직접 만들어보심 어떨련지염..

    예전 프로젝트에서 사용했던 MessageBox예제를 뒤에 붙여넣을게여^^

    MBox라는것은 직접만든 메세지박스루틴의 함수입니다..

    참고로 FrmMBox 폼에는 버튼세개, 이미지 하나, 라벨 하나있습니다.

    좋은하루되세염~





    procedure TForm1.Button1Click(Sender: TObject);

    begin

    if MBox('현재 부서명을 삭제하시면 다른작업에서 이 부서명을'+#13#13+

    '참조하실 수 없게됩니다.'+#13#13#13+

    '삭제 하시겠습니까?',

    '자료삭제',QS_YESNO) = 1 then FrmAcBuseo.TBAcBuseo.Delete;



    end;





    -----------------

    UMBOX.pas

    -----------------



    unit UMBox;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    AmpBtn, ExtCtrls, StdCtrls, Dtmisc, RxGIF;



    type

    TQuestionStyle = ( QS_AppendEdit, QS_OK, QS_YESNO,QS_YESNOCANCEL );

    TFrmMBox = class(TForm)

    LBLMain: TLabel;

    ImgMain: TImage;

    WAB01: TButton;

    WAB02: TButton;

    WAB03: TButton;

    LBL01: TLabel;

    LBL02: TLabel;

    LBL03: TLabel;

    procedure WAB03Click(Sender: TObject);

    procedure WAB02Click(Sender: TObject);

    procedure WAB01Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormKeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    private

    MBoxResult : integer;

    QSOption : TQuestionStyle;

    public

    end;



    var

    FrmMBox: TFrmMBox;



    function MBox( Value,Title : string; Option : TQuestionStyle ): integer;



    implementation



    {$R *.DFM}



    function MBox( Value,Title : string; Option : TQuestionStyle ): integer;

    begin

    FrmMBox := TFrmMBox.Create(Application);

    with FrmMBox do begin

    Caption := Title;

    LBLMain.Caption := Value;

    QSOption := Option;

    case QSOption of

    QS_AppendEdit : begin

    WAB02.Visible := True;

    WAB03.Visible := True;

    LBL02.Visible := True;

    LBL03.Visible := True;

    WAB01.Caption := '취소';

    WAB02.Caption := '수정';

    WAB03.Caption := '추가';

    LBL01.Caption := 'Escape';

    LBL02.Caption := 'F2';

    LBL03.Caption := 'F3';

    end;

    QS_OK : begin

    WAB02.Visible := False;

    WAB03.Visible := False;

    LBL02.Visible := False;

    LBL03.Visible := False;

    WAB01.Caption := '확인';

    LBL01.Caption := 'Enter';

    end;

    QS_YESNO : begin

    WAB02.Visible := True;

    WAB03.Visible := False;

    LBL02.Visible := True;

    LBL03.Visible := False;

    WAB01.Caption := '아니오';

    WAB02.Caption := '예';

    LBL01.Caption := 'Escape';

    LBL02.Caption := 'Enter';

    end;

    QS_YESNOCANCEL : begin

    WAB02.Visible := True;

    WAB03.Visible := True;

    LBL02.Visible := True;

    LBL03.Visible := True;

    WAB01.Caption := '취소';

    WAB02.Caption := '아니오';

    WAB03.Caption := '예';

    LBL01.Caption := 'F11';

    LBL02.Caption := 'Escape';

    LBL03.Caption := 'Enter';

    end;



    end;

    ShowModal;

    Result := MBoxResult;

    Free;

    end;

    end;



    procedure TFrmMBox.WAB03Click(Sender: TObject);

    begin

    MBoxResult := 2;

    Close;

    end;



    procedure TFrmMBox.WAB02Click(Sender: TObject);

    begin

    MBoxResult := 1;

    Close;

    end;



    procedure TFrmMBox.WAB01Click(Sender: TObject);

    begin

    MBoxResult := 0;

    Close;

    end;



    procedure TFrmMBox.FormCreate(Sender: TObject);

    begin

    MBoxResult := -1;

    end;



    procedure TFrmMBox.FormKeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    case QSOption of

    QS_AppendEdit : begin

    case Key of

    VK_F3 : WAB03Click(Sender);

    VK_F2 : WAB02Click(Sender);

    VK_ESCAPE : WAB01Click(Sender);

    end;

    end;

    QS_OK : begin

    case Key of

    VK_ESCAPE,VK_RETURN : WAB01Click(Sender);

    end;

    end;

    QS_YESNO : begin

    case Key of

    VK_ESCAPE : WAB01Click(Sender);

    VK_RETURN : WAB02Click(Sender);

    end;

    end;

    QS_YESNOCANCEL : begin

    case Key of

    VK_RETURN : WAB03Click(Sender);

    VK_ESCAPE : WAB02Click(Sender);

    VK_F11 : WAB01Click(Sender);

    end;

    end;



    end;

    end;



    end.





    과객 wrote:

    > MessageDlg에서 캡션과 버튼의 캡션을 한글로

    > 표시하려면 어떻게 해야 하는지요?

    > MessageBox를 사용해서 앞에 (?) 또는 (X)등의 이미지를 나타낼수 있나여?

    >

  • Profile
    xdelphi 2001.01.10 03:49
    과객 wrote:

    > MessageDlg에서 캡션과 버튼의 캡션을 한글로

    > 표시하려면 어떻게 해야 하는지요?

    > MessageBox를 사용해서 앞에 (?) 또는 (X)등의 이미지를 나타낼수 있나여?

    >



    C:Program FilesBorlandDelphi5SourceVclDialogs.pas의

    Dialogs.pas 소스를 보시면 1575번째 줄에



    ButtonNames: array[TMsgDlgBtn] of string = (

    'Yes', 'No', 'OK', 'Cancel', 'Abort', 'Retry', 'Ignore', 'All', 'NoToAll', 'YesToAll', 'Help');



    위와같은 소스코드가있는데....이것을 한글로바꾸시고 컴파일하시고 Dialogs.dcu파일을

    덮어 씌우세요.