Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Maximizar correctamente (https://www.clubdelphi.com/foros/showthread.php?t=29285)

piccolo2101 18-01-2006 09:29:40

Maximizar correctamente
 
Hola,

tengo un problemilla que seguramente sea un absurdo y que casi me da verguenza preguntar pero me tiene ofuscadísimo y no consigo averiguar nada.

Tengo una aplicación que quiero que se inicialize maximizada, sin bordes, ni barra de título, ni botones de cerrar, minimizar... Pero cuando la configuro y ejecuto, el maximizado no respeta la barra de tareas de windows y, o bien la oculta para poder ocupar toda la pantalla, o bien se maximiza ocupando toda la pantalla pero por detras de la barra de tareas y poniendo un scrollbar vertical. Yo sólo quiero que ocupe el espacio libre (toda la pantalla respetando la barra de tareas). ¿Alguna solución?.

Un saludo y gracias.

roman 18-01-2006 16:28:18

El comportamiento que describes es el normal, son las aplicaciones a pantalla completa, y cubren incluso la barra de tareas. Lo que puedes hacer es dejar la ventana sin bordes pero asignarle tú mismo la posición y tamaño:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Left := Screen.WorkAreaRect.Left;
  Top := Screen.WorkAreaRect.Top;
  Width := Screen.WorkAreaRect.Right - Screen.WorkAreaRect.Left;
  Height := Screen.WorkAreaRect.Bottom - Screen.WorkAreaRect.Top;
end;

Screen.WorkAreaRect es el área del monitor que no está ocupada por la barra de tareas ni ninguna otra barra similar.

// Saludos

piccolo2101 19-01-2006 09:22:01

Hola, ante todo muchas gracias. He probado lo que me comentas y veo que funciona con algún problemilla ya que en las dos últimas líneas me da un error de violacion vcl90.bpl. Voy a investigar un poco porque si WorkAreaRect ya existe, no debería tener problemas de memoria pero bueno, si sabes algo te agradecería la ayuda.

piccolo2101 19-01-2006 09:33:14

Solucionado!!. Ok hice una pequeña traza y vi lo que pasaba. El problema era que mi formulario atendía al evento onResize para dibujar pero algunas cosas (paneles, mapas,...) se crean de forma dinámica y después de ejecutar esas líneas. Así que cuando se cambia el width y height se ejecuta el onResize e intenta cambiar los valores de top, left, width y height de elementos que aún no han sido creados.

Nuevamente gracias.

ciberlanger 22-03-2014 13:35:59

Que buen aporte, se que ya ha pasado mucho tiempo desde que solucionaron este problema. Pero es una excelente ayuda.:):)


La franja horaria es GMT +2. Ahora son las 01:51:27.

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