uses ShellApi;
function CopyDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function MoveDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_MOVE;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function DelDir(dir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_DELETE;
fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
pFrom := PChar(dir + #0);
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if cCopyDir('d:\download', 'e:\') = True then
ShowMessage('Directory copied.');
end;
Delphi Kodlarım
5 Şubat 2012 Pazar
Cut-Copy-Paste
Kesme, Kopyalama ve Yapıştırma işlemlerini, Klavye kullanılarak yapmak oldukça kolaydır. Bu işlemler menü elemanları vasıtasıyla da yapılabilir. Şayet bileşen, bu komutları aldığında ne yapacağını biliyorsa, Windows mesajlarını kullanmak en uygun hareket tarzıdır.
Kesme;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_CUT, 0, 0
Kopyalama;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_COPY, 0, 0
Yapıştırma;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_PASTE, 0, 0);
Kesme;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_CUT, 0, 0
Kopyalama;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_COPY, 0, 0
Yapıştırma;
if GetFocus <> 0 then { Seçili bir pencere varmı? }
SendMessage( GetFocus, WM_PASTE, 0, 0);
Copy-Cut-Past-Delete Edit uygulaması
*- COPY CUT PAST DELETE UNDO
edit1.perform(wm_copy,0,0); // edit1 deki metni panoya kopyalar.
edit1.perform(wm_cut,0,0); // Kes işlemini yapar.
edit1.perform(wm_paste,0,0); // Panodaki metni edit1 e yapıştırır.
edit1.perform(wm_clear,0,0); // edit1.clear 'de aynı işi görür.
Edit1.perform(em_undo,0,0); // Yapılan son işlemi geri alır.
Bu kodları memo, listbox, combobox, richtext bileşenleri içinde kullanabilirsiniz.
edit1.perform(wm_copy,0,0); // edit1 deki metni panoya kopyalar.
edit1.perform(wm_cut,0,0); // Kes işlemini yapar.
edit1.perform(wm_paste,0,0); // Panodaki metni edit1 e yapıştırır.
edit1.perform(wm_clear,0,0); // edit1.clear 'de aynı işi görür.
Edit1.perform(em_undo,0,0); // Yapılan son işlemi geri alır.
Bu kodları memo, listbox, combobox, richtext bileşenleri içinde kullanabilirsiniz.
Copy-Delete-Move Function
uses ShellApi;
function CopyDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function MoveDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_MOVE;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function DelDir(dir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_DELETE;
fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
pFrom := PChar(dir + #0);
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if cCopyDir('d:\download', 'e:\') = True then
ShowMessage('Directory copied.');
end;
function CopyDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function MoveDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_MOVE;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function DelDir(dir: string): Boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_DELETE;
fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
pFrom := PChar(dir + #0);
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if cCopyDir('d:\download', 'e:\') = True then
ShowMessage('Directory copied.');
end;
Copy File or Directory
uses ShellAPI;
function CopyAllFiles(sFrom, sTo: string; Protect: boolean): boolean;
{ Copies files or directory to another directory. }
var F: TShFileOpStruct; ResultVal: integer; tmp1, tmp2: string;
begin
FillChar(F, SizeOf(F), #0);
Screen.Cursor := crHourGlass;
try
F.Wnd := 0;
F.wFunc := FO_COPY;
{ Add an extra null char }
tmp1 := sFrom + #0;
tmp2 := sTo + #0;
F.pFrom := PChar(tmp1);
F.pTo := PChar(tmp2);
if Protect then
F.fFlags := FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS
else
F.fFlags := FOF_SIMPLEPROGRESS;
F.fAnyOperationsAborted := False;
F.hNameMappings := nil;
Resultval := ShFileOperation(F);
Result := (ResultVal = 0);
finally
Screen.Cursor := crDefault;
end;
end;
function CopyAllFiles(sFrom, sTo: string; Protect: boolean): boolean;
{ Copies files or directory to another directory. }
var F: TShFileOpStruct; ResultVal: integer; tmp1, tmp2: string;
begin
FillChar(F, SizeOf(F), #0);
Screen.Cursor := crHourGlass;
try
F.Wnd := 0;
F.wFunc := FO_COPY;
{ Add an extra null char }
tmp1 := sFrom + #0;
tmp2 := sTo + #0;
F.pFrom := PChar(tmp1);
F.pTo := PChar(tmp2);
if Protect then
F.fFlags := FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS
else
F.fFlags := FOF_SIMPLEPROGRESS;
F.fAnyOperationsAborted := False;
F.hNameMappings := nil;
Resultval := ShFileOperation(F);
Result := (ResultVal = 0);
finally
Screen.Cursor := crDefault;
end;
end;
Copy File - Windows Apileri kullanarak
Function CopyFiles(const Source,Destination: String): Boolean;
var
SHFileOpStruct : TSHFileOpStruct;
begin
if FileExists(Source) then
begin
FillChar(SHFileOpStruct,SizeOf (TSHFileOpStruct),#0);
with SHFileOpStruct do begin
Wnd:=Application.Handle;
wFunc:=FO_COPY;
fFlags:=FOF_ALLOWUNDO;
hNameMappings:=nil;
pFrom:=PChar(Source+#0+#0);
pTo:=PChar(Destination+#0+#0);
end;
Result := ShFileOperation(SHFileOpStruct ) = 0;
end else Result := False;
end;
// Kullanımı:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not CopyFiles('C:\\windows\\notepad. exe', 'C:\\sil\\notepad.exe') then
showmessage('Kopyalama islemi basarisiz');
end;
var
SHFileOpStruct : TSHFileOpStruct;
begin
if FileExists(Source) then
begin
FillChar(SHFileOpStruct,SizeOf (TSHFileOpStruct),#0);
with SHFileOpStruct do begin
Wnd:=Application.Handle;
wFunc:=FO_COPY;
fFlags:=FOF_ALLOWUNDO;
hNameMappings:=nil;
pFrom:=PChar(Source+#0+#0);
pTo:=PChar(Destination+#0+#0);
end;
Result := ShFileOperation(SHFileOpStruct ) = 0;
end else Result := False;
end;
// Kullanımı:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not CopyFiles('C:\\windows\\notepad. exe', 'C:\\sil\\notepad.exe') then
showmessage('Kopyalama islemi basarisiz');
end;
Copy File Örnekleri
COPY FILE
Uses ShellApi, ShlObj;
procedure CopyFiles(const FromFolder: string; const ToFolder: string);
var Fo : TSHFileOpStruct; buffer : array[0..4096] of char; p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(FromFolder)); //this is folder that you want to copy
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(ToFolder); //this is where the folder will go
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('File copy process cancelled')
end;
CopyFiles('Kopyalamak istediğin klasörün yolu ve adı','Kopyalamak istediğin dizin ve ad yani hedef');
***YADA***
Hedef dizin, c:\deneme\ olsun . Proğramı otomatik olarak bulur ve hedef dizine koyalar.
CopyFile(pchar(ExtractFileName(Application.ExeName)),pchar('C:\deneme\' + ExtractFileName(Application.ExeName)), True);
***YADA***
CopyFile('C:\\Autoexec.bat', 'A:\\Backup\\Autoexec.bat', False);
CopyFile(PChar(Edit1.Text), PChar(Edit2.Text), False);
***YADA***
uses ShellAPI;
function CopyAllFiles(sFrom, sTo: string; Protect: boolean): boolean;
{ Copies files or directory to another directory. }
var F: TShFileOpStruct; ResultVal: integer; tmp1, tmp2: string;
begin
FillChar(F, SizeOf(F), #0);
Screen.Cursor := crHourGlass;
try
F.Wnd := 0;
F.wFunc := FO_COPY;
{ Add an extra null char }
tmp1 := sFrom + #0;
tmp2 := sTo + #0;
F.pFrom := PChar(tmp1);
F.pTo := PChar(tmp2);
if Protect then
F.fFlags := FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS
else
F.fFlags := FOF_SIMPLEPROGRESS;
F.fAnyOperationsAborted := False;
F.hNameMappings := nil;
Resultval := ShFileOperation(F);
Result := (ResultVal = 0);
finally
Screen.Cursor := crDefault;
end;end;
Uses ShellApi, ShlObj;
procedure CopyFiles(const FromFolder: string; const ToFolder: string);
var Fo : TSHFileOpStruct; buffer : array[0..4096] of char; p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(FromFolder)); //this is folder that you want to copy
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(ToFolder); //this is where the folder will go
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('File copy process cancelled')
end;
CopyFiles('Kopyalamak istediğin klasörün yolu ve adı','Kopyalamak istediğin dizin ve ad yani hedef');
***YADA***
Hedef dizin, c:\deneme\ olsun . Proğramı otomatik olarak bulur ve hedef dizine koyalar.
CopyFile(pchar(ExtractFileName(Application.ExeName)),pchar('C:\deneme\' + ExtractFileName(Application.ExeName)), True);
***YADA***
CopyFile('C:\\Autoexec.bat', 'A:\\Backup\\Autoexec.bat', False);
CopyFile(PChar(Edit1.Text), PChar(Edit2.Text), False);
***YADA***
uses ShellAPI;
function CopyAllFiles(sFrom, sTo: string; Protect: boolean): boolean;
{ Copies files or directory to another directory. }
var F: TShFileOpStruct; ResultVal: integer; tmp1, tmp2: string;
begin
FillChar(F, SizeOf(F), #0);
Screen.Cursor := crHourGlass;
try
F.Wnd := 0;
F.wFunc := FO_COPY;
{ Add an extra null char }
tmp1 := sFrom + #0;
tmp2 := sTo + #0;
F.pFrom := PChar(tmp1);
F.pTo := PChar(tmp2);
if Protect then
F.fFlags := FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS
else
F.fFlags := FOF_SIMPLEPROGRESS;
F.fAnyOperationsAborted := False;
F.hNameMappings := nil;
Resultval := ShFileOperation(F);
Result := (ResultVal = 0);
finally
Screen.Cursor := crDefault;
end;end;
Kaydol:
Kayıtlar (Atom)