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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2013, 17:47   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию Уведомление о создании файла срабатывает 2 раза

DirectoryChangeNotify при создании файла срабатывает два раза подряд
Код:
procedure TFrmPrinc.SthChange(Sender: TDirChangeNotifier;
 const FileName, OtherFileName: WideString; Action: TDirChangeNotification);
var
  Fmt, Line: WideString; 
begin
  case Action of
    dcnFileAdd: AdvNotify(FileName);
    dcnFileRemove: Fmt := 'Remove file %s';
    dcnRenameFile, dcnRenameDir: Fmt := '%s renamed to %s';
     dcnLastAccess: Fmt := 'Date last access file %s  modified';
    dcnLastWrite: Fmt := 'Date last write file %s modified';
    dcnCreationTime: Fmt := 'Creation time file %s modified';
    end;
Интересно почему?

Ну если отлавливать нажатия клавиш хуком то там тоже HC_ACTION идет два раза с тем же кодом клавиши один раз с отрицательным значением LParam второй раз с положительным так его можно отфильтровать (lParam>0).
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 05.06.2013 в 17:50.
HellMercenariess вне форума Ответить с цитированием
Старый 06.06.2013, 07:00   #2
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Код:
   procedure SthChange(Sender: TDirChangeNotifier; const FileName,
     OtherFileName: WideString; Action: TDirChangeNotification);


procedure TFrmPrinc.SthChange(Sender: TDirChangeNotifier;
 const FileName, OtherFileName: WideString; Action: TDirChangeNotification);
var
  Fmt, Line: WideString;
  I: Integer;
  MayBeFile:string;
begin
  case Action of
    dcnFileAdd: AdvNotify(FileName);
    dcnFileRemove: Fmt := 'Remove file %s';
    dcnRenameFile, dcnRenameDir: Fmt := '%s renamed to %s';
     dcnLastAccess: Fmt := 'Date last access file %s  modified';
    dcnLastWrite: Fmt := 'Date last write file %s modified';
    dcnCreationTime: Fmt := 'Creation time file %s modified';
    end;
Подскажите пожалуйста почему на одно любое изменение в каталоге срабатывает по 3 раза и как этого избежать
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 06.06.2013, 08:26   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
срабатывает по 3 раза
А какие акции при этом срабатывают?
Цитата:
там тоже HC_ACTION идет два раза с тем же кодом клавиши один раз с отрицательным значением LParam второй раз с положительным
Это другое - захват - отпускание.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.06.2013, 21:14   #4
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А какие акции при этом срабатывают?
Одна и та же, если добавлен фалй то
dcnFileAdd

Если файл изменен то 3 раза dcnModified
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 07.06.2013, 19:22   #5
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Никто не сталкивался с необходимостью отслеживать изменения на дисках?
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём ошибка при создании файла? If-then-do Помощь студентам 6 24.09.2010 20:27
Проблема при создании файла (3CH) Livores Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2010 17:01
ошибка в создании файла acid_bmstu Общие вопросы Delphi 1 17.05.2010 23:51
Диалоговое окно при создании файла tae1980 Microsoft Office Excel 5 16.03.2009 21:41