Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 06-11-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Perfeccionando el visor del ClipBoard:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Clipbrd;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    NextViewer: HWND;
    procedure GetData;
  protected
    procedure WndProc(var Message: TMessage); override;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  //Clipboard.Clear;  // Podemos limpiar o no el clipboard al comenzar
  // Nos registramos como ClipboardViewer y guardamos el anterior de la cadena
  NextViewer:= SetClipboardViewer(Handle);
end;

// Procesamos los mensajes a bajo nivel
procedure TForm1.WndProc(var Message: TMessage);
begin
  case Message.Msg of
  WM_DRAWCLIPBOARD:
  begin
    // Si tenemos un visor en la cadena, le reenviamos el mensaje
    if NextViewer <> 0 then
      SendMessage(NextViewer, WM_DRAWCLIPBOARD, 0, 0);
    // Miramos el ClipBoard
    GetData();
  end;

  WM_DESTROY:
    // Notificamos que dejamos de ser visor del ClipBoard
    ChangeClipboardChain(Handle, NextViewer);

  WM_CHANGECBCHAIN:
    // Nos notifican que otra App deje de ser visor del ClipBoard
    if HWND(Message.WParam) = NextViewer then
      // Alctualizamos NextViewer
      NextViewer:= Message.LParam
    else if NextViewer <> 0 then
      // Si no se actualizó reenviamos el mensaje
      SendMessage(NextViewer, WM_CHANGECBCHAIN, Message.WParam, Message.LParam);
  
  end;
  inherited WndProc(Message);
end;

procedure TForm1.GetData;
begin
  if Clipboard.HasFormat(CF_TEXT) then
    Memo1.Lines.Add(Clipboard.AsText);
end;

end.

Saludos.
Responder Con Cita
 



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
obtener el texto seleccionado de un Treeview ingabraham Varios 3 24-06-2011 16:36:03
font style a texto seleccionado pabloloustau Varios 2 08-04-2010 17:22:56
Detectar el item seleccionado en RadioButton santiago14 Varios 1 23-02-2010 16:37:11
Texto Seleccionado en un DbRichEdit johurgi Varios 1 03-11-2006 12:38:17
capturar texto no seleccionado, ComboBox sakuragi OOP 3 10-08-2005 23:28:22


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


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