Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   2 ventanas diferentes, 2 monitores diferentes (https://www.clubdelphi.com/foros/showthread.php?t=60370)

Milperrimo 30-09-2008 02:27:01

2 ventanas diferentes, 2 monitores diferentes
 
Saludos, necesito algo de ayuda porfavor, no se como llamarle a esto pero me voy a explicar.

Hay un punto de venta, el cajero maneja su computadora y tiene su monitor, hay un segundo monitor con la pantalla volteada al cliente, el cajero tiene la ventana donde va a facturar, pero al mismo tiempo en el monitor del cliente se debe de mostrar otra ventana diferente donde le muestra sus datos de facturacion para que verifique que son correctos.

Como hacerle con codigo para mandar un Form diferente al principal, a este segundo monitor????

no se si me explique????

juanelo 30-09-2008 02:43:13

Que tal,
A mi me toco desarrollar algo parecido, pero en mi caso habia que mostrar al cliente la imagen del producto y su precio en otro monitor. Lo solucione creando otra aplicacion que me servia exclusivamente para mostrar los datos de imagen y precio. Por medio de IPC (inter process comunication), hice que la aplicacion de punto de venta le enviara los datos a la otra aplicacion y esta mostraba los datos en su ventana.
Para dividir las ventanas en cada monitor, lo que hice es usar la caracterisitica de windows de manejo de 2 monitores, inicio la aplicacion "anexa" en el monitor secundario y la aplicacion de punto de venta en el monitor primario.
Claro que tiene la desventaja de que lo tienen que hacer manual cada que arranca la aplicacion, pero creeme que despues de 2 dias este proceso se hizo familiar para los usuarios y quedaron muy contentos.

Milperrimo 30-09-2008 03:18:37

Ohhh!! interesante, lo probare asi, aunque si se pudiera hacer por programacion se me ajustaria mas a mi caso, porke lo que habiamos manejado aca era que el cajero en cierto momento pudiera querer tener esa pantalla en su monitor al mismo tiempo que el cliente la ve en el otro monitor, entonces alli como manejar la situacion

elguille 30-09-2008 09:22:21

Examina la ayuda de la propiedad Defaultmonitor de cualquier form, no lo he hecho nunca pero no parece dificil a priori ....
Salu2

Lepe 30-09-2008 14:06:46

Revisa los hilos recomendados al final de la página. En el primero he contestado con algunas cosas que quizás te sirva.

Saludos

JoysticK 30-09-2008 14:14:36

Cita:

Empezado por Lepe (Mensaje 317186)
Revisa los hilos recomendados al final de la página. En el primero he contestado con algunas cosas que quizás te sirva.

Saludos


Llámame torpe pero no los veo.... :(

Delphius 30-09-2008 15:53:18

Cita:

Empezado por JoysticK (Mensaje 317189)
Llámame torpe pero no los veo.... :(

Ve al final de este hilo, arrastra el final de la página y verás que tienes a disposición una sección con temas similares al tratado aqui. Hay 4 enlaces.

Saludos,

juanelo 30-09-2008 17:06:56

Cita:

Empezado por Milperrimo (Mensaje 317144)
Ohhh!! interesante, lo probare asi, aunque si se pudiera hacer por programacion se me ajustaria mas a mi caso, porke lo que habiamos manejado aca era que el cajero en cierto momento pudiera querer tener esa pantalla en su monitor al mismo tiempo que el cliente la ve en el otro monitor, entonces alli como manejar la situacion

Pues existe la posibilidad de manejo de sockets de conexion, el detalle importante es que aqui necesitarias otro equipo para que uno funja como servudir y otro como cliente. Puedes probar con Indy.
Saludos

JoysticK 30-09-2008 18:07:38

Cita:

Empezado por Delphius (Mensaje 317200)
Ve al final de este hilo, arrastra el final de la página y verás que tienes a disposición una sección con temas similares al tratado aqui. Hay 4 enlaces.

Saludos,


Gracias Delphius, la verdad no me habia dado cuenta de estas funciones del foro.

Lepe 30-09-2008 18:13:28

Usando la ampliación del escritorio de windows, con una tarjeta que tiene 2 salidas de monitores (hoy día cuesta entre 30-90 €, y la mayoría de los ordenadores la traen, sólo tienes que comprar un adaptador de DVI a VGA 15 pines), ambos monitores conectados a ella, sería tan fácil como abrir dos instancias del mismo Form. y ambos con una resolución de 1024x768

Claro, no puedes usar un Form MDIChild, tendría que ser fsnormal:
Código Delphi [-]
frmUsuario, frmCajero :TForm2; // por poner algo fácil
begin

frmUsuario := TForm2.Create(nil);
frmUsuario.Left := 1025; // con esto ya sale en el segundo monitor
frmUsuario.windowState := wsMaximized; // que ocupe toda la pantalla
frmUsuario.BorderStyle:= []; // sin barra de título ni nada
frmUsuario.Show;

frmCajero := TForm2.Create(nil);
frmCajero.Left := 0; // en el primer monitor
frmCajero.Show;

Ahora todas las modificaciones que hagas a una ventana,
 las tienes que hacer al otro también para sincronizarlos
por ejemplo, cuando el cajero cambie el producto a comprar:

frmUsuario.IDproducto := frmCajero.IDproducto;

Saludos

Milperrimo 02-10-2008 00:54:01

Exelente!!! Muchas gracias, ya tengo varias formas de probar entonces, y esta ultima me parece la menos complicada!! Gracias

Milperrimo 02-10-2008 01:08:02

Oigan, ya he probado con todas las formas ke mencionan por aki, la de screen.monitors, con esa manera la forma del cliente, ke seria la ke se mostraria en el segundo monitor, no se muestra en tal, se muestra en el mismo donde estoy ejecutando la aplicacion principal que manda llamar a esta Form.

con la ultima manera, la de ponerle left = 1025 tampoco funciona, la Form si se desplaza ese uno de mas, osea, toma el mismo primer monitor como si fuera el segundo y aki mismo la va desplazando, Alguna idea???

Lepe 02-10-2008 05:12:32

Cita:

Empezado por Milperrimo (Mensaje 317594)
con la ultima manera, la de ponerle left = 1025 tampoco funciona, la Form si se desplaza ese uno de mas,

¿Y eso no te hizo pensar que ese monitor en el que estás es el secundario ?

El que está activo como primario es el otro, y el ancho va desde 0 hasta 1023, el 1024 ya es el segundo monitor, y por eso puse 1025 :D.

Ten cuidado que windows puede poner la barra de tareas en el monitor que le digas, e incluso los drivers de la tarjeta pueden intercambiar los número de monitores para tu conveniencia.

En las propiedades de pantalla de windows, en la pestaña Configuración, puedes mover esos dos monitores que ves (arrastrar y soltar) para ponerlo uno debajo del otro, a la izquierda, etc

Edito: el resto de los mortales, (como yo antes de tener 2 monitores) piensa que esa presentación preliminar con el monitor es una tontería como un templo.... pero no, tiene su uso ;).

En esa misma pantalla, debes tener un botón que dice "Identificar" y al pulsarlo te sale un número bien grande "1" y "2" en cada pantalla. Ahora mismo no recuerdo si el 1 es es el primario por software o por hardware, o si no tiene nada que ver. Porque esa es otra, si te quieres liar aún más, intercambia las clavijas de la tarjeta :D.


Saludos.


La franja horaria es GMT +2. Ahora son las 23:24:50.

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