Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Form ajustado a un form de fondo (https://www.clubdelphi.com/foros/showthread.php?t=67179)

Drakyto 03-04-2010 18:24:41

Form ajustado a un form de fondo
 
Estimados amigos programadores, la duda que les traigo ahora es la sgt: Tengo un Form principal el cual aparece centrado en la pantalla, al querer mostrar otra ventana quería limitar su tamaño y posición en base a la ventana principal... en mi máquina lo conseguí, pero al hacer la prueba en otra máquina la 2da ventana se fija fuera de donde debería aparecer (el tamaño está bien). Cómo puedo arreglar esto??? Mi form principal tiene 1 panel superior (cabecera) y 1 panel izquierdo (pa' controles), la 2da ventana debería aparecer en el espacio vacío q queda.
Gracias

ecfisa 04-04-2010 01:19:28

Hola Drakyto.
Para hacer lo que deseas, creo que lo indicado sería utilizar ventanas MDI.
Para esto debes poner la propiedad FormStyle del Principal en fsMDIForm y la de Form2 en fsMDIChild.
Para llamar a Form2 desde el principal:
Código:

  Form2:= TForm2.Create(Application);
Si deseas que el form se cierre (por defecto un MDIChild se minimiza), pone Action:= caFree
en el evento OnClose de Form2.
Para evitar que se superponga a los paneles utiliza: ActiveMDIChild.Left, ActiveMDIChild.Top, Height y Width del Form2.
Espero te sirva la idea.
Saludos:

ecfisa 04-04-2010 01:40:23

Hola de nuevo, mirando un poco encontré otra opción ( propuesta por Caro) que también te puede servir.

http://www.clubdelphi.com/foros/showthread.php?t=63097

Saludos.

Drakyto 06-04-2010 19:02:47

Form ajustado a un form de fondo
 
Gracias ecfisa x las respuestas; t comento q utilicé el método de Caro como m sugeriste, el problema radica en q 1o el caption dl form está inactivo aunq puedo cerrarlo con el respectivo botón ubicado en la parte sup dl form, 2o los controles q pertencen al form principal siguen activos y esto implica q se puede seguir abriendo la misma ventana "n" veces lo q significa un problema en diferentes aspectos; ahora bien, esto pasa cuando visualizo el form con Form.Show, pues cuando uso Form.ShowModal directamente se me bloquea todo.
Espero puedas darme algún consejo para subsanar esta dificultad.
Gracias d antemano

ecfisa 06-04-2010 19:25:51

Hola Drakyto.

Me parece que el problema está en la creación y destrucción de ventanas.

.- Saca el segundo Form de "Auto-Create forms".
. Te pongo un símple código ejemplo de creación:
Código:

{ CREAR NO MODAL }
procedure TForm1.btnNoModalClick(Sender: TObject);
var
  frm: TForm;
begin
  frm:= Application.FindComponent('Form2') as TForm;
  if Assigned(frm) then  // SI ESTA OCULTO,
    frm.Show            // MOSTRAR
  else
    Form2:=TForm2.Create(Application); // SI NO CREAR
end;
{ CREAR MODAL }
procedure TForm1.btnModalClick(Sender: TObject);
begin
  with TForm2.Create(Application) do
  begin
    try
      ShowModal;
    finally
      Free;
    end 
  end;
end;

.- Recuerda asignar Action:= caFree en el evento OnClose del segundo Form.

Saludos.


La franja horaria es GMT +2. Ahora son las 03:31:22.

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