Как узнать изменилось ли поле диалога

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Как узнать изменилось ли поле диалога

Post by GrAnD »

Подскажите пожалуйста, можно ли узнать было ли изменено определенное поле в диалоге, например DI_TEXT, либо оно на момент обработки осталось неизменным?
Если можно то ткните носом как.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Как узнать изменилось ли поле диалога

Post by DrKnS »

User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как узнать изменилось ли поле диалога

Post by NightRoman »

А точное определение "изменено определенное поле в диалоге" какое? Например, то о чем говорит DrKnS, может сработать для текста, который на самом деле и не был изменен, а просто в поле "стрелочками походили".
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как узнать изменилось ли поле диалога

Post by NightRoman »

А также есть баг (http://bugs.farmanager.com/view.php?id=1470), когда Фар может установить состояние Unchannged даже при реально уже измененном тексте (см. первый комментарий к тикету).
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Re: Как узнать изменилось ли поле диалога

Post by GrAnD »

Да, я уже понял что все равно придется сравнивать строку до редактирования и после редактирования для полной уверенности в неизменности.
а этот флаг можно использовать только для предварительной проверки
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как узнать изменилось ли поле диалога

Post by NightRoman »

Да, это самый надежный способ. В принципе можно поиграться еще с DN_EDITCHANGE. Но если важно именно "тот же текст или нет" независимо от того, редактировали или нет (может и да, но потом восстановили как было), то лучше чем сравнить с начальными сохраненными значениями вряд ли что придумать можно.

P.S. А флаг вообще ни о чем не говорит реально, особенно с учетом бага упомянутого. Так что я бы его и для предварительной проверки не использовал. Так и программировать меньше. А производительность тут не фактор, все равно это все в UI делается.
Post Reply

Return to “Разработка плагинов”