![]() |
alguien tiene la unidad para evitar multiples instancias de Roman
Lo que pasa es que trato de hacer el truco de delphi, para evitar multiples instancias pero no me funciona, me marca un error y no se ejecuta, ya segui los pasos, asi que intento conseguir la Unidad de Roman 'uiapp.pas' y he mirado algunos post anteriores donde la recomienda y explica que hay que hacer para que funcione, pero el link que deja de su pagina ya no existe.
quisiera saber si alguien me podria proporcionar dicha unidad o si es que alguien saber donde la puedo conseguir, de antes manos muchas gracias y es que quiero evitar las multiples instancias de mi programa, para que solo se sejecute una sola vez, saludos y espero alguien me pueda echar la mano con esto. :o |
|
|
ah ok perfecto muchisimas gracias, saludos a la comunidad :) que siempre ayudan
|
Román está instanciado y presente siempre, multiple y versátil.
:eek: |
sorry de nuevo :S ya que mire la unit de Roman y seguro que el problema es mio por que no he visto que alguien se queje de la unidad que Roman nos proporciono a todos muy amablemente, espero si alguien me puede ayudar ya que no pude echar a andar esto de evitar multiples instancias, expongo mi problema
este es el codido, haciendo los pequenios cambios como dice en la pagina qu esolo fueron aniadir 2 lineas, Cita:
Aunque no se abra un segundo programa, ( una ventana ), en el administrador de procesos se ve que si esta abierto, y al cerrar el programa, la primer instancia, las otras instancias o veces que intente abrir el programa para verificar que no se abrieran, siguen activas y por ende despues ya no puedo abrir para nada mi aplicacion aunque ya no este 'abierta' por que el proceso esta activo, solo hasta cuando cierro esos procesos puedo abrir de nuevo mi programa, espero alguien me pueda ayudar si no es mucha molestia, por que si me interesa evitar multiples instancias de mi programa. :( no se si tenga que ver por que mi programa usa MDI y al cerrar el programa pongo este codigo Cita:
y agrego en el drp asi: Cita:
|
problema con las multiples sesiones de la unidad de Roman :(
Espero no estar violando las reglas del foro, mejor decidi hacer el post en un nuevo hilo, ya que lo hice en otro que fue resuelto por otro tema aparte, Ya que mire la unit de Roman y seguro que el problema es mio por que no he visto que alguien se queje de la unidad que Roman nos proporciono a todos muy amablemente, espero si alguien me puede ayudar ya que no pude echar a andar esto de evitar multiples instancias, expongo mi problema
este es el codido, haciendo los pequenios cambios como dice en la pagina que solo fueron aniadir 2 lineas Cita:
[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]lo que me ocurre, es que al ejecutar el exe, me abre normal el programa, pero si intento ejecutar de nuevo mi aplicacion no la abre, eso esta muy bien, el problema es que checo en el Administrador de tareas y me abre 2 procesos de mi programa, uno que es el correcto es el numero uno, y el segundo que no lo abre el programa por que ya esta abierto uno, pero el proceso esta activo y al momento de cerrar mi programa, lo cierro y su proceso tambien se cierra pero el segundo proceso de la instancia del programa que no se abrio, no se cierra, quedandose en memoria y evitando que futuras aplicaciones de mi programa se abran, :( espero que alguien me pueda ayudar, en la pagina de Roman menciona que hay que cambiar los valores de las constantes, se las cambio pero aun asi me sigue pasando ese error. [/font]Aunque no se abra un segundo programa, ( una ventana ), en el administrador de procesos se ve que si esta abierto, y al cerrar el programa, la primer instancia, las otras instancias o veces que intente abrir el programa para verificar que no se abrieran, siguen activas y por ende despues ya no puedo abrir para nada mi aplicacion aunque ya no este 'abierta' por que el proceso esta activo, solo hasta cuando cierro esos procesos puedo abrir de nuevo mi programa, espero alguien me pueda ayudar si no es mucha molestia, por que si me interesa evitar multiples instancias de mi programa. :( no se si tenga que ver por que mi programa usa MDI y al cerrar el programa pongo este codigo Cita:
[FONT=verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif]no se si tenga algo que ver las MDI o me falta cerrar de alguna otra forma, espero me puedan ayudar, el codigo de Roman no lo he tocado, mas que en las lineas comentadas que menciono, saludos [/font]y agrego en el drp asi: Cita:
|
Bueno por si no me entendieron, explicare de esta manera.
La unidad de Roman funciona bien, hace lo que tiene que hacer, por que no me deja abrir mas de 2 programas de forma visual, pero si abre los procesos de cada intento que realice, ejemplo: Aplicacion......................................Administrador de Tareas 1 intento de abrir...........................1 Proceso Activo// Programa se abre todo bien 2 intento de abrir...........................2 Proceso Activo//Programa no abre por que esta abierto ya uno 3 intento de abrir...........................3 Proceso Activo//No se abre por que el programa esta abierto 4 intento abrir...............................4 Proceso Activo//No se abre por que el programa esta abierto ya con estos procesos abiertos y solo viendo un solo programa visual, cuando cierro el proceso #1 que es el programa visual, se cierra el Proceso #1, pero todos los demas procesos de intentos fallidos por abrir el programa que no se lograron tambien se quedan abierto. los procesos #2,#3,#4 se quedan abiertos, estan en memoria, entonces si deseo abrir de nuevo mi programa, ya que esta 'cerrado' (No se ve visualmente), entonces no lo permite, por que los procesos #2,#3,#4 estan abiertos, y solo si los cierros manualmente en el Administrador de Tareas ya puedo abrir de nuevo mi programa verlo, ese es el problema que cada intento que no me cierra, se queda activo, espero alguien me pueda ayudar por que enserio no entiendo que pasa, hago todo lo que dice la pagina de Roman y nada de hecho si no modifico nada de lo que dice y solo pongo la unidad y el codigo asi, poniendola en el uses, y me hace eso, me abre los procesos y despues como decia no puedo abrir la aplicacion si estan activas algunas, espero a ver sido mas claro y que me puedan ayudar, saludos y espero enserio me puedan ayudar, gracias :( |
Hola, yo uso este codigo en todos mis programas y funciona bien, sin dejar procesos en memoria:
Código:
Jorge |
saludos.
Te he dejado un ejemplo con una unidad que pertenece a los JEDI se llama jvappinstances pruebalo y comentas. |
Hola que tal, intentare utilizar el codigo pero lo uso como una unidad aparte y agregandola al proyecto? o lo agrego en todas las unidades, o solo en la unidad que se autogenera al comenzar el programa? sorry por la ignorancia, solo es para saber como utilizarla de la mejor manera. saludos y gracias
|
Yo la utilizo en el form principal de cada programa, tal cual esta en el ejemplo. Solo definis el constructor y lo implementas.
|
saludos.
te puse un ejemplo de como manejar las instancias usando la unidad jvappinstances en este hilo |
jars gracias por la ayuda, y disculpa pero es que no soy la gran cosa en delphi, lo que queria saber, es como hiria declarado o el orden el que debe llevar por ejemplo, el orden de un archivo vendria siendo:
Cita:
//y aqui debajo de todo eso yo pongo tu codigo igualito como me dijiste //Este public, supongo va en el apartado de public, debajo de private Cita:
Cita:
seguro que yo lo estoy haciendo mal, solo espero me puedas orientar por que aun me falta mucho por aprender, o no se si hay que desarrollar algo mas al codigo, saludos y sorry por la pregunta algo tonta :S, gracias me salen 4 errores, 1.- [DCC Error] UPrincipal.pas(64): E2004 Identifier redeclared: 'TfrmPrincipal.Create' 2.- [DCC Error] UPrincipal.pas(70): E2050 Statements not allowed in interface part (me seniala el begin, despues del constructor) 3.- [DCC Error] UPrincipal.pas(93): E2075 This form of method call only allowed in methods of derived types (me seniala el Inherited) 4.- [DCC Error] UPrincipal.pas(93): E2075 This form of method call only allowed in methods of derived types (y este es normal por que hay un error y no se puede compilar, espero me puedas echar la mano :() |
ok lo checare muchas gracias
|
ok mucgas gracias yo lo checo y sorry si tardo es que estoy en el trabajo
|
hola que tal de nuevo, gracias por la ayuda begginer y jars, de hecho ya me salio con el ejemplo de jars, aunque tambien intentare con el ejemplo de begginer en un momento, solo una duda con el codigo de jars, tengo un problema al declarar el constructor en public, como manejo un splash screen, yo declaro una variable publica de tipo integer, el detalle es que cuando declaro el constructor me genera una advertencia en esa parte y solo cuando pongo en comentarios la variable que usa el splashscreen solo asi puedo correo el programa y todo se realiza perfectamente bien, como deberia de funcionar, lo que queria saber es a que se debe esto? acaso no se puede declarar variables, mientras tenga un constructor ? por que si he probado declarando metodos con variables publicas, pero esta es la primera ocacion que me ocurre esto con un constructor, ya que anteriomente nunca habia usado en delphi de esta forma, espero me puedan explicar o por que esto, aqui dejo el mensaje que me pone como advertencia:
[DCC Error] UPrincipal.pas(58): E2169 Field definition not allowed after methods or properties public constructor Create(AOwner: TComponent); override; //SplashScreenHandle:integer; //solo si lo pongo en comentarios o elimino ya me deja compilar y probar el programa. end; no se puede usar variables publicas junto con constructores? soy nuevo en delphi sorry si es algo tonta la pregunta o por que me sucede eso. |
Hola Beginner que tal, estuve checando los archivos, y supongo qu ehay que agregar la unit
JvAppInst a msi proyectos, eh intentado hacer esto, pero no me resulta, si pongo en el dru agregar la unit me generar un error en la unidad JvAppInst, en el apartado que dice: {$I jvcl.inc} me pregunto si es que hay que agregar la unidad o que hay que hacer, por que tambien intente abrir todos los archivos para verificar el contenido pero en algunos me decia que no podia abrirlos: y solo podia abrir JvAppInst.pas pero no se si agregarla como te decia, y ponerle en el dru el agregado algo asi Cita:
Cita:
|
Cita:
prueba asi.
|
Cita:
// Saludos |
La franja horaria es GMT +2. Ahora son las 23:32:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi