Colocar Focus no botao do messagedlg

07/07/2008

3

olá pessoal quero colocar o focus no botao do messagedlg
Exemplo: SIm ou Não
quero deixar o focus no botao Não.

Como proceder

abraços
fabio Correa


Responder

Posts

08/07/2008

Webjoel

Olá!

  Keybd_Event(Vk_Right, 0, 0, 0);
  if MessageDlg(´Texto da Mensagem.´, mtConfirmation, [mbYes, mbNo], 0)  = mrYes then
  begin
    //codigo
  end;



Responder

08/07/2008

Webjoel

Ah...

Para completar...

Esse código que postei faz o foco ir para o botão não, o melhor é você criar uma função para agilizar o seu trabalho, neste caso é só passar um parametro para focar o ´não´ ou não fazer nada e deixar o foco no sim.

Espero ter ajudado. Boas Compilações!


Responder

08/07/2008

Marco Salles

Voce pode criar um form dinamico , com esses botoes ou melhor ainda
criar um MessageDlg Personalizado..

Tipo isto :

function MeuMessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons; IndiceHelp: LongInt): Word;
var
 Mensagem: TForm;
begin
Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
Mensagem.HelpContext := IndiceHelp;
with Mensagem do
  begin
   if FindComponent(´NO´) <> nil then
      ActiveControl:=Tbutton(FindComponent(´NO´));
end;
Result := Mensagem.ShowModal;
Mensagem.Free;
end;


Para ´Chamar ´ é da mesma forma que o messageDlg Original


if MeuMessageDlg(´Meu MessageDLG´,mtinformation,[mbYes, mbNo],0) = mrYes then
  Showmessage(´sim´)
else
 Showmessage(´no´);


Da para fazer muitas coisas com a Caixa de Dialodo entre outras : Selecionar a Linguagem Mudar a Linguagem do Caption da Caixa de Dialogo Mudar o Linguagem dos Captions do Botão Selecionar um Botão especifico para receber o Foco entre outros ...


espero ter sido útil...


Responder

08/07/2008

Marco Salles

Voce pode criar um form dinamico , com esses botoes ou melhor ainda
criar um MessageDlg Personalizado..

Tipo isto :

function MeuMessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons; IndiceHelp: LongInt): Word;
var
 Mensagem: TForm;
begin
Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
Mensagem.HelpContext := IndiceHelp;
with Mensagem do
  begin
   if FindComponent(´NO´) <> nil then
      ActiveControl:=Tbutton(FindComponent(´NO´));
end;
Result := Mensagem.ShowModal;
Mensagem.Free;
end;


Para ´Chamar ´ é da mesma forma que o messageDlg Original


if MeuMessageDlg(´Meu MessageDLG´,mtinformation,[mbYes, mbNo],0) = mrYes then
  Showmessage(´sim´)
else
 Showmessage(´no´);


Da para fazer muitas coisas com a Caixa de Dialodo entre outras : Selecionar a Linguagem Mudar a Linguagem do Caption da Caixa de Dialogo Mudar o Linguagem dos Captions do Botão Selecionar um Botão especifico para receber o Foco entre outros ...


espero ter sido útil...


Responder

08/07/2008

Luiz Henrique

Blz Fabio...

a nao ser que voce seja obrigado a usar o MessageDLg...
Tem uma funcao que podera fazer isto mais ´naturalmente´

if MessageBox(application.handle,pchar(´Excluir este Registro ? ´),
´Exclusao´,MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON2) = mrYes then begin
end....

...no quarto parametro...voce podera indicar adicionando o MB_DEFBUTTON1..2...3 ao qual button deseja colocar o foco....

T+


Responder

08/07/2008

Luiz Henrique

Blz Fabio...

a nao ser que voce seja obrigado a usar o MessageDLg...
Tem uma funcao que podera fazer isto mais ´naturalmente´

if MessageBox(application.handle,pchar(´Excluir este Registro ? ´),
´Exclusao´,MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON2) = mrYes then begin
end....

...no quarto parametro...voce podera indicar adicionando o MB_DEFBUTTON1..2...3 ao qual button deseja colocar o foco....

T+


Responder