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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Como evito abrir 2 veces el mismo form?

Hola compañeros, de nuevo.. como podria hacer en un Menu x ejemplo para que no se abra 2 veces el mismo form.. El codigo que estoy usando para llamar a un formulario es asi:

Código Delphi [-]
procedure Tfmain.musersClick(Sender: TObject);
begin
  ABM_users:= TABM_users.Create(Self);
  ABM_users.Show;
  estado.SimpleText:='Activado: Gestión de Usuarios del Sistema.';
end;

He probado cambiar a Showmodal, y en efecto! no se abren 2 pero solo puedo abrir ese! es decir no puedo abrir 2 forms distintos al mismo tiempo, espero me entiendan, muchas gracias!
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #2  
Antiguo 05-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola daragor.

No uso Lazarus, pero supongo que este código tiene que funcionarte:
Código Delphi [-]
procedure ShowTheForm(FormClass: TFormClass);
var
  i: Integer;
begin
  i:= Screen.FormCount-1;
  while (i > 0) and not (Screen.Forms[i] is FormClass) do Dec(i);
  if Screen.Forms[i] is FormClass then
    Screen.Forms[i].Show
  else
    FormClass.Create(Application).Show;
end;

Ejemplo de llamada:
Código Delphi [-]
procedure Tfmain.musersClick(Sender: TObject);
begin
  ShowTheForm(TABM_users);
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 05-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Excelente!! lo voy a probar y aviso asi queda valido, o no, para Lazarus! que es un clon de delphi claro está
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #4  
Antiguo 05-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Funciona compañero ecfisa, solo q el objetivo es sobre un mismo form, no sobre todos los forms, es decir yo deberia poder abrir 2, 3, X formularios al mismo tiempo pero nunca el mismo..
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #5  
Antiguo 05-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por daragor Ver Mensaje
Funciona compañero ecfisa, solo q el objetivo es sobre un mismo form, no sobre todos los forms, es decir yo deberia poder abrir 2, 3, X formularios al mismo tiempo pero nunca el mismo..
Hola daragor.

No entiendo... El código precisamente hace eso, evitar que se pueda volver a crear un form ya creado pero no impide que hagas:
Código Delphi [-]
  ShowTheForm(TForm1);
  ShowTheForm(TForm2);
  ShowTheForm(TForm3);
  ...
Es decir que podes habrir 1, 2, 3, ..., N forms llamando procedimiento, pero evitará que existan dos instancias del mismo a la vez.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 07-10-2012
userlazarus userlazarus is offline
Miembro
 
Registrado: abr 2006
Posts: 55
Poder: 19
userlazarus Va por buen camino
Hola,

Prueba con este componente en cada uno de los fprmularios : http://wiki.freepascal.org/UniqueInstance
__________________

Responder Con Cita
Respuesta



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 evito que el Form principal se "cuelgue" con procesos? bruykari Varios 5 24-02-2010 16:39:45
Error Al Crear Varias Veces El Mismo Form ManuelPerez Varios 7 18-09-2007 21:31:02
Abrir a la vez el mismo form con diferentes datos Sayuri Varios 7 12-08-2005 17:28:41
Abrir un Form tantas veces como desee jorodgar Servers 3 20-04-2005 09:07:43
Abrir varias veces el mismo form Phacko Varios 7 25-09-2004 05:22:01


La franja horaria es GMT +2. Ahora son las 17:48:36.


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