Ver Mensaje Individual
  #18  
Antiguo 07-09-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Reputación: 22
javiermorales Va por buen camino
Hola Julià, muchas gracias por tu última respuesta y por el código. Resulta que es bastante similar a como lo hago yo. Te lo adjunto:
1.- Código de creación de Forms
Código:
procedure TMainForm.AbrirForm();
var
  i, j : integer;
  a : boolean;
begin
 i := 0;
 j := 1;
 a := true;
 while (a) do
 begin
   if (Screen.Forms[i].Name = PDatItem(TreeView1.Selected.data)
       ^.Pantalla) then
    a := false
  else
  begin
    if (i < (Screen.FormCount - 1)) then
      i := i+1
    else
    begin
      a := false;
      i := 1000;
    end
  end
 end;
 if (i < 1000) then
   Screen.Forms[i].Show
 else
 begin
   i := 0;
   While (i < listaclass.Count) and (listaclass[i].ClassName <> 
              PDatItem(TreeView1.Selected.data)^.TPantalla) do
        inc(i);
   if (i < listaclass.Count) then //hemos encontrado la clase
   begin
     While (Pantalla[j] <> nil) and (j <= 25) do
       inc(j);
     Application.CreateForm(TFormClass(listaclass[i]),Pantalla[j]);
     IndicePantalla := j;
     Pantalla[j].Show;
   end
 end
end;
El código de cierre de formularios, lo he puesto en otra de las respuestas.

Gracias Julià, si le vieses algo al código, por favor coméntamelo.
Un saludo.
E
Responder Con Cita