DIF_READONLY и Checkbox-ы

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

DIF_READONLY и Checkbox-ы

Post by Ariman »

На данный момент, в диалогах флаг DIF_READONLY не дружит с чекбоксами. Собственно, возник вопрос - пуркуа бы их не подружить? Конечно, можно сделать чекбоксы неизменяемыми через диалоговую процедуру, но это как-то не очень красиво. Да и флаг уже есть подходящий.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

DIF_READONLY и Checkbox-ы.

Post by HaRT »

А в каких случаях для checkbox'а read-only предпочтительнее, чем disabled? Мне что-то не приходит в голову ни одного примера.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

DIF_READONLY и Checkbox-ы

Post by Ariman »

Это больше эстетический момент. Disabled - это, как по мне, скорее "не доступно"/"не применимо", а readonly - это есть, но поменять нельзя. Не принципиальная разница, но чисто визуально разное впечатление создает.
Для примера. Хочу я показать для файла на панели атрибут Encrypted. Readonly checkbox будет означать, что менять шифрование юзер не может, но файлы могут быть зашифрованы в принципе. А disabled нам скажет, что шифрования в данном формате не поддерживается вообще.
Кстати в Фаре это различие тоже используется, в диалоге атрибутов файла. У меня атрибут Virtual всегда disabled, а для Reparse Point аналог readonly используется, он enabled, но поменять нельзя. Не знаю какая тут мотивация была, но тем не менее.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

DIF_READONLY и Checkbox-ы

Post by HaRT »

Ariman wrote: Mon 09 Dec, 2019 17:23 Readonly checkbox будет означать, что менять шифрование юзер не может, но файлы могут быть зашифрованы в принципе. А disabled нам скажет, что шифрования в данном формате не поддерживается вообще.
Я как пользователь не могу с вами согласиться. Для меня disabled означает лишь то, что значение не может быть изменено в конкретных условиях, но ничего не говорит о том, что оно не может быть изменено вовсе. А read-only в случае checkbox'а, на мой взгляд, и вовсе неудачное состояние, потому что выглядит так, будто можно с ним что-то содержательное делать, а на самом деле нельзя. Это совсем не то же самое, что, скажем, для текста, потому что там есть и разные другие содержательные действия помимо модификации.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

DIF_READONLY и Checkbox-ы

Post by DrKnS »

Ariman wrote: Mon 09 Dec, 2019 17:23 для Reparse Point аналог readonly используется, он enabled, но поменять нельзя. Не знаю какая тут мотивация была
Мотивация такая, что поменять можно. Иногда.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

DIF_READONLY и Checkbox-ы

Post by Ariman »

HaRT wrote: Mon 09 Dec, 2019 17:36 Я как пользователь не могу с вами согласиться.
Я же и говорю, эстетический момент. Очень субъективная штука. :)
DrKnS wrote: Mon 09 Dec, 2019 20:51 Мотивация такая, что поменять можно. Иногда.
Тоже логичный вариант применения readonly.

Независимо от мотивации, предложение то моё ничего не ломает, а просто добавляет разработчику диалога возможность делать такой финт при помощи логичного и существующего флага. Вместо диалоговой процедуры, которая в сочетании с билдером стала не очень удобной (эх, event-ы бы ему). А применять флаг или нет, это уже по желанию.
Last edited by Ariman on Tue 10 Dec, 2019 09:33, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

DIF_READONLY и Checkbox-ы

Post by buniak_a_h »

HaRT wrote: Mon 09 Dec, 2019 13:01 А в каких случаях для checkbox'а read-only предпочтительнее, чем disabled? Мне что-то не приходит в голову ни одного примера.
Можно мои 5 копеек?
Иногда в макросе для позиционирования на элемент посылают Keys(("Tab"):rep(n)) (имитируют нажатие Tab n раз). Если ReadOnly, то независимо от него количество Tab-ов не меняется. Если Disabled - надо знать, сколько элементов пролетит автоматически. И это уже не каприз. Посему поддерживаю.
Last edited by buniak_a_h on Wed 11 Dec, 2019 06:21, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

DIF_READONLY и Checkbox-ы

Post by zg »

buniak_a_h wrote: Wed 11 Dec, 2019 06:21И это уже не каприз. Посему поддерживаю.
это каприз, есть DM_SETFOCUS.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

DIF_READONLY и Checkbox-ы

Post by DrKnS »

buniak_a_h wrote: Wed 11 Dec, 2019 06:21Иногда в макросе для позиционирования на элемент посылают Keys(("Tab"):rep(n)) (имитируют нажатие Tab n раз). Если ReadOnly, то независимо от него количество Tab-ов не меняется. Если Disabled - надо знать, сколько элементов пролетит автоматически. И это уже не каприз.
Произвольный диалог в произвольный момент может измениться произвольным образом.
Если ваш макрос вслепую исполняет какие-то комбо - он может в произвольный момент начать выполнять произвольную дичь (например, удалять пользователю файлы).
Если вы это делаете в каких-то своих одноразовых ad hoc скриптах - это ваше дело.
Если же вы такое публикуете - это, действительно, не каприз. Это вредительство.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

DIF_READONLY и Checkbox-ы

Post by buniak_a_h »

Чего-то я не пойму. Не хотите - не делайте. Тема не моя, чего накинулись то???
Просили привести пример, когда это было бы полезно - я привёл. Есть ещё такая вещь, как память пальцев. Знаю, что надо нажать Tab 3 раза и, не глядя на экран, жму. Особенно полезно при многократном повторении. Ну и клавиатурные макросы никто не отменял.
Post Reply

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