Fórum Erro em Form.Position !!!!!!!!!!! #242502

12/07/2004

0

Colegas..

Preciso de resolver um problema com o posicionamento inicial do meu form..

É o seguinte, estou criando um componente de senha. Neste componente crio um form, assim :

if l_form = ´frmInicial´ then
begin
s_form_inicial := TForm.Create(self);
with s_form_inicial do
begin
Name := l_form;
BorderIcons := [];
BorderStyle := fbsSizeable;
FormStyle := fsNormal;
Parent := F_Verifica_Form;
WindowState := wsNormal;
Position := poScreenCenter;
P_Constraints(s_form_inicial, 80, 193);
KeyPreview := false;
Caption := ´Configurar Relatório´;
OnClose := P_FormCloseInicial;
OnShow := P_FormShowInicial;
end;
P_Cria_Panels(l_form);
P_Cria_Botoes(l_form);
s_form_inicial.ShowModal;
end

o problema está no Positon, repare que passo o valor correto, mas o delphi não está seguindo esta regra, ele abre o form em outro lugar que não é o centro..

Como resolver este problema??

Agradeço muito a atenção de todos..

Cabelo


Cabelo

Cabelo

Responder

Posts

12/07/2004

Cabelo

Sobe..


Responder

Gostei + 0

12/07/2004

Marcelo Saviski

e isso aqui?
[color=green:f5409baa30][b:f5409baa30]Parent := F_Verifica_Form; [/b:f5409baa30][/color:f5409baa30]

é um MDI, ou é só p/ o form aparecer dentro de outro?

creio que seja por causa disso.


Responder

Gostei + 0

12/07/2004

Cabelo

Caro Marcelo..

esta é uma função que retorna o Form que está chamando o componente, esta função tem um vetor com todos os forms do projeto principal, e a partir do form que eu chamo é que passo o parent..

para poder associar o select.. de uma das SQLQuery´s..

Não deve ser isso, pois é só parent, e mesmo sendo parent não deveria alterar o posicionamento dele na tela..

já que dou um showModal..

agradeço a atenção..

Cabelo


Responder

Gostei + 0

13/07/2004

Cabelo

Colega

Tentei mudar o que vc me sugeriu, e como eu havia previsto não alterou em nada, já que dou um showmodal..

ele continua a posicionar - se fora do centro, o problema é que as vezes ele aparece bem próximo da borda da tela, dando um aspecto horrível pra quem trabalha com esta ferramenta..

se puderem me ajudar...

Cabelo


Responder

Gostei + 0

13/07/2004

Dedi

Acredito que seja isto:
Você está criando o form s_form_inicial e depois alterando o nome para l_form.
Retire a linha [color=darkred:4108e0162e]//Parent := F_Verifica_Form;[/color:4108e0162e]
e veja o que acontece.

Veja este exemplo.

procedure TForm1.Button1Click(Sender: TObject);
var Meu_form:TForm;
begin
  Meu_form := TForm.Create(self);
  with Meu_form do begin
   Name := ´Meu_form´;
   BorderStyle := (bsDialog);
   FormStyle := fsNormal;
   WindowState := wsNormal;
   Position := poScreenCenter;
   KeyPreview := false;
   Caption := ´Meu formulario´;
   Meu_form.ShowModal;
   Meu_form.Free;
end



Responder

Gostei + 0

13/07/2004

Cabelo

Colega..

Primeiro o nome s_form_inicial é o nome da minha variável, e não tem nada haver com o nome do meu form, segundo o Parent, que é indicado pelo vetor que é implementado no F_Verifica_Form, não pode deixar de existir, já que passo parâmetros para o form em execução..

Mesmo assim eu segui sua sugestão e não deu certo, continuou a mesma coisa, não obtive alteração no posicionamento do meu form..

se tiver outra sugestão eu agradeço..

Cabelo


Responder

Gostei + 0

13/07/2004

Marcelo Saviski

faça no ´braço´ então

Form.Left := (Screen.Width - Form.Width) div 2;
Form.Top := (Screen.Height - Form.Height) div 2;


certo?


Responder

Gostei + 0

13/07/2004

Cabelo

Marcelo, mais uma vez vc me salvando..rs..

Deu certo..

exatamente como eu queria..

muito obrigado..

Cabelo


Responder

Gostei + 0

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

Aceitar