Fórum Problema com showmodal #348608
07/11/2007
0
Saindo do programa e voltando o problema some.
Alguém pode me explicar este pepino?
Pode ser o Windows XP?
Crpavao
Curtir tópico
+ 0Posts
07/11/2007
Massuda
Para ajudar a minimizar isso, inclua isto no seu form modal...
type TSeuFormModal = class(TForm) ... protected procedure CreateParams(var Params: TCreateParams); override; ... end; ... procedure TSeuFormModal.CreateParams(var Params: TCreateParams); begin inherited; if Assigned(Owner) and (Owner is TWincontrol) then Params.WndParent := TWinControl(Owner).handle else if Assigned(Screen.Activeform) then Params.WndParent := Screen.Activeform.Handle; end;
Gostei + 0
07/11/2007
Crpavao
Gostei + 0
13/11/2007
Crpavao
Substitui todos eles por um form criado por mim, mas gostaria de saber se tem solução.
Grato.
Gostei + 0
13/11/2007
Massuda
Note que o primeiro parametro do MessageBox é o handle de uma janela, sempre informe o handle da janela ativa do seu programa (algo do tipo SeuForm.Handle) ou informe Screen.ActiveForm.Handle.
Gostei + 0
14/11/2007
Crpavao
Mais uma vez, obrigado pela força.
Gostei + 0
14/11/2007
Martins
Mais uma vez, obrigado pela força.[/quote:d9d0e2dc68]
Algo mais ou menos assim.
MessageBox(Form2.Handle, pchar(´Testando..´), pchar(´Informação´), mb_ok);
Boa sorte e bons códigos.
Gostei + 0
14/11/2007
Fabio Ferreira
Eu utilizo o application.messagebox(...) da unit forms que esta encapsulando a windows.messagebox. Tem alguma vantagem ou é melhor de uma forma ou de outra ?
Fabio
Gostei + 0
14/11/2007
Massuda
Gostei + 0
15/11/2007
Fabio Ferreira
Apos o codigo abaixo a mensagem simplesmente nao aparece :
Frmtroca:= TFrmtroca.create( nil );
result:= Frmtroca.showmodal = mrok;
Frmtroca.release;
retorno:= windows.messagebox( screen.activeform.handle, pchar( mensagem )....;
Neste caso a mensagem nao é apresentada para o usuario, pulando o comando, retornando com 0 (zero);
O que estamos fazendo e testando o ´retorno´ e se for iqual a zero apresenta a mensagem novamente e aí sempre aparece.
Esse problema somente acontece apos a chamada de um form, como no exemplo acima.
O messagebox foi testado tanto com a Windows. quanto com o Application.
Aonde esta o erro desse caso ?
Fabio
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)