Selecao DevMedia QUERO SER PRIME

Fórum Aumentar height e width do form #366449

25/11/2008

0

Moçada, parece ridículo, mas não consigo aumentar o height e o width do meu form. Qualquer form, até projetos novos.

O que pode estar acontecendo?

abraço,


Fabio.


Fabio_123123

Fabio_123123

Responder

Posts

26/11/2008

Sistemald

Verifique as propriedades autosize esta como False, no mais não tem erro, coloque um botão e escreva o código abaixo:

Form1.Height:= 100;


teste em um novo projeto,e depois coloque no seu, se não funcionar, terá que verificar o que poderá estar atrapalhando, algum outro procedimento implementado no resize do form, por exemplo.


Responder

Gostei + 0

26/11/2008

Fabio_123123

Já concluí o problema. O Delphi 7 não deixa setar a dimensão do form maior que a resolução do monitor. Lamentável.

Obrigado pela ajuda.


Fabio.


Responder

Gostei + 0

27/11/2008

Edsoncabral

Use uma resolução de tela alta para desenvolver, a exemplo de 1024x768, mas lembre-se que a resolução pode ser um fator limitante no computador do seu cliente, pois existem pessoas que só trabalham, ou melhor trabalham, com 800x600. Os meus sistemas eu busco padronizar em 800x600, apesar de desenvolvê-los em resolução alta de tela.
Lembre-se também de usar a propriedade position=poScreenCenter para que o form não fique desfocado caso o seu cliente usa outra resolução.

Abraço.

Edson Cabral
Criterion Software


Responder

Gostei + 0

27/11/2008

Fabio_123123

Sim, entendo. O problema é que meu cliente usa 1440x990.

abraço,


Fabio.


Responder

Gostei + 0

28/11/2008

Discorpio

Bom dia a todos.

O Delphi permite você capturar o Width e o Height da tela através do Objeto Screen, com Screen.Width e Screen.Height, seja ela qual for a resolução, se voce está fazendo o seu projeto cuja a resolução máxima da sua placa de vídeo seja 1024 X 768, então infelizmente o Screen.Width e Height só alcançarão esta resolução.

A solução para o seu problema é uma função que eu desenvolvi para ajustar a minha aplicação na resolução que desenvolvi, caso o programa fosse instanciado em uma máquina com a resolução diferente da qual eu desenvolvi o projeto, eis a função

  type
  TfrmPrincipal = class(TForm)
     .....
     .....
     procedure FormCreate(Sender: TObject); 
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
     { Private declarations }
      ....
      OldWidth, OldHeight: Integer;
      procedure SetScreenResolution(AWidth, AHeigth: Integer);
      ....
  public
     { Public declarations }
      .....
      .....
  end;

  var
     frmPrincipal: TfrmPrincipal;

  implementation

  uses DM;

  {$R *.dfm} 
  
  procedure TfrmPrincipal.SetScreenResolution(AWidth, AHeigth: Integer);
  var
      DevMode: TDeviceMode;
      Hnd: THandle;
  begin
      Hnd := GetDC(Handle);
      EnumDisplaySettings(nil, 0, DevMode);
      with DevMode do begin
          dmPelsWidth := AWidth;
          dmPelsHeight := AHeigth;
          dmBitsPerPel := GetDeviceCaps(Hnd, BITSPIXEL);
          dmDisplayFrequency := 60;
      end;
      ChangeDisplaySettings(DevMode, 0);
  end;



Quando voce quiser modificar a resolução no momento da instanciação de seu aplicação, é só invocar essa procedure no evento OnCreate do Form Principal, assim:


  procedure TfrmPrincipal.FormCreate(Sender: TObject);
  begin
  if (Screen.Width <> 1440) and (Screen.Height <> 990) then begin
    OldWidth := Screen.Width;
    OldHeight := Screen.Height;
    Mens := ´Este programa foi construído numa resolução de vídeo´ + #13;
    Mens := Mens + ´de 1440 X 990 Pixels e irá configurar a tela do seu monitor´ + 13;
    Mens := Mens + ´para esta resolução. Ao final do programa,´ + 13;
    Mens := Mens + ´a resolução atual retornará instantaneamente´;
    MessageBox(Self.Handle, PChar(Mens),´Ajuste de Vídeo´,MB_OK+MB_ICONWARNING);
    SetScreenResolution(1440, 990);
 end;
end;


Quando você encerrar o programa e quiser voltar a configuração original é só codificar assim no Evento OnClose:


  procedure TfrmPrincipal.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
  if (Screen.Width <> OldWidth) and (Screen.Height <> OldHeight) then
     SetScreenResolution(OldWidth, OldHeight);
  Application.Terminate;
  end;



Repare que eu utilizei duas variáveis privadas (OldWidth e OldHeight para captuar as dimensões do Screen de tela, antes de configurar a nova resolução, para que pudessemos retorná-la no momento do encerramento do programa.

Espero que isso te ajude.


Responder

Gostei + 0

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

Aceitar