PDA

Просмотр полной версии : Приколы от производителя



lexar
02.03.2007, 18:18
Хочу несколько оживить форум.
Есть идея:
излагается некоторая программистская загадка,
построенная на нелепости разработчика,
и все пытаются угадать ответ
или
предложить свою загадку.

Загадка.
Интерфейс не должен удивлять пользователя.
Не важно, что это - интерфейс конечного пользователя или библиотеки функций.
Я на днях был удивлен интерфейсом виндяшного контрола ToolTip.
Если передать ему текст, разбитый на строки стандартными \r\n,
он все равно выведет его в одну строку (бред №1)
Что бы подсказка стала мультистрочной, контролу нужно передать специальное сообщение (бред №2)
И это сообщении вовсе не TTM_SETMULTILINE, как мог бы подумать наивный программист, не знакомый с конзнями мелкомягких.

Угадайте что за сообщение устанавливает мультистрочность?
(именно угадайте, а не посмотрите,
интересно есть ли программеры, которые думают как мелкомягкие).

Serpion
04.03.2007, 08:43
TTM_SETWINDOWSLINE? =)

lexar
05.03.2007, 19:21
Не, не угадал. Нормальному программеру это в голову сразу не придет:
TTM_SETMAXTIPWIDTH

Пример идиотской экономии:
когда одно действие неявно вызывает другое.
Если бы я делал этот контрол,
я бы все таки ориентировался на \r\n.
Ну не будет программер вставлять эти символы,
если собирается выводить в одну строку.

Или у кого-то другое мнение?

$FFF
05.03.2007, 19:53
Смотрю у Лексара идет разговор типа: "Тихо вечером сам с собою..."

Elfio
05.03.2007, 23:23
Смотрю у Лексара идет разговор типа: "Тихо вечером сам с собою..."
Развивает многопоточность :rzhu_nimagu:

traveller
06.03.2007, 14:49
Не, не угадал. Нормальному программеру это в голову сразу не придет:
Или у кого-то другое мнение?

Это из серии "Великие хитрости Мокрософта"

pal
06.03.2007, 18:52
меня в первую очередь удивляет использование двух символов для обозначения конца строки

lexar
06.03.2007, 19:04
меня в первую очередь удивляет использование двух символов для обозначения конца строки
Так это еще из доса тянется.
Часть операционных систем для текстовых файлов поддерживают CR LF (в смысле возврат строки, переход на следующую строку), а часть один символ CR (или LF, уже не помню).
При открытии файла в режиме "текст" в языке С/С++ '\n'
транслируется для соответствующих систем в два символа автоматически.
Так как винды строку поддерживают непосредственно,
они хотят \r\n .
Хотя - бред конечно.
Все пошло от управления кареткой печатной машинки - консоли.
Перевод строки вращал барабан, который тянет бумагу, возврат каретки возвращал в начало новой строки.
Но зачем было тащить это в винды, я не скажу.
Очередной прикол от производителя :)

pal
06.03.2007, 19:17
это и в дос не надо было тащить - обходился же весь цивилизованный мир одним \n

pal
06.03.2007, 19:22
но не в этом дело
если даже файл можно открыть в текстовом режиме ,чтобы \r было скрыто, то зачем требовать этот \r в контролах