Fórum redimensionar form scaleBy nao funciona #357604

25/04/2008

0

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:

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

Alineri

Responder

Posts

25/04/2008

Pestana_

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.


Responder

Gostei + 0

26/04/2008

Luciano.badoe

[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.


Responder

Gostei + 0

28/04/2008

Rodc

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:
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]


Responder

Gostei + 0

04/05/2008

Luciano.badoe

[b:198552c875]rodc[/b:198552c875]
Eu uso componentes da VCL e da JEDI.


Responder

Gostei + 0

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

Aceitar