Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 19:49   #1
Shaitan63
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 72
По умолчанию Копирования файлив

как заставить этот код копировать не все файлы, а только тот который выделен?
Код HTML:
SorcPath:='D:\' ;
FileOperation(listbox1.Items,SorcPath,FO_copy)
Shaitan63 вне форума Ответить с цитированием
Старый 21.05.2008, 20:52   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Надо заменить listbox1.Items на listbox1.Items.Strings[listbox1.ItemIndex]
eoln вне форума Ответить с цитированием
Старый 21.05.2008, 21:27   #3
Shaitan63
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 72
По умолчанию

Я пробовал это пошит:
Код:
[Warning] Main.pas(278): Unsafe type 'PChar'
[Warning] Main.pas(299): Unsafe type 'pFrom: PAnsiChar'
[Warning] Main.pas(299): Unsafe type 'PChar'
[Warning] Main.pas(300): Unsafe type 'pTo: PAnsiChar'
[Warning] Main.pas(300): Unsafe type 'PChar'
[Warning] Main.pas(321): Unsafe code '@ operator'
[Warning] Main.pas(322): Unsafe code '@ operator'
[Warning] Main.pas(342): Unsafe type 'PChar'
[Warning] Main.pas(346): Unsafe type 'PChar'
[Warning] Main.pas(350): Unsafe type 'PChar'
[Warning] Main.pas(354): Unsafe type 'PChar'
[Warning] Main.pas(358): Unsafe type 'PChar'
[Warning] Main.pas(362): Unsafe type 'PChar'
[Warning] Main.pas(366): Unsafe type 'PChar'
[Warning] Main.pas(370): Unsafe type 'PChar'
[Warning] Main.pas(374): Unsafe type 'PChar'
[Warning] Main.pas(378): Unsafe type 'PChar'
[Warning] Main.pas(382): Unsafe type 'PChar'
[Warning] Main.pas(386): Unsafe type 'PChar'
[Warning] Main.pas(390): Unsafe type 'PChar'
[Warning] Main.pas(394): Unsafe type 'PChar'
[Warning] Main.pas(587): Unsafe type 'PChar'
[Warning] Main.pas(592): Unsafe type 'lpBuffer: PAnsiChar'
[Warning] Main.pas(595): Unsafe type 'pszDisplayName: PAnsiChar'
[Warning] Main.pas(595): Unsafe type 'lpBuffer: PAnsiChar'
[Warning] Main.pas(596): Unsafe type 'lpszTitle: PAnsiChar'
[Warning] Main.pas(596): Unsafe type 'PChar'
[Warning] Main.pas(603): Unsafe type 'lpBuffer: PAnsiChar'
[Warning] Main.pas(604): Unsafe type 'lpBuffer: PAnsiChar'
[Warning] Main.pas(606): Unsafe type 'lpBuffer: PAnsiChar'
[Warning] Main.pas(624): Unsafe code '@ operator'
[Warning] Main.pas(625): Unsafe code '@ operator'
[Warning] Main.pas(635): Unsafe code '@ operator'
[Warning] Main.pas(636): Unsafe code '@ operator'
[Warning] Main.pas(646): Unsafe code '@ operator'
[Warning] Main.pas(647): Unsafe code '@ operator'
[Warning] Main.pas(657): Unsafe code '@ operator'
[Warning] Main.pas(658): Unsafe code '@ operator'
[Warning] Main.pas(673): Unsafe code '@ operator'
[Warning] Main.pas(684): Unsafe code '@ operator'
[Hint] Main.pas(792): Variable 'FileName' is declared but never used in 'Tform1.PlayClick'
[Warning] Main.pas(903): Unsafe code '@ operator'
[Hint] Main.pas(1224): Variable 'PD' is declared but never used in 'Tform1.ProgressBar1MouseUp'
[Warning] Main.pas(1242): Unsafe typecast of 'TObject' to 'pPlayListItem'
[Warning] Main.pas(1272): Unsafe typecast of 'TObject' to 'pPlayListItem'
[Warning] Main.pas(1309): Unsafe typecast of 'TObject' to 'pPlayListItem'
[Warning] Main.pas(1343): For loop control variable must be simple local variable
[Warning] Main.pas(1348): Unsafe typecast of 'pPlayListItem' to 'TObject'
[Warning] Main.pas(1400): For loop control variable must be simple local variable
[Warning] Main.pas(1405): Unsafe typecast of 'pPlayListItem' to 'TObject'
[Warning] Main.pas(1460): Unsafe typecast of 'pPlayListItem' to 'TObject'
[Warning] Main.pas(1488): For loop control variable must be simple local variable
[Warning] Main.pas(1492): Unsafe typecast of 'TObject' to 'pPlayListItem'
[Error] Main.pas(1551): Incompatible types: 'TStrings' and 'String'
[Fatal Error] ScreenPlayer.dpr(5): Could not compile used unit 'Main.pas'
Shaitan63 вне форума Ответить с цитированием
Старый 23.05.2008, 12:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
[Error] Main.pas(1551): Incompatible types: 'TStrings' and 'String'
Какой оператор находится в этой строке?
Цитата:
FileOperation
Это чего за процедура?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 14:19   #5
Shaitan63
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 72
По умолчанию

Ой прости забыл дать код
Код:
function FileOperation(FL:TStrings;ToPath:string;Action:integer):boolean;
var SHFO: TSHFileOpStruct;
    i : integer;
    FromPath : string;
begin
  with SHFO do begin
    wnd := Application.Handle;
    wFunc := Action;
    FromPath:= '';
    for i := 0 to FL.Count-1 do begin
      FromPath:=FromPath+FL[i]+#0;
    end;
    FromPath := FromPath+#0;
    pFrom := PChar(FromPath);
    pTo := PChar(ToPath);
    fFlags := FOF_ALLOWUNDO ;
  end;
  Result := SHFileOperation(SHFO)=0;
end;
Shaitan63 вне форума Ответить с цитированием
Старый 23.05.2008, 14:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чтоб
Цитата:
заставить этот код копировать не все файлы, а только тот который выделен
нужно сделать примерно следующее:
Код:
FileOperation(listbox1.Items[listbox1.ItemIndex],SorcPath,FO_copy)
.................
function FileOperation(FL:String;ToPath:string;Action:integer):boolean;   
var SHFO: TSHFileOpStruct;   
    i : integer;   
    FromPath : string;   
begin   
  with SHFO do begin   
    wnd := Application.Handle;   
    wFunc := Action;   
      FromPath:=FL[i]+#0;   
    end;   
    pFrom := PChar(FromPath);   
    pTo := PChar(ToPath);   
    fFlags := FOF_ALLOWUNDO ;   
  end;   
  Result := SHFileOperation(SHFO)=0;   
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 15:20   #7
Shaitan63
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 72
По умолчанию

неработает ругается на listbox1.ItemIndex может быть есть другой способ?
Shaitan63 вне форума Ответить с цитированием
Старый 23.05.2008, 17:58   #8
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Объяви функцию в начале в разделе type TForm1 = class(TForm)...
function FileOperation(FL:String;ToPath:stri ng;Action:integer):boolean;

А имя самой функции поменяй на
function TForm1.FileOperation(FL:String;ToPa th:string;Action:integer):boolean;
eoln вне форума Ответить с цитированием
Старый 24.05.2008, 17:01   #9
Shaitan63
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 72
По умолчанию

Я сделол всё как сказали, но неработает запускается и говорит "неправильное или слишком длинное имя".
Shaitan63 вне форума Ответить с цитированием
Старый 24.05.2008, 17:32   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Вот работает
Код:
function TForm1.FileOperation(FL:String;ToPath:string;Action:integer):boolean;
var SHFO: TSHFileOpStruct;
    FromPath : string;
    pFrom, pTo : PAnsiChar;
    fFlags: FILEOP_FLAGS;
begin
  with SHFO do begin
    wnd := Application.Handle;
    wFunc := Action;
    FromPath:=FL+#0;
    pFrom := PChar(FromPath);
    pTo := PChar(ToPath);
    fFlags := FOF_ALLOWUNDO ;
  end;
  Result := SHFileOperation(SHFO)=0;
end;
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для копирования knyz Microsoft Office Excel 28 11.01.2009 06:12
Параметры копирования Черничный Общие вопросы Delphi 4 14.08.2008 10:57
Конструктор копирования Djaconda Общие вопросы C/C++ 3 11.06.2008 18:54
Запрет копирования pinhead Win Api 11 10.01.2007 07:01