Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Me quedan ventanas modales colgadas. (https://www.clubdelphi.com/foros/showthread.php?t=44685)

zugazua2001 12-06-2007 18:59:03

Me quedan ventanas modales colgadas.
 
Hola amigos del foro tengo el siguiente problema, yo todas las fichas que creo en mi programa las creo y las elimino una vez utilizadas. Me ocurre que en algunas oportunidades cuando cierro una ficha mostrada como modal luego de crearla con CreateForm, se queda colgada, que puede ser?? yo cada vez que cierro la ficha mostrada la libero con free.
Muchas gracias por todo.

maeyanes 12-06-2007 19:08:28

Hola...

A que te refieres con que "se queda colgada"?

Podrías poner un ejemplo de como llamas a esa forma que "se queda colgada"?


Saludos...

elmago 12-06-2007 20:50:06

Prueba con esto:

En el evento OnClose del formulario escribi el siguiente codigo

action:= caFree;

y en el evento OnDestroy lo siguiente

self:= Nil;

Espero que te ayude.

zugazua2001 13-06-2007 18:31:58

Gracias amigo voy a probar eso
 
Gracias amigos voy a probar ese codigo.
Colgada porque se plantaba el sistema en la ventana modal y no respondian los controles.

thelibmx 14-06-2007 01:13:56

Se puede Resetear un Formulario?
 
hola amigos,tal ves es un poco rara esta pregunta, pero he estado realizando varias aplicaciones en las cuales muestro formularios, los escondo y los vuelvo a mostrar, se crean todos desde un principio, entonces digamos que tengo 5 formularios, y un formulario menu del cual mando a llamar a los otros, lo unico que hago es meter un form1.show; y un form1.hide, mi problema es que por ejemplo tengo tedit, grid, y diferentes objetos en los formularios, cuando los muestro la primera ves, vienen vacios pero si los escondo y los vuelvo a mostrar pues se quedan con la informacion que anteriormente se habia ingresado o mostrado, entonces mi pregunta es si hay alguna manera de darle un form1.reset y que se muestren los formularios como si fuera la primera ves.
Se que podria blanquear los tedit con comillas y cosas asi, pero abra alguna manera mas facil y mas practica, por que en la forma que hago las cosas tengo q estar indicando que se blanquen los tedit, y todo eso, o si alguien pudiera decirme como seria una manera correcta, para no estar programando todos los tedit.text:=''; con 4 no hay mucho problema, pero cuando son 15 o 20 pues si es tedioso, si alguien pudiera darme un buen consejo de como hacer mas sencillo el codigo y mas practico seria de muchisima ayuuda. espero haberme explicado bien, trabajo con delphi2006, y soy novato je je. siento haberme extendido un poco, pero pues aprovechando el viaje, reciban un saludo todas las personas que colaboran en este foro que tanto me han ayudado... y muchas gracias kamaradas!!! buena tarde kawabonga!!

jhonny 14-06-2007 01:24:28

Cita:

Empezado por thelibmx
hola amigos,tal ves es un poco rara esta pregunta, pero he estado realizando varias aplicaciones en las cuales muestro formularios, los escondo y los vuelvo a mostrar, se crean todos desde un principio, entonces digamos que tengo 5 formularios, y un formulario menu del cual mando a llamar a los otros, lo unico que hago es meter un form1.show; y un form1.hide, mi problema es que por ejemplo tengo tedit, grid, y diferentes objetos en los formularios, cuando los muestro la primera ves, vienen vacios pero si los escondo y los vuelvo a mostrar pues se quedan con la informacion que anteriormente se habia ingresado o mostrado, entonces mi pregunta es si hay alguna manera de darle un form1.reset y que se muestren los formularios como si fuera la primera ves.
Se que podria blanquear los tedit con comillas y cosas asi, pero abra alguna manera mas facil y mas practica, por que en la forma que hago las cosas tengo q estar indicando que se blanquen los tedit, y todo eso, o si alguien pudiera decirme como seria una manera correcta, para no estar programando todos los tedit.text:=''; con 4 no hay mucho problema, pero cuando son 15 o 20 pues si es tedioso, si alguien pudiera darme un buen consejo de como hacer mas sencillo el codigo y mas practico seria de muchisima ayuuda. espero haberme explicado bien, trabajo con delphi2006, y soy novato je je. siento haberme extendido un poco, pero pues aprovechando el viaje, reciban un saludo todas las personas que colaboran en este foro que tanto me han ayudado... y muchas gracias kamaradas!!! buena tarde kawabonga!!

Bueno, realmente no conozco una función que venga de fabrica y que haga lo que necesitas, pero si la cuestión solo es de blanquear unos TEdit pues el siguiente ejemplo seguramente te servirá.
Código Delphi [-]
 
var
  i :Integer;
begin
  for i := 0 to Form1.ComponentCount -1 do
  begin
    if Form1.Components[i] is TEdit then
    begin
      TEdit(Form1.Components[i]).Text := '';
    end;
  end;
end;

thelibmx 14-06-2007 01:34:57

pues vaya, que esa forma de blanquear los tedit es muy de maestros,, no se me hubiera oocurrido pero la tomare en cuenta, muy buena, ahora solo tengo otra pregunta mas, para que sirve el form1.refresh; yo hubiera pensado que hacia algo parecido a lo que queria pero pues lo ejecuto y no, me podrias explicar un poco? ..

Gracias

jhonny 14-06-2007 01:48:12

Cita:

Empezado por thelibmx
para que sirve el form1.refresh; yo hubiera pensado que hacia algo parecido a lo que queria pero pues lo ejecuto y no, me podrias explicar un poco? ..

El Refresh repinta o redibuja un control en la pantalla, el refresh pertence a la clase TControl y TControl es como el tataratatara abuelo de TForm y por eso este ultimo lo hereda, pero realmente no te servirá para blanquear los Edits ni nada por ese estilo.

thelibmx 14-06-2007 01:59:54

Mostrar un formulario tipo modal
 
Bien ahora el problema que tengo es que muestro un formulario con la instruccion form1.showmodal; y pues para cerrar ese formulario supongo que la funcion inversa es form1.closemodal; sin embargo no me funciona, cual es la instruccion correcta.

del formulario uno mando a llamar al formulario dos.
form1
boton 1
form2.showmodal;
end;

y en el formulario dos tengo

form2
boton 2
form2.closemodal;
form2.hide;
end;

pero no me quita lo modal solo me esconde el formulario, cual es mi error, gracias por el apoyo..

egostar 14-06-2007 02:04:04

En la forma dos solo debes colocar en un boton

Close;

o usar un TbitBtn con tipo bkClose;

Salud OS

jhonny 14-06-2007 02:04:05

Cita:

Empezado por thelibmx
Bien ahora el problema que tengo es que muestro un formulario con la instruccion form1.showmodal; y pues para cerrar ese formulario supongo que la funcion inversa es form1.closemodal; sin embargo no me funciona, cual es la instruccion correcta.

del formulario uno mando a llamar al formulario dos.
form1
boton 1
form2.showmodal;
end;

y en el formulario dos tengo

form2
boton 2
form2.closemodal;
form2.hide;
end;

pero no me quita lo modal solo me esconde el formulario, cual es mi error, gracias por el apoyo..

En el form2, no hagas CloseModal, solo coloca
Código Delphi [-]
Close;
y quita el hide, pues la verdad no le veo sentido a que uses los dos (Close y Hide) espero te sirva.

thelibmx 14-06-2007 02:05:02

Gracias, se me fue, tienes razon, la solucion era un simple close, gracias que tengas linda tarde.


La franja horaria es GMT +2. Ahora son las 22:34:36.

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