본문 바로가기
Delphi Tip/+Tip

델파이 메세지다이어로그(MessageDialog) 원하는 키 받기

by MonoSoft 2023. 11. 30.
728x90
반응형

델파이 메세지다이어로그(MessageDialog) 원하는 키 받기

728x90

 

 

 

 

.

.

.

private

  { Private declarations }

protected

public

  { Public declarations }

Procedure HelpBoKeyPress(Sender : TObject; var Key : Char);

end;

 

var

Form1: TForm1;

LegalKeys : String;

 

procedure TForm1.Button1Click(Sender: TObject);

Var

  S : String;

Begin

  LegalKeys := 'ABC123';

  S := '원하는 항목을 선택하세요!'#13#13'' +

         ' A 키눌러라'#13'' +

         ' B.키눌러라'#13'' +

         ' C.키눌러라'#13'' +

         ' 1.키눌러라'#13'' +

         ' 2.키눌러라'#13'' +

         ' 3.키눌러라';

 

  With CreateMessageDialog(S, mtConfirmation, []) do

  begin

    Try

      onKeyPress := HelpBoKeyPress;

 

      if ShowModal = mrOk Then

        Label1.Caption := 'You Pressed: ' +  LegalKeys[Tag]

      else

        Label1.Caption := 'You Pressed: ' + 'Cancel';

      Finally

        Free;

      End;

    End;

  end;

 

procedure TForm1.HelpBoKeyPress(Sender: TObject; var Key: Char);

Begin

  if Pos(Upcase(Key), LegalKeys) > 0 Then

  begin

    TForm(Sender).Tag := Pos(Upcase(Key), LegalKeys);

    TForm(Sender).ModalResult := mrOk;

  end

  else

    If Key = #27 Then TForm(Sender).ModalResult := mrCancel;

end;

 

728x90
반응형

댓글