Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, andei pesquisando pela internet mas todos os códigos estão incompletos ou não funcionam, consegui modificar um a ponto do aplicativo alterar a resolução automaticamente para 1024x768 no OnCreate, funcionou perfeitamente. Mas o código que era para armazenar os dados da resolução original do usuário não funciona, ou seja, o computador continua com a resolução 1024x768 ao invés de voltar a resolução normal da maquina do cliente, no meu caso 1600x900. Alguém sabe como resolver isso? Peguei o código em um site gringo, aterei apenas o nome das Functions e a MessageDLG, o resto está idêntico.
function MudaResolucao(X, Y, a , b: word): Boolean;
var lpDevMode: TDeviceMode;
begin
if EnumDisplaySettings(nil, 0, lpDevMode) then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
a:= lpDevMode.dmPelsWidth;
b:= lpDevMode.dmPelsHeight;
lpDevMode.dmPelsWidth := x;
lpDevMode.dmPelsHeight:= y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;
function NormalizaResolucao(a , b: word): Boolean;
var lpDevMode: TDeviceMode;
begin
if EnumDisplaySettings(nil, 0, lpDevMode) then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := a;
lpDevMode.dmPelsHeight:= b;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
NormalizaResolucao(a , B);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
If (Screen.Width <> 1024)and(Screen.Height <> 768) then
if (messageDlg('Este programa foi desenvolvido em 1024 x 768. Ele vai rodar normalmente nas suas confirações, mas não vai ficar posicionado corretamete em seu monitor! Deseja Alterar suas confirações de vídeo agora?',
mtConfirmation, [mbYes, mbNo], 0)=mrYes) then
MudaResolucao(1024, 768, a , B);
end;Carregando comentários...