Fórum que comando devo usar? #190969

27/10/2003

0

Boa tarde,

Tenho 2 Form´s, um chamado FORM_A e outro FORM_B, a pergunta é a seguinte:
--- Preciso chamar o FORM_B através do FORM_A, quando o FORM_B for fechado, o foco deverá voltar para o FORM_A na linha seguinte ao comando que chamou o FORM_B. Qual comando devo usar par que
essa tarefa seja efetuada?.

desde já agradeço,

Marcos.


Marcao

Marcao

Responder

Posts

28/10/2003

Marcao

Alguem pode me ajudar?

Obrigado!

Marcos


Responder

Gostei + 0

28/10/2003

Fabio.hc

Tente assim:
   FORM_B.ShowModal;



Responder

Gostei + 0

28/10/2003

Marcao

Boa tarde Fabio.HC,

agradeço sua atenção, mas não funcionou, dá um erro como esse:
´Cannot make a visible window modal´

se voce souber que erro é esse, me avise, ok?,

Mesmo assim obrigado pela atenção,

Marcos.


Responder

Gostei + 0

28/10/2003

Fabio.hc

O FORM_B tem ter a propriedade windownstate=wsnormal.


Responder

Gostei + 0

28/10/2003

Marcao

está como windownstate=wsnormal, mesmo assim o erro continua.

Marcos


Responder

Gostei + 0

28/10/2003

Marcao

Fabio, não deu o erro, mas quando fecho o form_b (cepfrm) o foco nao retorna p/ a próxima linha do codigo.

aqui vai um pedaço do código:

procedure TEmpresaFrm.BitBtn1Click(Sender: TObject);
begin
if cepfrm = Nil Then
begin
cepfrm:=Tcepfrm.Create(Self);
end
else
begin
cepfrm.WindowState := wsNormal;
cepfrm.BringToFront;
cepfrm.Focused;
cepfrm.ShowModal;
showmessage(´tem que continuar nessa linha apos cepfrm for fechado´);
end;
end;


Responder

Gostei + 0

28/10/2003

Jaguarnet7

try
FORM_B.ShowModal;
finally
// aki voce muda o foco pro proximo
end;


deve funcionar


Responder

Gostei + 0

29/10/2003

Fabio.hc

Seu codigo.
procedure TEmpresaFrm.BitBtn1Click(Sender: TObject); 
begin 
if cepfrm = Nil Then 
   begin 
   cepfrm:=Tcepfrm.Create(Self); 
   end 
else 
   begin 
   cepfrm.WindowState := wsNormal; 
   cepfrm.BringToFront; 
   cepfrm.Focused; 
   cepfrm.ShowModal; 
   showmessage(´tem que continuar nessa linha apos cepfrm for fechado´); 
   end; 
end;



Fiz estas correções e funcionou:
procedure TEmpresaFrm.BitBtn1Click(Sender: TObject); 
begin 
if cepfrm = Nil Then 
//   begin 
   cepfrm:=Tcepfrm.Create(Self); 
//   end 
//else 
//   begin 
   cepfrm.WindowState := wsNormal; 
   cepfrm.BringToFront; 
   cepfrm.Focused; 
   cepfrm.ShowModal; 
   showmessage(´tem que continuar nessa linha apos cepfrm for fechado´); 
//   end; 
end;



ps. Passei o comando errado, o certo é ´FormStyle=fsNormal´


Responder

Gostei + 0

29/10/2003

Bacalhau

A mensagem ´Cannot make a visible window modal´ é resolvida colocanco no FORM_B a propriedade Visible := false;

abraço
bacalhau


Responder

Gostei + 0

29/10/2003

Marcao

Bom dia a todos que estão tentando ajudar-me,

Eu estou trabalhando com formulários do tipo fsMDIChild, a propriedade visible só pode ser true, até agora as tentativas passadas por vocês nao deu certo, mesmo assim agradeço a atenção de todos, obrigado.

Marcos.


Responder

Gostei + 0

29/10/2003

Bacalhau

Ó criatura de Deus, agora é que dizes que é MDIChild??? :lol:

Faz assim:

FormTal := TFORM_B.create(self);
FormTal.FormStyle := fsNormal; // desactiva MDIChild
FormTal.WindowStyle := WsNormal;
FormTal.Visible := False;
FormTal.showmodal;

Enquanto o FORM_B estiver activo o FORM_A não pia!! Depois de fechar, é passar o focus para onde queres, questão que já foi explicada anteriormente.

Abraço
bacalhau


Responder

Gostei + 0

29/10/2003

Marcao

Caro amigo bacalhau,

Funcionou do jeito que eu queria, valeu pela força,

e agradeço a todos os que tentaram,

OBRIGADO!

Marcos.


Responder

Gostei + 0

29/10/2003

Bacalhau

abraço do peixão,,, 8)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar