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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2012, 08:19   #1
honor
Новичок_Delphi7
Пользователь
 
Аватар для honor
 
Регистрация: 22.01.2008
Сообщений: 23
По умолчанию Цикл по каталогам Windows, создание каталогов

Подскажите пож-та, мне нужно создать папки в Windows, иногда бывает так что такая папка уже есть, програма выдает ошибку, как этого избежать?
Как в переменных перечислить все нужные мне каталоги, а затем в цикле, проверить каждую есть такая или нет, и если нет, то создать такую именно в нужном мне регистре?! Как воспользоваться массивом из нужных мне переменных?! Результат вывести в Tedit1.
Код:
Procedure TForm2.Button1Click(Sender: TObject);
begin
// Create folders to Disk D:\
MkDir ('D:\TEST');
MkDir ('D:\TEMP');
MkDir ('D:\Documents');
MkDir ('D:\Downloads');
// и т.д. 

if IOResult <> 0 then
    MessageDlg('Cannot Create Directory!', mtWarning, [mbOK], 0)
  Else
    MessageDlg('Directory Created!', mtWarning, [mbOK], 0);

end;
Delphi 10 Lite, OS: windows 7 Pro 32-bit, RU

Последний раз редактировалось Stilet; 02.09.2012 в 10:38. Причина: Убрал теги CODE
honor вне форума Ответить с цитированием
Старый 02.09.2012, 09:53   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
Procedure TForm2.Button1Click(Sender: TObject);
const ar:array [0..3] of string=('D:\TEST','D:\TEMP','D:\Documents',''D:\Downloads');
var
i:integer;
begin
for i:=0 to 3 do
if DirectoryExists(ar[i]) then
showmessage('папка: '+ar[i]+' существует!')
 else
try
MkDir (ar[i]);
except
showmessage('папка: '+ar[i]+' не создана!');
end;
end;
Кольша вне форума Ответить с цитированием
Старый 02.09.2012, 13:32   #3
honor
Новичок_Delphi7
Пользователь
 
Аватар для honor
 
Регистрация: 22.01.2008
Сообщений: 23
По умолчанию

Спасибо, изменил код:

// Create folders to Disk C:\ and D:\
procedure TForm2.Button1Click(Sender: TObject);
Const ar:array[0..2] Of String=('C:\TEMP2', 'D:\TEST1', 'D:\TEST2');
var i:integer;
begin
for I := 0 to 3 do
if DirectoryExists(ar[i]) then
Showmessage('Директория'+ar[i]+' существует!')
Else
Try
MkDir(ar[i]);
Except
Showmessage('Директория'+ar[i]+' создана!');
end;

при нажатии "Break", выдает ошибку на строке:
MkDir(ar[i]);
Изображения
Тип файла: jpg 0209121-02.jpg (30.0 Кб, 75 просмотров)
Delphi 10 Lite, OS: windows 7 Pro 32-bit, RU

Последний раз редактировалось honor; 02.09.2012 в 13:39. Причина: вставка рис
honor вне форума Ответить с цитированием
Старый 02.09.2012, 14:01   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

try ловится отладчиком, при запуске откомпилированной программы этого не будет

И цикл надо от 0 до 2

Последний раз редактировалось eoln; 02.09.2012 в 14:07.
eoln вне форума Ответить с цитированием
Старый 02.09.2012, 19:28   #5
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
procedure TForm2.Button1Click(Sender: TObject);
Const ar:array[0..2] Of String=('C:\TEMP2', 'D:\TEST1', 'D:\TEST2'); 
var i:integer;
begin
for I := 0 to 2 do
if DirectoryExists(ar[i]) then
Showmessage('Директория'+ar[i]+' существует!')
Else
Try
MkDir(ar[i]);
Except
Showmessage('Директория'+ar[i]+' не создана!');
end;
Кольша вне форума Ответить с цитированием
Старый 02.09.2012, 19:32   #6
honor
Новичок_Delphi7
Пользователь
 
Аватар для honor
 
Регистрация: 22.01.2008
Сообщений: 23
По умолчанию

Спасибо, исправил. Сразу спрошу, не подскажете, как вывести мессадж не в ShowMessage а в трей, в симпатичную подсказочку около часов, ну или не симпатичную?!
Delphi 10 Lite, OS: windows 7 Pro 32-bit, RU

Последний раз редактировалось honor; 02.09.2012 в 20:13. Причина: ошибки
honor вне форума Ответить с цитированием
Старый 02.09.2012, 20:50   #7
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Найдите компонент FWTrayIcon там есть функция showBaloonHint вроде так, дак вот она выводит уведомления возле трея)
Кольша вне форума Ответить с цитированием
Старый 09.09.2012, 22:45   #8
honor
Новичок_Delphi7
Пользователь
 
Аватар для honor
 
Регистрация: 22.01.2008
Сообщений: 23
По умолчанию

Подскажите, как вывести информацию о созданных каталогах в реквизит на форме?! Какой взять?
Delphi 10 Lite, OS: windows 7 Pro 32-bit, RU
honor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FileListBox и движение по каталогам glazik Компоненты Delphi 2 23.02.2012 00:43
FileListBox и движение по каталогам glazik Общие вопросы Delphi 0 22.02.2012 12:08
Вопрос по каталогам agarum Общие вопросы Delphi 6 10.01.2010 12:46
Создание удаление каталогов, копирование файлов. Alar Общие вопросы Delphi 1 18.12.2007 18:30
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34