[Lazarus-es] mostrar form encima del principal
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Lun Oct 8 14:47:32 CEST 2012
El 08/10/2012 09:15 a.m., Paola Bruccoleri escribió:
> Hola todos..
> hace tiempo tuve esta inquietud pero luego nunca lo experimenté y ahora
> necesito hacerlo pero no lo logro.
> Debo pedir una fecha al comenzar la aplicación, pero por estética, me
> gusta que el form principal ya quede cargado y visible.
>
> No lo hago en el .lpr porque sino se carga primero ese form de fecha y
> luego el principal, por tanto, decidí hacerlo en el form ppal, en el
> evento onshow.
>
> procedure TfrmMain.FormShow(Sender: TObject);
> var
> VQuery: TZQuery;
> loginfecha:TfrmFechaInicial;
> begin
> // se pide la fecha
> loginfecha:= TfrmFechaInicial.Create(nil);
> if loginfecha.showmodal = mrOk then
> begin
> FreeAndNIL(loginfecha);
> end
> else
> Application.Terminate;
> end;
>
> Ese form de fecha tiene obviamente poca cosa: un dbedit para la fecha
> (debe quedar en una tabla), un botón aceptar (con modalresult: mrOk) y
> uno cancelar (mrCancel)
> Si el usuario presiona CANCEL, yo quiero que la aplicación se cierre.
>
> El problema es:
> - no se muestra el form principal primero sino el de la fecha primero
> - Si presiono aceptar en el form de la fecha, nunca valida esto: if
> loginfecha.showmodal = mrOk then por tanto, la aplicacion siempre
> termina.
>
> No creo que se pueda hacer con un spash porque la idea de los splash
> (creo) es mostrar algún form q se muestre mientras se carga la
> aplicación.
> Cómo podría solucionarlo?
> muchas gracias!
Hola de nuevo..
al final, coloqué ese método en el evento onActivate, pero me pasa algo
bien raro. A pesar de que funciona como quiero, el form principal
aparece con el tamaño que tiene en diseño (tamaño mediano) y una imagen
que coloqué abajo a la derecha aparece fuera del form!
forcé el maximizado del form principal antes de mostrar el form de la
fecha y ni bolilla le da! (de todas formas, en la propiedad ya está
colocado ese valor.)
procedure TfrmMain.FormActivate(Sender: TObject);
var
loginfecha:TfrmFechaInicial;
begin
frmMain.WindowState:= wsMaximized;
loginfecha:= TfrmFechaInicial.Create(nil);
if loginfecha.showmodal = mrOk then
begin
FreeAndNIL(loginfecha);
end
else
Application.Terminate;
end;
More information about the Lazarus-es
mailing list