Fórum Como configurar Ancoras em Forms par aq o mm se ajuste a dif. config. de vídeos ? #376276

24/04/2010

0

Olá, boa tarde! Sou Desenv. Delhoi-7 + FireBird-2.1 + DBExpress   Testei varios aplicativos de PDV p/ Mercado e observei q ao alterar a resolução do vídeo o mesmo se alto ajustava e os campos tambem sao redimensionados. Pois meus Form sao confecionados para um padrao 800x600 e quando mudo a resolução o mesmo não se ajuta ao tamanho da tela, pois se eu clicar em tela cheia os campos ficam desajustados, ficam alinhados a esquerda.   Consegui algumas informações, mas ainda estou com algumas dúvidas:   --------------------------------------------------------------------  Ajuste também as âncoras dos componentes.  Os da esquerda coloque ancoras apenas na esquerda, os da direita na direita.  Os de cima coloque a ancora top, e assim por diante.  Crie uma única form e faça com que as outras sejam descendentes dela. --------------------------------------------------------------------   1-Para cada tipo de Resolução vou fazer uma configuracao? 2-Como saber todos os tipos de Resolução de vídeo? 3-Como fazer os calculos, para q o componente se ajuste a nova configuração?   tem mais, ma vou ficar por aqui. Desde já meus agradecimentos, a quem puder ajuda-me.     sem mais,   ANT.CARLOS/SP
Antonio Jesus

Antonio Jesus

Responder

Posts

28/04/2010

Vitor Rubio

  Você deve desenhar a form na resolução mínima possível.

Configure as propriedades defaultmonitor das forms para dmDesktop ou a que melhor se ajustar ao padrão que você deseja
a propriedade position tem vários valores possíveis. Alguns priorizam a posição em detrimento dos tamanhos, outros os tamanhos em detrimento da posição. Se desejar que sempre aparece no centro da área visível do desktop, use poDesktopCenter
Dependendo do tipo de form que você está fazendo, fazer com que ela inicie maximizada ajuda.
Se você quiser que os componentes preencham as laterais esquerda e direita da tela, ao maximizar, coloque a propriedade anchor dos componentes da esquerda como akleft+aktop, e os da direita como akright+ajtop
se quiser que o componente cresça em comprimento, horizontalmente, coloque a propriedade anchor dos componentes da esquerda como akleft+aktop, e os da direita como akright+ajtop+akright  assim só um dos lados cresce

faça todos os componentes herdarem a fonte da form, com a propriedade parent font setada como true, assim você configura a fonte apenas uma vez.

para detectar a resolução do monitor corrente, supondo que trabalhe com multimonitor, use o código:

procedure TForm1.FormPaint(Sender: TObject);
begin

  Self.Caption := '[Resolução: '+
    inttostr(Screen.MonitorFromWindow(self.Handle).Width) + ' x ' +
    inttostr(Screen.MonitorFromWindow(self.Handle).Height) + ']';

end;

você pode assim mudar a fonte de acordo com a resolução, assim como mudar o tamanho e posição dos componentes.

com este código sua form fica com o mesmo tamanho (em centímetros) que teria em qualquer resolução.

procedure TForm1.FormPaint(Sender: TObject);
var
  pctw, pcth: double;
begin

  Self.Caption := '[Resolução: '+
    inttostr(Screen.MonitorFromWindow(self.Handle).Width) + ' x ' +
    inttostr(Screen.MonitorFromWindow(self.Handle).Height) + ']';

    //supondo que a resolução inicial seja 800 x 600, que a fonte inicial
    //seja 8 e que os tamanhos iniciais da form sejam 300x200
    //vamos capturar o índice de crescimento da resolução e aplicar a cada
    //dimensão da form, e das fontes e componentes

    pctw := Screen.MonitorFromWindow(self.Handle).Width/800;
    pcth := Screen.MonitorFromWindow(self.Handle).Height/600;

    Self.Width :=  trunc(300 * pctw);
    Self.Height := trunc(200 * pcth);

end;

Crie uma form ancestral para você com as propriedades AlturaPadrao e LarguraPadrao, que em resolução mínima são iguais aos width e heigth, mas que esses crescem conforme a resolução, e monte seu padrão.
Faça o mesmo com os componentes, esta é a parte mais difícil. *

Use panels, com as propriedades anchor e align confiugradas corretamente para preencher espaços vazios. 

*crie um método para ajustar automaticamente o tamanho e posição dos componentes de modo a preencher toda a tela, deixando respiros. Comece pelas 4 primeiras dicas e termine por aí, que é a parte mais difícil.
Responder

Gostei + 0

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

Aceitar