Buenas tardes,
aunque he puesto un post similar en el foro específico en inglés, acudo también aquí para ver si puedo aprender a hacer mis aplicaciones de mejor forma.
Hace unos años, estuve en una empresa en la que programaba en Delphi (versiones antiguas no XE) y estoy acostumbrado a las aplicaciones en las que tienes tu menú y dentro de la ventana principal se van abriendo los distintos formularios que vas creando.
Lazarus por defecto como sabréis no funciona así, pero no me termina de convencer que se abran distintas ventanas para cada formulario, que pueden "andar" por cualquier lado de la pantalla.
Para hacerlo más como estaba acostumbrado dí con una solución que consiste en abrir los formularios dentro de un panel, de la siguiente forma:
if not assigned(Camaras) then
begin
Camaras:= tCamaras.Create(application);
Camaras.Parent:=panel1;
Camaras.Show;
end
else
Camaras.Show;
Con las siguientes propiedades en "Camaras":
Align : alNone
BorderStyle: bsSizeable
FormStyle: fsNormal
WindowState: wsMaximized
El resultado que se consigue es muy similar al que usaba en Delphi, pero el problema queda en que los campos de texto: Edit, MaskEdit, Memo...
ya sean con o sin conexión a DB quedan bloqueados, no se puede escribir en ellos, de hecho ni situar el cursor, seleccionar texto, nada.
Sin embargo el resto de las funcionalidades van perfectamente, accesos a BD, movimientos entre registros, botones, checkbox.
Así pues, me gustaría saber si alguien ha hecho algo similar, como lo ha solucionado. ¿Y por otro lado hay algo que no este haciendo de la mejor manera? ¿Como recomendaríais hacer los programas de este estilo en cuanto a Diseño de formularios?
Quizás tenga una forma de trabajar un poco viciada y me este "perdiendo algo", o esté desaprovechando opciones de Lazarus o hacer interfaces más amigables.
Toda sugerencia o ayuda será más que agradecida.
Saludos