MessageDlg foco no botao NO
if MessageDlg(´Permite alterar padrão de quem fatura: ´, mtConfirmation, [mbYes,mbNo], 0) = mrYes then
Tenho essa msg, e gostaria que o foco ficasse sempre no No, e nao no Yes, como esta fazendo
No aguardo
Evandro
Tenho essa msg, e gostaria que o foco ficasse sempre no No, e nao no Yes, como esta fazendo
No aguardo
Evandro
Evandro_araujo
Curtidas 1
Melhor post
Martins
13/12/2005
Nesse caso é só usar o MessageBox.
Espero q ajude!!!
Boa Sorte!!!
MessageBox (Handle, Messagem, Caption, Botoes)
MessageBox(0, Pchar(´Testando o MessageBox!´), ´Teste´, MB_YESNO+MB_DEFBUTTON2+ MB_ICONQUESTION);
Espero q ajude!!!
Boa Sorte!!!
GOSTEI 1
Mais Respostas
Rafael Mattos
13/12/2005
O Mesmo Problema que eu tive eu procurei em varios lugares e não achei, a minha unica solução foi fazer uma caixa de dialogo personalizada...
GOSTEI 0
Adriano Santos
13/12/2005
Nesse caso é só usar o MessageBox.
Espero q ajude!!!
Boa Sorte!!!
MessageBox (Handle, Messagem, Caption, Botoes)
MessageBox(0, Pchar(´Testando o MessageBox!´), ´Teste´, MB_YESNO+MB_DEFBUTTON2+ MB_ICONQUESTION);
O Mesmo Problema que eu tive eu procurei em varios lugares e não achei, a minha unica solução foi fazer uma caixa de dialogo personalizada...
Bom amigo, Eu sempre dou a mesma dica. Se quiseres usar MessageDlg então deve criar sua própria função MessageDlg, se este não for o problema use o MessageBox como recomendado pelo meu camarada [b:c93a91e124]Martins[/b:c93a91e124]. Logo abaixo confira um algoritimo que criei para fazer minha MessageDlg personalizada:
function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone; Portugues: Boolean = True): Word; var I: Integer; Mensagem: TForm; begin Mensagem := CreateMessageDialog(Msg, AType, Abuttons); Mensagem.HelpContext := IndiceHelp; with Mensagem do begin for i := 0 to ComponentCount - 1 do begin if (Components[i] is TButton) then begin if (TButton(Components[i]).ModalResult = DefButton) then begin ActiveControl := TWincontrol(Components[i]); end; end; end; if Portugues then begin if Atype = mtConfirmation then Caption := ´Confirmação´ else if AType = mtWarning then Caption := ´Aviso´ else if AType = mtError then Caption := ´Erro´ else if AType = mtInformation then Caption := ´Informação´; end; end; if Portugues then begin TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´; TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´; TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´; TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´; TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´; TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´; TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´; TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´; end; Result := Mensagem.ShowModal; Mensagem.Free; end;
Dá pra fazer a festa com isso. :D
GOSTEI 0
Martins
13/12/2005
Muito bom esse algoritimo bolado por vc [b:7b511f54d6]Adriano[/b:7b511f54d6], tem a opção de um botão default, blz mesmo. Mandou bem novamente.
Postei o MessageBox por parecer ser uma solução mais imediata, mas seu código tá show!!
:D
Postei o MessageBox por parecer ser uma solução mais imediata, mas seu código tá show!!
:D
GOSTEI 0
Adriano Santos
13/12/2005
Muito bom esse algoritimo bolado por vc [b:6486f02dd8]Adriano[/b:6486f02dd8], tem a opção de um botão default, blz mesmo. Mandou bem novamente.
Postei o MessageBox por parecer ser uma solução mais imediata, mas seu código tá show!!
:D
Obrigado velhinho. Na verdade tenho ainda outra solução para os mais ´avançadinhos´. Um MessageDlg com CheckBox, esse é bem legal.
Isso mata também um problema na tradução dos botões que todo mundo tenta fazer e sempre dá uns olés nos iniciantes.
Se liga a solução com o CheckBox:
function Dc_MessageDlgCheck(Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult; Portugues: Boolean; Checar: Boolean; MsgCheck: string; Funcao: TProcedure): Word; var I: Integer; Mensagem: TForm; Check: TCheckBox; begin Check := nil; Mensagem := CreateMessageDialog(Msg, AType, Abuttons); Mensagem.HelpContext := IndiceHelp; with Mensagem do begin for i := 0 to ComponentCount - 1 do begin if (Components[i] is TButton) then begin if (TButton(Components[i]).ModalResult = DefButton) then begin ActiveControl := TWincontrol(Components[i]); end; end; end; if Portugues then begin if Atype = mtConfirmation then Caption := ´Confirmação´ else if AType = mtWarning then Caption := ´Aviso´ else if AType = mtError then Caption := ´Erro´ else if AType = mtInformation then Caption := ´Informação´; end; end; if Portugues then begin TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´; TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´; TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´; TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´; TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´; TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´; TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´; TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´; end; if Checar then begin Mensagem.ClientHeight := Mensagem.ClientHeight + 20; Check := TCheckBox.Create(Mensagem); Check.Parent := Mensagem; Check.Left := 15; Check.Top := Mensagem.ClientHeight - 20; Check.Visible := True; Check.Caption := MsgCheck; Check.Width := Mensagem.ClientWidth - 10; end; Result := Mensagem.ShowModal; if Check <> nil then if Check.Checked then Funcao; Mensagem.Free; end;
[b:6486f02dd8]Use assim[/b:6486f02dd8]
procedure TForm1.Button1Click(Sender: TObject); procedure MostraMensagem; begin ShowMessage(´Clicou´); end; begin Dc_MessageDlgCheck(´Clique no CheckBox.´, mtInformation, [mbYes, mbNo], 0, mrNo, True, False, ´Clique neste CheckBox´, @MostraMensagem); end;
GOSTEI 0
Martins
13/12/2005
Blz Velhinho !!!
Mandou bem outra vez, realmente essa é pro pessoal q tá mais acostumado com o Delphi, mas dá para usar na boa.
T+
Mandou bem outra vez, realmente essa é pro pessoal q tá mais acostumado com o Delphi, mas dá para usar na boa.
T+
GOSTEI 0
Evandro_araujo
13/12/2005
como ficaria a chamada da funcao acima???
GOSTEI 0