Fórum Aumentar height e width do form #366449
25/11/2008
0
O que pode estar acontecendo?
abraço,
Fabio.
Fabio_123123
Curtir tópico
+ 0Posts
26/11/2008
Sistemald
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.
Gostei + 0
26/11/2008
Fabio_123123
Obrigado pela ajuda.
Fabio.
Gostei + 0
27/11/2008
Edsoncabral
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
Gostei + 0
27/11/2008
Fabio_123123
abraço,
Fabio.
Gostei + 0
28/11/2008
Discorpio
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)