Area de Transferencia

08/03/2006

Como pego um texto de um memo e depois jogo na area de transferencia para poder colar no bloco de notas, ou no word etc...


Foxcyber

Respostas

08/03/2006

Adriano Santos

Veja se é isso que precisa
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd: HWND;
  i: Integer;
  s: string;
begin
  wnd := FindWindow(nil, ´Form2´);
  if wnd <> 0 then
  begin
    for i := 0 to TApplication(wnd).ComponentCount - 1 do
    begin
      if TForm(wnd).Components[i&93; is TEdit then
        TEdit(TForm(wnd).Components&91;i&93;).Text := ´Ola´;
    end;
    wnd := FindWindowEx(wnd,0,´Edit1´,nil);

    s := ´Seu Texto para ser escrito no bloco de notas :))´;
    For i := 1 to Length(s) do
      SendMessage(wnd, WM_CHAR, Word(s&91;i&93;), 0);

    PostMessage(wnd, WM_KEYDOWN , VK_RETURN, 0); 
    PostMessage(wnd, WM_KEYDOWN , VK_SPACE, 0);  
  end;
end;



Responder Citar

08/03/2006

Adriano Santos

Esquece o tópico de cima, falei besteira.
Desculpe.

procedure TForm1.Button1Click(Sender: TObject);
var
  NotePad, Edit: HWND;
  I : Integer;
  Linha : String;
begin
  NotePad := FindWindow(´Notepad´, nil);
  if NotePad <> 0 then
  begin
    Edit := FindWindowEx(NotePad, 0, ´Edit´, nil);
    if Edit <> 0 then
    begin
      Linha := Memo1.Lines.Text;
      for I := 0 to Length(Linha) do
        PostMessage(Edit, WM_CHAR, Ord(Linha[I&93;), 0);
    end;
  end;
end;



Responder Citar

08/03/2006

Michael

Acho que o que o colega [b:6a5a5691a7]FoxCyber [/b:6a5a5691a7]quer é mais simples [b:6a5a5691a7]Adriano[/b:6a5a5691a7].

Memo1.CopyToClipboard;


E se quiser fazer ´na mão´:

uses Clipbrd;
...
begin
  Clipboard.AsText := ´Texto copiado para a área de transferência´;
end;


Se vc quiser usar isso para trocar dados entre sua aplicação e outra, como o Notepad, por exemplo - então a dica do [b:6a5a5691a7]Adriano [/b:6a5a5691a7]é mais interessante.

[]´s


Responder Citar

08/03/2006

Adriano Santos

Acho que o que o colega [b:9a2e1c40b9]FoxCyber [/b:9a2e1c40b9]quer é mais simples [b:9a2e1c40b9]Adriano[/b:9a2e1c40b9].
Memo1.CopyToClipboard;
E se quiser fazer ´na mão´:
uses Clipbrd;
...
begin
  Clipboard.AsText := ´Texto copiado para a área de transferência´;
end;
Se vc quiser usar isso para trocar dados entre sua aplicação e outra, como o Notepad, por exemplo - então a dica do [b:9a2e1c40b9]Adriano [/b:9a2e1c40b9]é mais interessante. []´s


Oi [b:9a2e1c40b9]Michael[/b:9a2e1c40b9], sabe que quase nunca lembro das funções que você mencinou? :P.

[]s

FoxCyber, acho que isso te ajuda, mas se ainda tiver algum problema pode contar...flw.


Responder Citar