Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-03-2017
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
almacenar forms abiertos en un listbox

Buenas,

quizá sea una pregunta de "perogrullo" pero me estoy matando la cabeza con este tema.

Tengo una aplicacion en la que los forms se abren como show en un panel principal sin problema. Puedo maximizar, minimizar, cerrar etc.
Gracias a este maravilloso foro y su ayuda.

Viendo otros post que preguntan sobre saber que forms estan abiertos, intente implementar eso mismo y cargarlos en un listbox, asi, cuando tuviera algun form "oculto" podria mostrarlo en primer plano.

Pues bien, seguro que es una tonteria pero no hay forma.

Tengo esto

Código Delphi [-]
procedure TPrincipal.tbutton_inventariosClick(Sender: TObject);
begin
  if not assigned(finventarios) then
  begin
  finventarios:=tfinventarios.Create(application);
  finventarios.Parent:=CONTENEDOR;
  finventarios.Show;
   formularios_abiertos;
  end
  else
  begin
   end;
end;

Ahi, lo que hago es preguntar si el formulario ha sido asignado y sino crea uno. Ya cuando lo cierro se libera (para no abrir el mismo 2 veces).
CONTENEDOR es un panel donde lo abro.
formularios_abiertos es donde hago lo siguiente:

Código Delphi [-]
procedure tprincipal.formularios_abiertos;
var
 i:integer;
begin
  listbox1.Clear;
  for i:= Screen.FormCount -1 downto 0 do
    if screen.Forms[i].Showing then
       if (screen.forms[i].Caption<>'Principal') and (screen.forms[i].caption<>'acceso') then
    listbox1.Items.Add(screen.Forms[i].Caption);

Funcionar funciona, porque, si hago click en una de las lineas del listbox me muestra el form, lo unico malo es que los forms estan guardados de forma inversa en el listbox y me muestra el ultimo.
Si, es porque la i va en descendente y el listbox lo guarda en ascendente. Eso lo entiendo

El chiste es que si lo pongo al reves, al seleccionar el ultimo formulario del listbox me acaba tirando un error y no precisamente de index -1.

Tambien intente usar un array para guardar los forms y luego pasarlos al listbox pero es el mismo resultado.

No debe ser complicado pero ....

Gracias.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como almacenar datos de un listbox rufo Varios 1 08-01-2010 11:00:43
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 17:46:30
Almacenar en una variable de session el contenido de un ListBox (Items)! JuanErasmo .NET 2 16-01-2007 22:13:32
Acceder a los forms abiertos de tu aplicacion Neftali [Germán.Estévez] Trucos 0 07-06-2006 10:55:15
Almacenar datos en una listbox pepelu1975 Varios 5 13-02-2004 12:51:21


La franja horaria es GMT +2. Ahora son las 11:46:50.


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
Copyright 1996-2007 Club Delphi