Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
Como puedo mostrar lo que estoy haciendo en una segunda pantalla

No se si es exactamente el foro apropiado pero estoy buscando información para hacer lo siguiente. Quiero abrir un navegador por ejemplo firefox y que en el segundo monitor se pueda ver lo que yo estoy haciendo pero solo de las aplicaciones que yo le diga no de todo el escritorio. Osea que no quiero clonar el escritorio porque algunas cosas no quiero que las vean mis clientes. Lo he puesto en este foro porque estaba pensando en hacer capturas de pantalla pero no creo que sea lo más apropiado porque llevaría mucho trabajo al procesador no? Ya se como enviar un formulario a el segundo monitor me falta saber como mostrar la aplicación que yo estoy usando en el.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Yo tengo 2 monitores, pero la verdad, si paso una ventana al segundo monitor, se pierde del primero (usando la extensión del escritorio).

Quizás con teclas rápidas (hotkeys) que pueda tener tu tarjeta de vídeo, puedas activar o desactivar la clonación del monitor en el momento que necesites.

Quizás uno de estos componentes te sirvan para ir capturando la pantalla e ir mostrandolo en un PaintBox o similar en el segundo monitor.

Ya ves que no es una respuesta inmediata, pero de momento es lo que se me ocurre.

Saludos y suerte.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 13-12-2006
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
En este otro hilo hablamos de algo parecido, y usamos la misma solución que te propone Lepe, copiar la pantalla a intervalos regulares. Aunque veo por tu pregunta que no te parece una buena solución.

http://www.clubdelphi.com/foros/showthread.php?t=30776
Responder Con Cita
  #4  
Antiguo 15-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
No me convence porque

lo que yo quiero que haga es que la persona vea lo que yo le estoy señalando o marcando con el ratón con lo cual debería ser un reflejo segundo a segundo y evitando el parpadeo de la pantalla. ¿No habría alguna manera de ver lo que se ve en la pantalla como si fuera una capturadora de video?. Hay un programa que se llama UltraMonitor que hace mirror de la pantalla que quieras pero este es de pago y quisiera hacer algo parecido y màs adaptado a lo que necesito, que este no lo hace. En fin muchas gracias por las respuestas seguiré buscando, si alguien encuentra algo agradecería que me siguierais respondiendo.
Responder Con Cita
  #5  
Antiguo 15-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Acabo de probarlo y tanto una NVIDIA como una ATI, permite la clonación del monitor con teclas rápidas (lo he probado con F7 para un solo monitor y F8 para activar la clonación) deshabilitando la extensión del escritorio.

Lo que tu quieres se puede conseguir con los drivers de la tarjeta, maximizando el Mozilla y ocultando la barra de tareas, después activas la clonación.

Es cierto que hay componentes en torry, como ya te indiqué que puedan servirte, el hecho, es que el soporte de varios monitores en delphi, unidad Multimon.pas es muy escueta y no permite que hagas mucho más alla de lo ya comentado (delphi 6).

En cuanto ayuda de varios monitores, yo no he sabido encontrar ninguna (puede que tú tengas más suerte).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 15-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
No se si me entienden

yo no quiero clonar la pantalla entera solo la aplicación que yo le diga, la que yo este ejecutando en ese momento o le diga al programa que esta permitida su clonación en el otro monitor.
Responder Con Cita
  #7  
Antiguo 15-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
El ejemplo 19 que me habeis mostrado

esto si podría ser una aproximación de lo que quiero hacer pero que no coja lo que ve del raton sinó que quede estático y se vea solo el programa que yo estoy usando.
Responder Con Cita
  #8  
Antiguo 15-12-2006
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
Usando como base el ejemplo19, cambiamos el codigo por este otro:
Código Delphi [-]
procedure Copiar(DestDc: HDC; Zoom: Integer);
var
  SrcWindow: THandle;
  SrcDC: HDC;
  SrcRect: TRect;
  Ancho, Alto: Integer;
begin
  // Obtenemos las coordenadas de la ventana activa
  GetWindowRect(GetForegroundWindow,SrcRect); 
  // Lo intersecamos con el area de trabajo
  IntersectRect(SrcRect,SrcRect,Screen.WorkAreaRect);
  SrcWindow:= GetDesktopWindow;
  if SrcWindow <> 0 then
  begin
    SrcDC:= GetDC(SrcWindow);
    if SrcDC <> 0 then
    try
      Ancho:= SrcRect.Right - SrcRect.Left;
      Alto:= SrcRect.Bottom - SrcRect.Top;
      StretchBlt( DestDC, 0, 0, Ancho * Zoom, Alto * Zoom, SrcDC, SrcRect.Left,
        SrcRect.Top, Ancho, Alto, SRCCOPY);
    finally
      ReleaseDC(SrcWindow,SrcDC);
    end;
  end;
end;

procedure TfrmMain.tbZoomChange(Sender: TObject);
begin
  pbZoom.Canvas.FillRect(pbZoom.Canvas.ClipRect);
end;

// Esto es lo mismo de antes solo que ahora no pasamos las coordenadas a la funcion Copiar
procedure TfrmMain.RelojTimer(Sender: TObject);
var
  Bitmap: TBitmap;
begin
  if btnCopiar.Checked then
  begin
    Copiar(pbZoom.Canvas.Handle,tbZoom.Position);
  end;

  if btnBorrar.Checked then
  begin
    pbZoom.Canvas.FillRect(pbZoom.Canvas.ClipRect);
    Copiar(pbZoom.Canvas.Handle,tbZoom.Position);
  end;

  if btnBuffer.Checked then
  begin
    Bitmap:= TBitmap.Create;
    try
      Bitmap.Canvas.Brush.Color:= pbZoom.Canvas.Brush.Color;
      Bitmap.Width:= pbZoom.Width;
      Bitmap.Height:= pbZoom.Height;
      Bitmap.Canvas.FillRect(pbZoom.Canvas.ClipRect);
      Copiar(Bitmap.Canvas.Handle,tbZoom.Position);
      pbZoom.Canvas.Draw(0,0,Bitmap);
    finally
      Bitmap.Free;
    end;
  end;
end;

Puede que esto se aproxime un poco mas a lo que buscas.
Responder Con Cita
  #9  
Antiguo 16-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
Ahí las dao

Esto es lo que quiero, gracias, solo me faltará hacer alguna rutina que le indique si la venta activa tiene permisos de visualización o no y si no los tiene que mantenga la anterior que si que los tenía.
Te estaré eternamente agradecido. Un saludo.
Responder Con Cita
  #10  
Antiguo 16-12-2006
rmenor rmenor is offline
Miembro
 
Registrado: may 2006
Posts: 18
Poder: 0
rmenor Va por buen camino
Aquí os dejo como ha quedado

todavía no esta terminado pero aquí os dejo como ha quedado lo que me habeis ayudado a hacer, en próximas versiones desecharé lo del zoom porque no lo necesito y solo necesito que copie usando el buffer. Deciros que para que funcione bien necesitais tener 2 monitores. Muchas gracias.
Archivos Adjuntos
Tipo de Archivo: zip Project1.zip (12,8 KB, 38 visitas)

Última edición por rmenor fecha: 16-12-2006 a las 14:25:47.
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
Que estoy haciendo Mal esimon SQL 4 04-07-2006 21:55:25
La web que estoy haciendo (si, ya esta colgada) papulo HTML, Javascript y otros 25 11-01-2006 15:47:42
urgente:Estoy haciendo informes con html pmfras Impresión 1 07-09-2005 16:46:52
Que estoy Haciendo mal jostrix PHP 1 01-11-2004 01:29:16


La franja horaria es GMT +2. Ahora son las 23:07:35.


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