Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Como vaciar datos de forms

Buenas gente les queria haces una consulta, tengo mi programita que de a poco va quedando,tengo un form principal en el cual acedo a las funciones, de factura, remito o albaran como lo llaman en otros lados, presupuesto, etc.
El tema es que bien, los ejecuto, los imprimo si quiero, y todo bien, pero el tema es por ejemplo, realizo una factura, me guarda y se cierra y cuando vuelvo a querer hacer otra estan todavia lo datos de la factura anterior, esto mismo me pasa con los remitos, presupuestos, recios, etc, como descargo todos los forms y los datos. En la mayotia son dgrids asociados a querys, dbedit, edits, dbtext.

Gracias, Saludos!
Responder Con Cita
  #2  
Antiguo 05-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues, según yo lo veo, o bien preparas algún procedimiento que "limpie" lo que necesites, o bien te aseguras de que al cerrar el formulario en cuestión este es "liberado", de modo que cuando lo precises vuelvas a crearlo. De esta forma, el formulario se mostraría "como nuevo" cuando lo necesites. No sé si me explico.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 05-12-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Gracias dec, si se entiende, el tema es como liberarlo, yo en un boton qu es el que me gusrda y me cierra el form le puse form1.free;, pero me da error, No se como hacerlo, es porque uso showmodal?

Saludos
Responder Con Cita
  #4  
Antiguo 05-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Prueba a liberar el formulario luego de mostrarlo, y desde el mismo sitio en que este se muestra. Es lo que suele hacerse: no hace falta que codifiques nada en el formulario a mostrar y luego cerrar. Puedes usar botones y sus propiedades "ModalResult" para saber cómo se "cerró" el formulario. Ya digo, lo "normal" es hacer algo así:

Código Delphi [-]
with TForm2.Create() do
try
  if (ShowModal() = mrOk) then
  begin
    // El formulario se cerró "OK"
  end;
finally
  // Finalmente liberamos el formulario
  Free();
end;

Una cosa más: si tienes el formulario (en el ejemplo "TForm2") de manera que se cree al iniciarse la aplicación, puedes "quitarlo" de la lista, es decir, no es necesario que se cree (probablemente) al inicio de la aplicación, porque, como ves, es posible crearlo cuando sea preciso y liberarlo cuando ya no lo sea.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 05-12-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Gracias dec, voy entendiendo, pero no logro hacer que me funcione, agradeceria una manito mas si noe s mucho pedir, esto es lo que intento...

Código Delphi [-]
procedure TFrmprincipal.Recibo1Click(Sender: TObject);
begin
with tfrmrecibo.Create() do //Aqui me marca el error
    try
      if (showmodal()=mrOK) then
      begin
             query2.Close;
             query2.SQL.Clear;
             query2.SQL.Add('select contrecibo from contrecibo');
             query2.Open;
             numrecibo:=query2.Fields[0].AsInteger;
             query2.Close;
             numrecibo:=numrecibo+1;
             frmrecibo.label4.Caption:=inttostr(numrecibo);
       end;
     finally
         free();
      end;

Me dice 'not enough actual parameters'
no hay suficientes parametros actuales seria,

Saludos!
Responder Con Cita
  #6  
Antiguo 05-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Otra opción es liberar el formulario al salir, mediante el evento OnClose, así:

Código:
 
   Action=caFree;  // Código en C++Builder
Cita:
Empezado por dec Ver Mensaje
Es lo que suele hacerse: no hace falta que codifiques nada en el formulario a mostrar y luego cerrar. Puedes usar botones y sus propiedades "ModalResult" para saber cómo se "cerró" el formulario. Ya digo, lo "normal" es hacer algo así:
No sé si es lo que "suele hacerse" o si es "lo normal", pero es como yo lo hago...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #7  
Antiguo 05-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El error que aparece tiene que ver conque, efectivamente, a mí se me olvidó en el código anterior que los contructores de los formularios necesitan un parámetro, cuando menos. Este parámetro determina el "dueño" (owner) del formulario que se va a crear y, bueno, en este caso bien puedes usar "nil" como parámetro, es decir, no asignar ningún "dueño" al formulario. ¿Por qué? Pues porque tú mismo te encargarás de la liberación del formulario acto seguido, así que no hace falta que lo haga nadie más.

__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 05-12-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Gracias por la ayuda realmente, no me funiciona, osea no me da error, epor cuando vuelvo a acceder al mismo form los datos siguen ahi, y noto que cuando de ese formulario que llame, llamo a otro, me aparece pero no me trae los datos, a que se debe, eso ocurre desde que lo llamo con tform.create, a que se puede deber esta curiosidad?

Saludos!
Responder Con Cita
  #9  
Antiguo 05-12-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Gracias de nuevo , lo resolvi de la siguiente manera, no si esta bien, pero funciona

Código Delphi [-]
begin
    try
      recibo:=tfrmrecibo.create(nil); //Como me dijo dec
      //abro el query, etc.
      frmrecibo.showmodal;
    finally
      frmrecibo.free;
    end;
end;

y los datos que me quedaban colgados en una parte era porque tengo un query activo en otro formulario que cargo el numero de una factura, asi que lo cierro y listo, me aparece vacio.

Otra vez gracias por el tiempo!


Saludos!

Última edición por Petolansa fecha: 05-12-2007 a las 20:28:09.
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
Pasar datos entre forms Stanley Varios 3 06-11-2007 20:26:44
Pasar datos entre forms Phacko Varios 8 20-09-2007 23:58:08
¿Cómo vaciar los datos adjuntos del envio de un correo? D@byt Internet 1 01-12-2005 13:24:43
Forms como el msn Clantt Varios 26 21-10-2005 15:14:41
guadar datos en forms 6 cahosoft Oracle 0 11-08-2005 18:25:57


La franja horaria es GMT +2. Ahora son las 23:52:47.


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