Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambiar reosulicion de la pantalla (https://www.clubdelphi.com/foros/showthread.php?t=37575)

XxEdwinxX 16-11-2006 19:36:07

cambiar reosulicion de la pantalla
 
hola veran tengo un problemita, el boton de mi monitor se arruino y es justo el de ensanchar y mi monitor quedo ensanchado el boton de inicio y la barra de la hora no se ven, ahora quiera saver si habria forma de hacer un programita para poder cambiar la resolucion del monitor, esta en 800x600, para asi poder terlo en el centro y con todo viendose bien, se algo de programacion y he buscado programas que hacen eso pero no ahi, habra forma de poder hacerlo en delphi? espero me respondan, bye ah y no me digan comprate otro monitor jajaja, bye

Ñuño Martínez 16-11-2006 21:03:52

Es fácil: pulsa con el botón secundario del ratón (normalmente es el derecho) en una zona del escritorio donde no haya iconos ni ventanas. En el menú que sale selecciona "Propiedades" y, en la ventana que aparece, selecciona "Configuración". Ahí encontraras controles para cambiar el tamaño y los colores de la pantalla.

seoane 16-11-2006 21:11:25

Me temo que solo te queda comprar otro monitor o reparar el que tienes. El botón que mencionas controla la circuitería del monitor, y es independiente de cualquier comando que le envié la tarjeta gráfica desde windows.

Como arreglo provisional prueba con diferentes resoluciones de pantalla y frecuencia, puede que alguna de las combinaciones se ajuste un poco mejor a tu monitor, tal como lo tienes ahora.

XxEdwinxX 16-11-2006 21:21:44

Encontre esto, creen que me sirva? enseguida lo provare.

Para cambiar la resolución de la pantalla puede usar la siguiente función que envuelve la función API de Windows ChangeDisplaySettings. La función toma el ancho y altura deseados como parámetros y devuelve el valor de retorno de ChangeDisplaySettings (vea la documentación para más detalles).

uses Windows;

function SetScreenResolution(Ancho, Altura: integer): Longint;
var
DeviceMode: TDeviceMode;
begin
with DeviceMode do begin
dmSize := SizeOf(TDeviceMode);
dmPelsWidth := Ancho;
dmPelsHeight := Altura;
dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
end;
Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;
Puede usar ChangeDisplaySettings para cambiar otras propiedades de la pantalla como la profundidad color y la tasa de refresco.

Llamada de ejemplo

En el siguiente ejemplo primero obtenemos la resolución actual antes de establecerla en 800x600, y luego la restauramos llamando nuevamente a SetScreenResolution.

var
AnchoViejo, AlturaVieja: integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
AnchoViejo := GetSystemMetrics(SM_CXSCREEN);
AlturaVieja := GetSystemMetrics(SM_CYSCREEN);
SetScreenResolution(800, 600);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
SetScreenResolution(AnchoViejo, AlturaVieja);
end;


La franja horaria es GMT +2. Ahora son las 11:50:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi