Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Gracias dec, hice esto:

Código Delphi [-]
procedure TFPedido.FormCreate(Sender: TObject);
begin
if FPedido.Showing = True then
BEGIN
  ShowMessage('Ya tienes Abierto este modulo!');
  Abort;
  end;
end;

y me tira un error, un classexception.

Saludos,
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 18-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Se me hace raro que compruebes en el "OnCreate" del formulario si este está visible... porque esté como esté por el "OnCreate" no pasará sino una vez... cuando se cree el formulario.

Pero lo mismo estoy desvariando. Lo que es seguro es que acaso antes de comprobar si el formulario está visible (con "ShowWing") deberías comprobar si realmente la variable "FPedido", en este caso, está asignada, no es "nil".

Porque si el formulario no está creado es evidente que no estará visible, y más aún, no puede accederse a las propiedades de un objeto que no ha sido creado.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Una pregunta: ¿Hay alguna propiedad que nos permita diferenciar los formularios? El nombre, la clase, etc ...

Si es así puedes usar un bucle como este:
Código Delphi [-]
function Existe(Nombre: String): Boolean;
var
  i: integer;
begin
  for i:= 0 to Screen.FormCount - 1 Do
    if Screen.Forms[i].Name = Nombre then
    begin
      Result:= TRUE;
      Exit;
    end;
  Result:= FALSE;
end;
Y cuando crees o llames al formulario, podrías comprobar si existe. Yo no lo haría dentro del create del formulario.
Código Delphi [-]
if not Existe('Form1') then
begin
  // Aqui lo creas
end;
Responder Con Cita
  #4  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Disculpa dec, lo puse en el boton donde se abre el form y aun asi me sale el mismo error, para serte sincero no entendi mucho lo que me quisiste decir, perdon.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Gracias seoane dejame aplicarlo a ver si me funciona, luego te comento.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Gracias seoane!! me ha funcionado de maravillasel codigo me quedo asi:

Código Delphi [-]
procedure Tincio.BitBtn1Click(Sender: TObject);
begin
if not Existe('FPedido') then
begin
FPedido:=TFPedido.Create(self);
FPedido.Show;
end else
ShowMessage('Ya tienes abierto este Módulo!');
end;

Muchas Gracias, Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 18-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por enecumene
Disculpa dec, lo puse en el boton donde se abre el form y aun asi me sale el mismo error, para serte sincero no entendi mucho lo que me quisiste decir, perdon.
Bueno... lo cierto es que hoy ando algo más espeso de la cuenta... no voy ni a releer lo que he escrito, no vaya a ser que ni yo mismo lo entienda.

PD. La idea de Seoane me parece estupenda, como no podía ser de otro modo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 18-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.453
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción puede ser utilizar la propia variable del formulario.

Código Delphi [-]
procedure Tincio.BitBtn1Click(Sender: TObject);
begin
if not Assigned(FPedido) then begin
  FPedido:=TFPedido.Create(self);
  FPedido.Show;
end 
else begin
  ShowMessage('Ya tienes abierto este Módulo!');
end;

Al cerrar el formulario hay que asegurar se de colocar la variable a nil.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


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
Evitar cerrar form con la tecla ESC... uper Varios 1 06-12-2005 20:11:54
Evitar el minimizado del form maximizado Xema API de Windows 4 27-09-2004 13:02:14
evitar correr mismo form en aplicacion MDI @-Soft OOP 5 01-07-2004 06:03:43
Como evitar que el usuario cierre la form! Waldo API de Windows 2 20-11-2003 18:46:47


La franja horaria es GMT +2. Ahora son las 21:57:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi