| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > переименование и копирование файла |
| Автор: M@100DON 4.11.2007, 20:46 |
| У меня в проге стоит listbox и мне хотелось бы что бы по клику на кнопку выскакивал OpenDialog,выбирался файл и выбраный файл переименовывался в название в listbox и далее копировался в папку! |
| Автор: kemiisto 4.11.2007, 22:00 | ||
Процедура обработчик события нажатия кнопки должна быть примерна такая:
Если я правильно понял. Добавлено через 1 минуту и 19 секунд Вместо 'c:\' укажи папку, куда хочешь скопировать файл. |
| Автор: M@100DON 5.11.2007, 21:12 |
| Я наверно не правильно понимаю как пользоваться этим кодом! Короче у меня выбивает ошибку на строке с ChangeFilePath, "value assignet to we newer used" Обьясни в чём загвоздка! |
| Автор: kemiisto 5.11.2007, 21:37 | ||||
Ну, это не Error(ошибка), а всего лишь Hint(подсказка); компилятор озадачен тем, что значение переменной we присваивается, а далее эта переменная нигде не используется. Сама же ошибка может происходить из-за того, что в ListBox1 не выделен элемент.
Как видишь, здесь (ListBox1.Items.Strings[ListBox1.ItemIndex]) я узнаю текст выделенного элемента, а если ничего не выделено - будет не хорошо! Добавлено через 1 минуту и 9 секунд Кстати, а че это за переменная we? |
| Автор: M@100DON 5.11.2007, 21:48 | ||
Так ка же элемент может быть сразу выделен еси задача моей проги извлеч из файла эти элементы , а только потом их менять! |
| Автор: kemiisto 5.11.2007, 21:53 | ||||
Так в чем все-таки задача? |
| Автор: M@100DON 5.11.2007, 21:56 |
| Выбраный файл разбирается на n-количество *.gif и сразу список отображается в ListBox, а потом файл выделленый в listbox нужно менять! |
| Автор: kemiisto 5.11.2007, 22:09 | ||
| Так.... Значит сначала ты выбираешь некий файл, который
Потом выбираешь еще файл. Им заменяешь тот, который сейчас выделен в ListBox. Я правильно понял? |
| Автор: M@100DON 5.11.2007, 22:11 |
| Да, выделяю файл в списке и по кнопке выбираю файл, которым нуна заменить существующий! |
| Автор: kemiisto 5.11.2007, 22:22 | ||||
| Ну изначально я почти так и понял! Попробуй так: вместо
|
| Автор: M@100DON 5.11.2007, 22:27 | ||
Не катит, ошибку выдаёт всеравно на строке :
|
| Автор: kemiisto 5.11.2007, 22:29 |
| Это хотя бы позволит заменить существующий! А вот почему ошибка вылетает? Может скриншот даш? Добавлено через 2 минуты и 7 секунд Слушай, а ты второй параметр ('c:\') на свой путь изменил? |
| Автор: M@100DON 5.11.2007, 22:44 |
ХЗ, а какой те скриншот дать, ну вот после нажатия на F9![]() |
| Автор: kemiisto 5.11.2007, 22:55 |
| Ну тут же черным по белому написано (3 строка закладки Build) [Error] ... Undeclared identifier ChangeFilePath у тебя в uses есть SysUtils? |
| Автор: M@100DON 5.11.2007, 23:00 | ||
Ну да есть! |
| Автор: kemiisto 5.11.2007, 23:13 |
| А это Delphi какой версии? Просто функция ChangeFilePath находится в модуле ЫныГешдыю У тебя он подключен, а Delphi ругается! |
| Автор: M@100DON 5.11.2007, 23:16 |
| У меня Delphi 7 . |
| Автор: kemiisto 5.11.2007, 23:17 | ||
Знаешь ты тогда лучше опиши ее сам прямо в Unit1:
Странно, что ее в SysUtils нету... |
| Автор: M@100DON 5.11.2007, 23:27 |
| Прога запустилась, файлы не копируются! |
| Автор: kemiisto 5.11.2007, 23:43 | ||
| Ну это уже хоть что-то! Да, кстати в Delphi 7 в SysUtils такой (ChangeFilePath) функции еще не было! Я вот смотрю на скриншот и там вижу ошибку: ты отображаешь OpenDialog1, а имя файла у тебя почему-то OpenDialog2.FileName. Ты уж определись. Эта часть кода отобразить OpenDialog1 и если пользователь просто его закроет (а не выберет файл) - произойдет выход из процедуры OnClick:
Если же OpenDialog1.Execute вернет True то в OpenDialog1.FileName будет имя выбранного файла. Но уж никак ни в OpenDialog2.FileName. |
| Автор: M@100DON 5.11.2007, 23:55 | ||
Я не могу понять строку
Как может быть! Получается старый файл тоже нуна выбирать? |
| Автор: kemiisto 6.11.2007, 00:06 | ||||
В подробностях: OpenDialog1.Execute вернет True, если пользователь выберет файл и False - в остальных случаях. Если вернет False, значит пользователь файл не выбрал и все остальные действия не нужны, поэтому:
а если вернет True - значит пользователь файл выбрал и надо совершит некоторые дествия. Переменные OldFile и NewFile хранят исходное имя файла и его имя после переименования и копирования. Исходное имя (OldFile) я получаю из OpenDialog1.FileName, новое - через ChangeFilePath. Ну и, наконец, выполняю копирование OldFile -> NewFile. |
| Автор: M@100DON 6.11.2007, 15:03 |
| Сделал как нада , но всеравно файлик не копируется! В чём прикол? |
| Автор: kemiisto 9.11.2007, 22:16 |
| Слушай, может код кинешь (если возможно)? |
| Автор: M@100DON 10.11.2007, 22:08 |
| Ну лан, прикрепил файло |
| Автор: kemiisto 10.11.2007, 22:57 |
| Так сложновато будет! Хотелось бы видеть весь проект! |