Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Vídeos

Vídeos

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Banner

Delphi - Outros

Como detectar alteração no conteúdo da Área de Transferência (ClipBoard)?

Imagine que você colocou no formulário um botão Colar, que serve para transferir para um Edit ou Memo o texto que foi copiado para a Área de Transferência. O problema é que este botão permanece sempre habilitado, mesmo quando não há texto para colar. Como resolver este problema?

  • Inclua na seção uses: Clipbrd, Windows e Messages.
  • Adicione ao formulário um Edit e um Button.
  • Programe o evento OnClick do botão como segue:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.Text := Clipboard.AsText;
    end;
    
  • Na seção private da classe do formulário, declare:
    procedure ClipboardChanged(var Message: TMessage); message WM_DRAWCLIPBOARD;
  • Na seção implementation da unit, implemente o método declarado acima:
    procedure TForm1.ClipboardChanged(var Message: TMessage);
    begin
      Button1.Enabled := Clipboard.AsText <> '';
    end;
    
  • Adicione esta linha no evento OnCreate do formulário:
    SetClipboardViewer(Handle);
  • Execute o programa e confira o resultado.

O conteúdo desta página pode ajudar alguém? Compartilhe!