Maximizando um form no windows XP
Olá, pessoal!
Quando uso a propriedade WindowsState = wsMaximized do Form tanto em tempo de projeto quanto em tempo de execusao, o form aparece maximizado mas nao na posicao correta da tela... tipo aparece alguns pixels abaixo do topo da tela, mas apenas no Windows XP com o esquema padrão.
[URL=http://img122.exs.cx/my.php?loc=img122&image=maxXP.png][img:2b14d4858b]http://img122.exs.cx/img122/1576/maxXP.th.png[/img:2b14d4858b][/URL]
Observem o topo da tela como fica. Isso acontece em todas as maquinas com XP no esquema padrao do XP. (testei em 4 maquinas com XPSP1 e 2)
Inclusive, até na instalacao dos componentes Jedi 3.0 acontece a mesma coisa :D
Qd rodo o programa no windows 98, funciona perfeito. E qd uso o XP com o esquema Classico (com aparencia de windows 98), a tela aparece corretamente!!! :shock:
Alguem ja passou por isso, ou tem alguma dica?
Agradeço...
Quando uso a propriedade WindowsState = wsMaximized do Form tanto em tempo de projeto quanto em tempo de execusao, o form aparece maximizado mas nao na posicao correta da tela... tipo aparece alguns pixels abaixo do topo da tela, mas apenas no Windows XP com o esquema padrão.
[URL=http://img122.exs.cx/my.php?loc=img122&image=maxXP.png][img:2b14d4858b]http://img122.exs.cx/img122/1576/maxXP.th.png[/img:2b14d4858b][/URL]
Observem o topo da tela como fica. Isso acontece em todas as maquinas com XP no esquema padrao do XP. (testei em 4 maquinas com XPSP1 e 2)
Inclusive, até na instalacao dos componentes Jedi 3.0 acontece a mesma coisa :D
Qd rodo o programa no windows 98, funciona perfeito. E qd uso o XP com o esquema Classico (com aparencia de windows 98), a tela aparece corretamente!!! :shock:
Alguem ja passou por isso, ou tem alguma dica?
Agradeço...
Silvio Ribeiro
Curtidas 0
Respostas
Michael
13/11/2004
Olá Silvio!
Você pode tentar posicionar o formulário no topo e na esquerda da tela antes de maximizá-lo com a propriedade WindowState:
Se mesmo assim não funcionar, tente executar este código depois de maximizar a janela. Não testei, por isso não posso afirmar se funciona.
Abraços!
Você pode tentar posicionar o formulário no topo e na esquerda da tela antes de maximizá-lo com a propriedade WindowState:
Top := 0; Left := 0;
Se mesmo assim não funcionar, tente executar este código depois de maximizar a janela. Não testei, por isso não posso afirmar se funciona.
Abraços!
GOSTEI 0
Silvio Ribeiro
13/11/2004
Ae Michael...
Valeu a dica... mas algo me dizia q nao era so isso.. e realmente nao foi. mas me ajudou a resolver o problema. quado fiz o form1.top := 0 e form1.left := 0, coloquei antes um showmessage mostrando os valores atuals do top e left do form, que por sinal eram -4 nos dois.
Mas ai vi q no momento do showmessage, logo apos o form.windowstate:=wsMaximized, a tela ficava maximizada sem ter aquela diferenca no topo... mas logo em seguida do showmessage, era como se ela fizesse um repaint ou algo assim q dava aquela diferença em cima.
Pra resolver, eu fiz assim:
frmMain.windowState := wsMaximized;
frmMain.windowState := wsMinimized;
frmMain.windowState := wsMaximized;
ehheh parece idiota, mas resolveu... valeu pela dica Michael!
Valeu a dica... mas algo me dizia q nao era so isso.. e realmente nao foi. mas me ajudou a resolver o problema. quado fiz o form1.top := 0 e form1.left := 0, coloquei antes um showmessage mostrando os valores atuals do top e left do form, que por sinal eram -4 nos dois.
Mas ai vi q no momento do showmessage, logo apos o form.windowstate:=wsMaximized, a tela ficava maximizada sem ter aquela diferenca no topo... mas logo em seguida do showmessage, era como se ela fizesse um repaint ou algo assim q dava aquela diferença em cima.
Pra resolver, eu fiz assim:
frmMain.windowState := wsMaximized;
frmMain.windowState := wsMinimized;
frmMain.windowState := wsMaximized;
ehheh parece idiota, mas resolveu... valeu pela dica Michael!
GOSTEI 0
Marcosrocha
13/11/2004
Isso realmente funciona dessa maneira, mas existe uma maneira correta!! Qualquer coisa eu posto aqui no fórum!!!
GOSTEI 0
Marcosrocha
13/11/2004
Isso realmente funciona dessa maneira, mas existe uma maneira correta!! Qualquer coisa eu posto aqui no fórum!!!
Aqui eu fiz assim!!!
Setei a propriedade inicial do WindowState como wsNormal e no FormShow do programa: frmMain.WindowState := wsMaximized;
100¬ de certeza que funciona!!! Testado e aprovado pelo XP!!
xD
GOSTEI 0