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 15-01-2007
vicmp3 vicmp3 is offline
Registrado
 
Registrado: ene 2007
Posts: 2
Poder: 0
vicmp3 Va por buen camino
Ayuda

Hola todos,

necesito ayuda, estoy realizando un programa para la universidad, que tiene un formulario, en donde debe moverse un agente y mi problema es que quiero que haya un boton de reset para que el formulario arranque de cero y no tener que cerrar la aplicacion y volver a cargarla para empezar de cero,

es eso posible, comenzar la aplicacion desde cero con un boton,

espero me ayuden.
Responder Con Cita
  #2  
Antiguo 15-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, bienvenido al foro.

Leete la Guía de Estilo y aprenderás cosas interesantes de como funciona este foro y de porque el título de este hilo no ayuda a nadie y que la pregunta que haces tampoco.

Así, ¿pues cuáando dices que quieres un botón de reset a que te refieres? ¿qué cosas hay que resetear?, ¿qué objetos hay en el formulario?, ¿hay acceso a base de datos?, etc

Saludos
Responder Con Cita
  #3  
Antiguo 15-01-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,

Estoy en absoluto de acuerdo con Bicho. Dicho esto, tal y como expones el problema me ha venido a la cabeza que acaso querrías poder reiniciar la aplicación desde la propia aplicación...

Código Delphi [-]
procedure ReiniciarApp;
begin
  WinExec(PChar(ParamStr(0)), SW_NORMAL);
  TerminateProcess(GetCurrentProcess, 0);
end;

* El código anterior está ya como truco en el apartado correspondiente.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 16-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Está muy bien el código, muy interesante la verdad.
¿Pero la instrucción TerminateProcess no podría susbtituirse (o equivale) simplemente por un Close?
Lo digo porque un Close es más usual que el TerminateProcess, no necesita parámetros, etc.
Yo lo he probado y consigo el mismo efecto.

Código Delphi [-]
procedure ReiniciarApp;
begin
  WinExec(PChar(ParamStr(0)), SW_NORMAL);
//  TerminateProcess(GetCurrentProcess, 0);
  Close;
end;

Saludos
Responder Con Cita
  #5  
Antiguo 16-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
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
¿Y no sería mejor saber qué hace la aplicación y el formulario e inicializarlo sin volver a ejecutar la aplicación?
No he entendido lo de "mover el agente", pero se debe poder inicializar el estado sin cerrar y volver a arrancar todo ¿no?
__________________
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
  #6  
Antiguo 16-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por Neftali
¿Y no sería mejor saber qué hace la aplicación y el formulario e inicializarlo sin volver a ejecutar la aplicación?
No he entendido lo de "mover el agente", pero se debe poder inicializar el estado sin cerrar y volver a arrancar todo ¿no?
Exactamente amigo Germán, no lo indiqué antes, pero ciertamente, no creo que llegue a usar nunca el código de dec.
Por eso mismo le pedí que tipo de componentes hay, sabiéndolos siempre podemos inicializarlos.
Yo en mis programas, que generalmente son programas automáticos o semi-automáticos (fucnionando en servidores sin la intervención de usuarios), están latentes a la espera de eventos o de un timer, y cuando toca, se ejecuta su evento principal (el programa está en marcha siempre), y cuando termina el proceso, no se cierra, sigue esperando para una nueva ejecución. Y lo que hace es inicializarse. Todos tienen un procedimiento que inicializa las variables, y los componentes, elimina estructura temporales, etc.

Sólo es una opinión y una manera de trabajar.

Saludos
Responder Con Cita
  #7  
Antiguo 16-01-2007
vicmp3 vicmp3 is offline
Registrado
 
Registrado: ene 2007
Posts: 2
Poder: 0
vicmp3 Va por buen camino
disculpen, soy nuevo en el foro y tal vez debi leer como hacerlo antes,

con respecto a la aplicacion es re sensilla, en el formulario hay un timage que tiene un movimiento aleatorio, y otros timage que sirven como obstaculos.
al iniciar la aplicacion se posicionan todos en lugares del formulario, y se inicializan matrices y listas para seguir el control.
Pero si quiero reiniciar la aplicacion no me queda otra que salir y volverla a ejecutar, yo lo que queria es alguna clase de boton que me reinicie la aplicacion a cero, como si la volviera a cargar pero sin salir de esta.

Gracias,
victor.
Responder Con Cita
  #8  
Antiguo 16-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Bicho
¿Pero la instrucción TerminateProcess no podría susbtituirse (o equivale) simplemente por un Close?
De hecho no equivale. El problema con TerminateProcess es que mata el proceso sin más, no dando oportunidad a las tareas que la aplicacion tuviere que hacer al finalizar. Pueden probarlo poniendo algo en el evento OnClose del formulario principal. Dicho evento no se ejecutará si seusa TerminateProces.

// Saludos
Responder Con Cita
  #9  
Antiguo 16-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Claro, pero yo estaba indicando que puedo poner el Close, siempre que no tenga nada definido en el OnClose, o el CloseQuery.

Saludos
Responder Con Cita
  #10  
Antiguo 16-01-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por vicmp3
disculpen, soy nuevo en el foro y tal vez debi leer como hacerlo antes,

con respecto a la aplicacion es re sensilla, en el formulario hay un timage que tiene un movimiento aleatorio, y otros timage que sirven como obstaculos.
al iniciar la aplicacion se posicionan todos en lugares del formulario, y se inicializan matrices y listas para seguir el control.
Pero si quiero reiniciar la aplicacion no me queda otra que salir y volverla a ejecutar, yo lo que queria es alguna clase de boton que me reinicie la aplicacion a cero, como si la volviera a cargar pero sin salir de esta.

Gracias,
victor.
No entiendo, según parece eres tu el que posiciona las imágenes, e inicializa matrices y listas, supongo que lo haces en el evento OnCreate del formulario, o alguno similar. Por que entonces, en el evento del botón, no colocas el código necesario para inicializar todo de nuevo, o aun mejor llamas al evento OnCreate.
Responder Con Cita
  #11  
Antiguo 16-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Bicho
Claro, pero yo estaba indicando que puedo poner el Close, siempre que no tenga nada definido en el OnClose, o el CloseQuery.
¡Ah caray! ¿Dónde mencionaste todo eso? Pero en realidad no te estaba contradiciendo, al contrario. Lo que quiero decir es que no es buena práctica usar TerminateProcess. Debe usarse como último recurso.

// Saludos
Responder Con Cita
  #12  
Antiguo 16-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Ups perdona!, lo quise der por supuesto, fallo mio.

De todos modos, veo que coincidimos en opinión, a mí tampoco no me agrada demasiado usar TerminateProcess por eso sugerí si el Close era compatible.

Saludos
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
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
Leer la ayuda... Ayuda! MaJeSTiC Varios 0 04-08-2004 21:24:42
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 04:01:40.


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