Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
  #2  
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
  #3  
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: 26
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
  #4  
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
  #5  
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 13:12:32.


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
Copyright 1996-2007 Club Delphi