Clipboard Yöneticisi mi Desek kutusu mu desek ? :)

Merhaba arkadaşlar uzun bir aradan sonra yine garip ama işe yarar bir programla karşı karşıyayız.
Program uzun zamandır aklımdaydı ancak yazmak konusunda zaman sıkıntım vardı. Bugun biraz uğraştım ve bu kısacık kodlu yazılımı yaptım.
programın adı PannO
Program sorunsuz çalışıyor gibi ama bi sorun olursa yoruma yazarsanız sevinirim



Programı Buradan indirebilirsiniz

programın amacı şu aslında
elimizde word yada herhangi bir belge var ve biz bu belgeden bazı kısımları kopyalamak istiyor ama sistem şu şekilde çalışıyor

kopyalanan metin->clipboard-> yeni metin dosyasına aktar

kopyalanan metin->clipboard-> yeni metin dosyasına aktar
kopyalanan metin->clipboard-> yeni metin dosyasına aktar
kopyalanan metin->clipboard-> yeni metin dosyasına aktar
kopyalanan metin->clipboard-> yeni metin dosyasına aktar
kopyalanan metin->clipboard-> yeni metin dosyasına aktar

yukarıdaki işlemi yaparken 11 kez programlar arası geçiş yapmak gerekiyor.



ama yazdığım bu programı açık bırakın ve kopyalamaya başlayın

kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
kopyalanan metin->clipboard
PannO yukardaki işlemlerin tamamında clipboard a alınan tüm verileri (yalnızca şimdilik text) kendi hafızasına alıyor ve sonrasında siz PannO üzerindeki butonlarla ister tüm kopyalananları alın isterseniz arada işinize yarayacak olanları alın ve diğer dosyanıza yapıştırın.. :)


Kod yazarken ve ödev yaparken benim çok işime yarayacak bir dosya :)
sizinde işinize yararsa sevinirim.




unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Clipbrd, StdCtrls, sListBox, sSkinManager, sButton, sMemo;

type
  TForm1 = class(TForm)
    hafiza: TsListBox;
    sSkinManager1: TsSkinManager;
    Label1: TLabel;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    sButton5: TsButton;
    sMemo1: TsMemo;
    sButton6: TsButton;
   procedure WMDrawClipboard(var Msg: TMessage); message WM_DRAWCLIPBOARD;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
    procedure sButton6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   SinemaKoltugu  : THandle;

implementation

uses Unit2;

{$R *.dfm}


procedure TForm1.WMDrawClipboard(var Msg:TMessage);
begin

  if Clipboard.HasFormat(CF_TEXT) then // Uses Clipbrd
  begin
    hafiza.Items.Add(Clipboard.AsText);




    sMemo1.lines.Clear;
    smemo1.Lines.Add(clipboard.AsText);

   ///  form2.sMemo1.Lines.Add(clipboard.AsText);
  end;
  if not assigned(form2) then
begin

end
else
begin
 form2.smemo1.lines.add(hafiza.Items[0]);
 form2.sMemo1.Lines.Add(clipboard.AsText);

end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
   //- "İzlemek üzere sıra numaramızı aldık ve başladık" anlamında
  SinemaKoltugu := SetClipboardViewer(Handle);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // - "İzlemeyi sona erdirdik" anlamında...
  ChangeClipboardChain(Handle, SinemaKoltugu);
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  i: Integer;
begin
for i := 0 to hafiza.Items.Count - 1 do
begin
  hafiza.Items.Clear;
end;
end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
if hafiza.ItemIndex=-1 then
showmessage('öncelikle listeden bir satır seçiniz')
else
begin

Clipboard.AsText:=hafiza.Items[hafiza.ItemIndex];
hafiza.Items.Delete(hafiza.Items.Count-1);
end;
end;

procedure TForm1.sButton3Click(Sender: TObject);
begin
hafiza.Items.Delete(hafiza.Itemindex);
end;

procedure TForm1.sButton4Click(Sender: TObject);
begin
if hafiza.ItemIndex=-1 then
showmessage('öncelikle listeden bir satır seçiniz')
else
showmessage(hafiza.Items[hafiza.ItemIndex]);
end;

procedure TForm1.sButton5Click(Sender: TObject);
begin
showmessage(Clipboard.AsText);
end;

procedure TForm1.sButton6Click(Sender: TObject);
var
k:integer;
begin
form2.show;
//for k := 0 to hafiza.Items.Count - 1 do
//begin
//  form2.sMemo1.Lines.Add(hafiza.Items[k])
//end;

end;

end.



Form2 için



unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    sMemo1: TsMemo;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.







Yorumlar