Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];

Вниз

«Интерфейс пользователя» → Инфоскроллер   Найти похожие ветки 

 
Kolan ©   (2009-04-16 22:21) [0]


*Пост в рамках не существующей конференции «Интерфейс пользователя».*

В этот раз говорить, в основном, буде не я. У меня пока плохо получается. :)


Стандартный скроллбар занимает часть окна, причем место это пропадает зря,
там можно что-нибудь отобразить. Инфоскроллер — это обычный cкроллбар на
котором размешена дополнительная информация.

Более подробное описание и пример смотрите на сайте Артёма Горбунова
(http://www.artgorbunov.ru/bb/ui/infoscroller/).

С того момента как я прочел про инфоскроллер я хотел реализовать эту идею,
но на Делфи так и не получилось. Руки такие... :)

Получилось только на haXe в одном из недавно сделанных проектов
(http://www.ksoftware.ru/wiki/ksino), но нам ведь это не интересно :)

----
Прошу уважаемых комментаторов поделится идеями создания (а может
и готовыми решениями) инфоскроллера на Делфи. Хорошо бы, чтобы решение
было простым, работало на скроле любого компонента и легко
адаптировалась под конкретную задачу. Решение, думаю, должно быть таким,
чтобы инфоскроллером мог воспользоваться каждый Дельфи программист.


 
Игорь Шевченко ©   (2009-04-16 22:27) [1]

Сделать можно и на Delphi, только один вопрос - а зачем ?


 
Kolan ©   (2009-04-16 22:32) [2]


> А зачем?

Игорь, иногда, в редких случаях, хорошо обдумав, все взвесив его бывает полезно использовать, да и места пропадающего жалко...
И вот в эти самые моменты я не знаю как это реализовать.


 
Rouse_ ©   (2009-04-16 22:34) [3]

Достаточно интересная идея, но мы с Jack128 развили такую 3 с половиной года назад в одном коммерческом проекте - достаточно успешно получилось. Главная идея - необходимо уйти от мелкого размера скроллера - сам по себе он не функционален, как показала практика после тестирования на фокус-группах, поэтому не стоит столь сильно обращать внимание на приведенную по ссылкам демонстрацию.


 
Andy BitOff ©   (2009-04-16 22:38) [4]

> Kolan ©   (16.04.09 22:21) [0]

У меня в IDE D7 почти такой, не с картинками, но там выводится инфа по ошибка, поиску, закладкам и т.п. Castalia его создает.


 
Игорь Шевченко ©   (2009-04-16 22:39) [5]


> Игорь, иногда, в редких случаях, хорошо обдумав, все взвесив
> его бывает полезно использовать, да и места пропадающего
> жалко...
> И вот в эти самые моменты я не знаю как это реализовать.
>


пропадающее место хорошо использовать под полезный контент, а не под звоночки и свисточки.

А говоря проще - в Ms Office есть ? В Open Office есть ? Нету - значит нафиг не надо среднему пользователю, платить не будет и напрягаться не стоит.


 
Kolan ©   (2009-04-16 22:39) [6]

Rouse_, пожалуйста, покажите скрины. Если некуда выложить, пришлите мне на почту (kolan@ksoftware.ru).


 
@!!ex ©   (2009-04-16 22:42) [7]

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

По первой ссылке - такой инфоскорллер перестает быть функциональным на больших документах.. а на маленьких структуру и так видно.


 
Kolan ©   (2009-04-16 22:45) [8]

Еще примеры инфоскроллов
http://www.artgorbunov.ru/bb/soviet/20070920/


 
Kolan ©   (2009-04-16 22:48) [9]

@!!ex, в каждом конкретном случае, конечно, надо думать как его применить (если вообще стоит), но не имея тех. возможности можно думать сколько угодно.
КСИНО, про которую я говорил в [0], сделана на флеше по сути, там инфоскролл я просто нарисовал. А как в Делфи — не знаю.


 
Rouse_ ©   (2009-04-16 22:49) [10]

Скрины могу в понедельник выложить, впрочем могу собрать демку...
Общая идея какова:
Превью на скролле может дать пользователю просто некую визуализацию запрашиваемого текста.
У нас есть всего 20 пикселей при многостраничном (более 200 страниц) документе
Так зачем зажимать глаза пользователя и пытаться впихнуть эту визуализацию в 20 пикселей, если при подведении мышки к скролу можно выдвинуть в стороне от скрола некую превью-панель на которой будут видны ближайшие 4-8 страниц? Естественно оформить ее красиво и добавить некий экшен по клику на самом превью...


 
Kolan ©   (2009-04-16 22:51) [11]

Rouse_, и то и то, если можно :)

Идея с превью, имхо, другая. Инфоскролл тем и хорош, что его можно окинуть взглядом не делая ничего другого. Он показывает примерное место, которое может заинтересовать.


 
Rouse_ ©   (2009-04-16 22:53) [12]


> Инфоскролл тем и хорош, что его можно окинуть взглядом не
> делая ничего другого.

Согласен, но только в том случае когда обьем документа не велик


 
Kolan ©   (2009-04-16 22:55) [13]

Rouse_, ну спорить не буду, это бесполезно без конкретики.

Все-таки очень бы хотелось заострить внимание на реализации для Делфи, должны же быть не ленивые мастера :)


 
Игорь Шевченко ©   (2009-04-16 23:03) [14]

Вот в Visual Diff-ах всяких может и оправдано, а для остального остается вопрос - нафига ?

Rouse_ ©   (16.04.09 22:49) [10]


> Так зачем зажимать глаза пользователя и пытаться впихнуть
> эту визуализацию в 20 пикселей, если при подведении мышки
> к скролу можно выдвинуть в стороне от скрола некую превью-
> панель на которой будут видны ближайшие 4-8 страниц? Естественно
> оформить ее красиво и добавить некий экшен по клику на самом
> превью...


А может проще как в Adobe Reader-е сделать ? Они с документами всяко плотнее работают...


 
Rouse_ ©   (2009-04-16 23:05) [15]


> А может проще как в Adobe Reader-е сделать ? Они с документами
> всяко плотнее работают...

Я бы не сказал :)


 
Игорь Шевченко ©   (2009-04-16 23:07) [16]

Rouse_ ©   (16.04.09 23:05) [15]

Ну я твоего не видел, ничего сказать не могу. Но в том самом Reader-е по многстраничным документам навигация довольно удобная


 
Игорь Шевченко ©   (2009-04-16 23:12) [17]

Кстати, я может секрет открою, но для работы с многостраничными документами еще до компьютеров и инфосколлеров придумали оглавление.


 
Германн ©   (2009-04-17 00:45) [18]


> Игорь Шевченко ©   (16.04.09 23:12) [17]
>
> Кстати, я может секрет открою, но для работы с многостраничными
> документами еще до компьютеров и инфосколлеров придумали
> оглавление.

Вот кстати. Раньше datasheets в pdf-формате были практически без оглавлений. Я так к этому привык, что новые подобные документы с оглавлением мне жутко не понравились, ибо оглавление уменьшило ширину самого документа. А теперь настолько к нему привык, что раздражает уже отсутствие оглавления!


 
Noctis   (2009-04-17 08:41) [19]

Удалено модератором


 
Kolan ©   (2009-04-17 09:43) [20]


> для работы с многостраничными
> документами еще до компьютеров и инфосколлеров придумали
> оглавление.

Оглавление плохо тем, что оно разделено с содержанием во времени. Можно либо смотреть оглавление либо читать книгу.


 
Ega23 ©   (2009-04-17 10:08) [21]


> Можно либо смотреть оглавление либо читать книгу.


Можно его открыть в боковой панели и наступит щщастье.


 
Kolan ©   (2009-04-17 10:12) [22]

Ega23, в бумажной книге нельзя, к сожалению. :)


 
Ega23 ©   (2009-04-17 10:27) [23]


> Ega23, в бумажной книге нельзя, к сожалению. :)


Бумажную книгу в мониторе читать вообще неудобно.
Да и выглядеть это будет несколько экстравагантно.


 
b z   (2009-04-17 10:38) [24]


> Ms Office есть ?
В ворде есть, правда не такой как в [0], а на мой взгляд более удобный.


 
sniknik ©   (2009-04-17 10:41) [25]

> Ega23, в бумажной книге нельзя, к сожалению. :)
зато инфо скролбар в нее вставить раз плюнуть конечно...


 
@!!ex ©   (2009-04-17 10:44) [26]

> [25] sniknik ©   (17.04.09 10:41)

Вы не ходили на вотрую ссылку. там типа инструкция в подобном виде реализована(бумажная).


 
Anatoly Podgoretsky ©   (2009-04-17 11:38) [27]

> Kolan  (17.04.2009 10:12:22)  [22]

А мы про бумажные книги говорим?


 
Anatoly Podgoretsky ©   (2009-04-17 11:40) [28]

> b z  (17.04.2009 10:38:24)  [24]

В Ворде есть два интерфейса

1. боковая панель
2. web like интерфейс, который позволяет перейти к оглавлению, а с него сразу на субъект. Этим я пользуюсь чаще.


 
Kolan ©   (2009-04-17 15:53) [29]

Ладно, модифицирую вопрос. Есть ли у кого идеи как реализовать достаточно универсальный и удобный инфоскроллер (такой о котором я говорил в [0])?

Игорь, вот ты бы как бы решал такую задачу?


 
Игорь Шевченко ©   (2009-04-17 16:35) [30]


> Игорь, вот ты бы как бы решал такую задачу?


В первую очередь задался бы целесообразностью


 
@!!ex ©   (2009-04-17 16:45) [31]

> [29] Kolan ©   (17.04.09 15:53)

Про унивресальность забудь.
Понятно, что сам скроллер не может расставить метки, потому что просто не знает как анализировать данные.
Отсюда вывод:
делаем ему свойство Labels:array of TShape
Где
TShape = class
protected
 Position:TRect;
 PenColor:TColor;
 BrushColor:TColor;
public
 Procedure Draw(DC:HDC); virtual; abstract;  
end;

TShapeRect = class(TShape)
protected
public
 Constructor Create(Position:TRect);
 Procedure Draw(DC:HDC); override;
end;

И так далее.
Объект использующий инфоскроллер парсит данные и на их основе добавляет Shape в Labels. После чего вызывает функцию UpdateLabels, которая отрисовывает все шейпы на TBitMap, который в свою очередь используется в качестве фона для скроллера.


 
Kolan ©   (2009-04-17 16:45) [32]

Хорошо, задался. Теперь дальше (в техническом смысле)?


 
@!!ex ©   (2009-04-17 16:48) [33]

Хотелось бы отметить, что для удобства было бы не плохо сделать возможность использовать несколько Labels в рамках одного скроллера и переключаться между ними по мере необходимости.
Это удобно, если данные могут быть представлены в нескольких видах.
Пример:
Данные - набор строк с числами.

На инфоскроллере мы можем выделять самые большие числа, или построить график по числам или еще что-то.


 
Kolan ©   (2009-04-17 16:49) [34]

@!!ex, это я имел в виду, когда говорил об универсальности. То есть хочется, как-то давать инфоскроллу данные пригодные для отрисовки,тот кто эти данные подготавливает, пусть и думает о том, чтобы они имели смысл.


> TBitMap, который в свою очередь используется в качестве
> фона для скроллера

А как подсунуть битмап в качестве поля.


 
@!!ex ©   (2009-04-17 16:51) [35]

> [34] Kolan ©   (17.04.09 16:49)

Виндовому? вероятно никак. Свой писать.


 
Kolan ©   (2009-04-17 16:56) [36]

@!!ex, тогда как сделать так, чтобы можно было засунуть свой во все компоненты со скролом?
Типа хочешь стандартный — ничего не делай, хочешь инфо- — сделай то-то...


 
@!!ex ©   (2009-04-17 16:58) [37]

> [36] Kolan ©   (17.04.09 16:56)

Без изменения сорсов - никак. Попробовать наследовать и перекрыть стандартный скроллбар... Но я понятия не имею как это делать..
Сделать и надеятсья, что будущие компоненто писатели захоят использовать в своих разработках.


 
Kolan ©   (2009-04-17 17:03) [38]

Фразу надо дополнить:
Сделать и надеяться, что будущие компоненто-писатели захотят использовать в своих разработках довольно глупо.

Получается, что в Дельфи такое не сделаешь? Что скажут остальные? Выходит можно сделать только какое-то одноразовое решение, так?


 
Игорь Шевченко ©   (2009-04-17 17:13) [39]


> Получается, что в Дельфи такое не сделаешь?


Сделаешь. Только надо ли ?


 
@!!ex ©   (2009-04-17 17:15) [40]

> [38] Kolan ©   (17.04.09 17:03)

Да ладно? Почему глупо? Вы не используете сторонние компоненты? Наверно авторы этих компонентов идиоты, раз полагали что кто-то будет их использовать. ;)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.007 c
2-1241637084
Pauk
2009-05-06 23:11
2009.06.28
Как пользоваться LoadString?


3-1222915555
Татьяна
2008-10-02 06:45
2009.06.28
Lookup поля в таблицах.


15-1240591691
Kolan
2009-04-24 20:48
2009.06.28
«Интерфейс пользователя» → Интерфейсная справка


2-1241774258
Alex7
2009-05-08 13:17
2009.06.28
TRANSFORM в тексте ADO, MS SQL


2-1242076140
***Evil***
2009-05-12 01:09
2009.06.28
OnClick на SubMenu не работает?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский