Kopyala yapıştırma işlemi ? [ Çözüldü ]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Kopyala yapıştırma işlemi ? [ Çözüldü ]

Mesaj gönderen ByDeniS »

Merhaba arkadaşlar, cevaplar ve yardımlar için şimdiden teşekkürlerimi iletirim.
Takıldığım bir husus var yardımınızı rica ediyorum.

Soru : ShellListView'de her hangibir root'da (yani dizinde) bir klasör yada dosyanın üzerine sağ tıkladığımız zaman normal windows sistem popups menüsü açılıyor ve normal windows'umuzda var olan menü itemleri orada beliriyor. (Kopyala yapıştır vs vs) Ben buradan kopyalamayı yaptığım zaman, bu kopyaladığım dosya yada klsörü kendi oluşturduğum popups menu ile bu seçilen dosya yada klasörü nasıl yapıştırabilirim, yapıştıradağım yerde ShellListview'in aktif olduğu dizin. Kendi oluşturduğum popups menüde ShellListView'in bir dosya yada klasör değil boş bir alanına sağ tıkladığımız zaman çıkıyor.

Action'ları denedim işe yaramadı. CopyFile yönetimini ele aldım velakin sistem memory'sindeki kopyaladığım dosyayı alamadığım için yapıştırma işleminide gerçekleştiremedim.
En son ByDeniS tarafından 03 Ağu 2010 01:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Kopyala yapıştırma işlemi ?

Mesaj gönderen thelvaci »

Kopyaladığınız dosya clipboard'a atıldığı için Clipboard'u kontrol eden aşağıdaki gibi bir kod işinize yarayabilir.

Kod: Tümünü seç

uses
  ClipBrd, ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
  FileHandle : THandle;
  Buffer       : array [0..1024] of Char;
  iCounter, 
  NumberOfFiles: Integer;
begin
  Clipboard.Open;
  try
    FileHandle := Clipboard.GetAsHandle(CF_HDROP);
    if FileHandle <> 0 then
    begin
      NumberOfFiles := DragQueryFile(FileHandle, $FFFFFFFF, nil, 0);

      Memo1.Clear;

      for iCounter := 0 to NumberOfFiles - 1 do
      begin
        Buffer[0] := #0;
        DragQueryFile(FileHandle, iCounter, Buffer, SizeOf(Buffer));

        Memo1.Lines.Add('Kopyalanan dosya:' + Buffer);
      end;
    end;
  finally
    Clipboard.close;
  end;
end;
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Kopyala yapıştırma işlemi ?

Mesaj gönderen ByDeniS »

İlginiz için teşekkürler. Memo üzerinde örnek vermissiniz yani program üzerinde yapıştırma işlemi yapıyor. Ben program üzerinden sadece köprü kurarak bir dizine yapıştırmaya çalışıyorum. Bu kodunuzu örnek alarak deneyeceğim sonucu bildiririm. Tekrar teşekkürler.

Edit : Sorun halloldu Teşekkürler
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Cevapla