redimensionar form scaleBy nao funciona
Ola Pessoal,
Estou precisando adaptar uim sistema para uma empresa que nao tem padrao de computadores logo temos varias configuracoes de monitores crt 15 polegadas a lcd de 19.
a versao do meu delphi e o bds 2006
e meu equipamento de producao e um notebook de 15 polegadas wide com resolucaod e 1280 x 800
peguei aquele exemplo classico de redimensionamento de forms aqui mesmo no forum e nao funiona quando testo com outras resolucoes como 800 x 600 e 1024 x 768
segue abaixo o codigo:
Deixo a font como arial, deixo o espaco de apoximadamente 5 px entre os componentes, deixo a propriedade parantfont = true e autosize do form e dos componenets = true e quando mudo a resolucao o que acontece e o seguinte, o tamanho do form e redimensionado, os componentes tambem, mas acabam um em cima do outro mesmo com espacos grandes e a font dos componentes ficam gigantes
queria saber se algum tem algum exemplo que pudesse me enviar, um exemplo para testar, ou alguma dica de alguma coisa que esteja passando em branco e ainda nao percebi
desde ja agrade a todos
um forte abraco
alineri
Estou precisando adaptar uim sistema para uma empresa que nao tem padrao de computadores logo temos varias configuracoes de monitores crt 15 polegadas a lcd de 19.
a versao do meu delphi e o bds 2006
e meu equipamento de producao e um notebook de 15 polegadas wide com resolucaod e 1280 x 800
peguei aquele exemplo classico de redimensionamento de forms aqui mesmo no forum e nao funiona quando testo com outras resolucoes como 800 x 600 e 1024 x 768
segue abaixo o codigo:
implementation const ScreenWidth: LongInt = 1280; ScreenHeight: LongInt = 800;
procedure TForm3.FormCreate(Sender: TObject); var i: integer; begin scaled := true; if (screen.width <> ScreenWidth) then begin height := longint(height) * longint(screen.height) DIV ScreenHeight; width := longint(width) * longint(screen.width) DIV ScreenWidth; scaleBy(screen.width, ScreenWidth); for i := componentCount - 1 downto 0 do with components[i] do begin if GetPropInfo(ClassInfo, ´font´) <> nil then font.size := (screen.width DIV ScreenWidth) * font.size; end; end; end;
Deixo a font como arial, deixo o espaco de apoximadamente 5 px entre os componentes, deixo a propriedade parantfont = true e autosize do form e dos componenets = true e quando mudo a resolucao o que acontece e o seguinte, o tamanho do form e redimensionado, os componentes tambem, mas acabam um em cima do outro mesmo com espacos grandes e a font dos componentes ficam gigantes
queria saber se algum tem algum exemplo que pudesse me enviar, um exemplo para testar, ou alguma dica de alguma coisa que esteja passando em branco e ainda nao percebi
desde ja agrade a todos
um forte abraco
alineri
Alineri
Curtidas 0
Respostas
Pestana_
25/04/2008
verifique se ajuda:
1-> ( http://forum.devmedia.com.br/viewtopic.php?t=76039&highlight=scaleby )
2-> ( http://forum.devmedia.com.br/viewtopic.php?t=94708&highlight=scaleby )
flw.
1-> ( http://forum.devmedia.com.br/viewtopic.php?t=76039&highlight=scaleby )
2-> ( http://forum.devmedia.com.br/viewtopic.php?t=94708&highlight=scaleby )
flw.
GOSTEI 0
Luciano.badoe
25/04/2008
[b:f35eb2ead7]alineri[/b:f35eb2ead7]
Este é o pior problema enfrentado por mim quando migrei de Clipper para Delphi, tentei todas as dicas aqui descritas e os meus resultados foram iguais aos seus.
Não sei mais oque fazer para resolver este problema.
Estas dicas de ScaleBy, etc... pergunto se alguém consegue fazer seus sistemas serem apresentados corretamente em resoluções diferentes.
Pois eu tentei de tudo e não consego.
Estou adotando uma atitude drástica e pouco recomendada. Estou alterando a resolução do cliente.
Este é o pior problema enfrentado por mim quando migrei de Clipper para Delphi, tentei todas as dicas aqui descritas e os meus resultados foram iguais aos seus.
Não sei mais oque fazer para resolver este problema.
Estas dicas de ScaleBy, etc... pergunto se alguém consegue fazer seus sistemas serem apresentados corretamente em resoluções diferentes.
Pois eu tentei de tudo e não consego.
Estou adotando uma atitude drástica e pouco recomendada. Estou alterando a resolução do cliente.
GOSTEI 0
Rodc
25/04/2008
As telas do meu programa foram feitas para 800x600 e quando não é a resolução padrão, eu uso o código abaixo para ajustar o tamanho dos componentes e fontes:
Outra coisa, você estão usando os componentes da VCL (TButton, TEdit, TLabel, etc...) ou é componentes de terceiros?[/code]
if (Screen.Width <> 800) then begin ScaleBy(Screen.Width, 794); end;
Outra coisa, você estão usando os componentes da VCL (TButton, TEdit, TLabel, etc...) ou é componentes de terceiros?[/code]
GOSTEI 0
Luciano.badoe
25/04/2008
[b:198552c875]rodc[/b:198552c875]
Eu uso componentes da VCL e da JEDI.
Eu uso componentes da VCL e da JEDI.
GOSTEI 0