DIF_READONLY и Checkbox-ы

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

DIF_READONLY и Checkbox-ы

Post by Ariman »

На данный момент, в диалогах флаг DIF_READONLY не дружит с чекбоксами. Собственно, возник вопрос - пуркуа бы их не подружить? Конечно, можно сделать чекбоксы неизменяемыми через диалоговую процедуру, но это как-то не очень красиво. Да и флаг уже есть подходящий.

User avatar
HaRT
Moderator
Posts: 9276
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 98 times
Been thanked: 207 times

DIF_READONLY и Checkbox-ы.

Post by HaRT »

А в каких случаях для checkbox'а read-only предпочтительнее, чем disabled? Мне что-то не приходит в голову ни одного примера.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Ariman
Posts: 1264
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 35 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: 9276
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 98 times
Been thanked: 207 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: 5531
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 283 times

DIF_READONLY и Checkbox-ы

Post by DrKnS »

Ariman wrote:
Mon 09 Dec, 2019 17:23
для Reparse Point аналог readonly используется, он enabled, но поменять нельзя. Не знаю какая тут мотивация была
Мотивация такая, что поменять можно. Иногда.

Ariman
Posts: 1264
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 35 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.

buniak_a_h
Posts: 1444
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 103 times
Been thanked: 118 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: 5726
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 135 times
Contact:

DIF_READONLY и Checkbox-ы

Post by zg »

buniak_a_h wrote:
Wed 11 Dec, 2019 06:21
И это уже не каприз. Посему поддерживаю.
это каприз, есть DM_SETFOCUS.

User avatar
DrKnS
Posts: 5531
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 283 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 скриптах - это ваше дело.
Если же вы такое публикуете - это, действительно, не каприз. Это вредительство.

buniak_a_h
Posts: 1444
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 103 times
Been thanked: 118 times
Contact:

DIF_READONLY и Checkbox-ы

Post by buniak_a_h »

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

Post Reply

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