Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Забавный скроллбар   Найти похожие ветки 

 
Kolan ©   (2006-12-10 19:22) [0]

http://www.artgorbunov.ru/ui/infoscroller/
В ворде бы не помешал.

Вот вариация:
http://www.usethics.ru/lib/scroll_bar/index.shtml


 
Andy BitOff ©   (2006-12-10 19:56) [1]

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


 
Kolan ©   (2006-12-10 20:07) [2]

> [1] Andy BitOff ©   (10.12.06 19:56)


Я знаю. Это же еще найти надо...


 
MeF Dei Corvi ©   (2006-12-10 20:09) [3]

В проводнике не помешало бы, в Ворде - не знаю.


 
Real ©   (2006-12-10 20:20) [4]

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

P.S. Лебедев продал бы дурак патент в мелкософт год назад, вместо того чтоб "не афишировать" - уже бы в висте юзали :)


 
Gero ©   (2006-12-10 20:59) [5]

Замечательное изобретение.


 
Kolan ©   (2006-12-10 21:30) [6]

А где бы теперь скачать такой компонент для Delphi? :)


 
Джо ©   (2006-12-10 21:35) [7]

API для него, наверное, нудный :)


 
Kolan ©   (2006-12-10 23:36) [8]

Интересно а как это сделать?
Как рисовать незнаю. Со всем остпльным разберусь :)


 
Vga ©   (2006-12-11 02:41) [9]

Прикольно... Нечто подобное кстати можно увидеть в программах сравнения файлов, WinMerge или KDiff3 например.


 
Fredy314 ©   (2006-12-11 11:24) [10]

Компонент Можно сделать, может занятся, а то пока дождёшся от борланда подачек.


 
Fredy314 ©   (2006-12-11 11:25) [11]

Интересно будет реализация такого компонента, нарушением патента г-на Лебедева?


 
OldNaum ©   (2006-12-11 11:35) [12]

API будем замороченным, верняк


 
Kolan ©   (2006-12-11 11:43) [13]

> нарушением патента г-на Лебедева

Нет. Он патентанул только программу.


 
wicked ©   (2006-12-11 12:51) [14]


> API для него, наверное, нудный :)


> API будем замороченным, верняк

не обязательно... главное - подход ;)


 
Rouse_ ©   (2006-12-11 12:57) [15]

Даже руки зачесались - себе чтоль такой прикрутить? :)
К нашим продуктам подошел бы как влитой :)


 
Kolan ©   (2006-12-11 13:06) [16]

> [15] Rouse_ ©   (11.12.06 12:57)
> Даже руки зачесались - себе чтоль такой прикрутить? :)
> К нашим продуктам подошел бы как влитой :)

У меня тоже чешуться, но я ниасилю :) Сделаешь поделись что ли :) Готов помочь.


 
Наиль ©   (2006-12-11 13:44) [17]

[0] не предназначен для работы с многостраничными документами такими, какие встречаются в Word и Adobe Reader.
Представте себе, образец текста повторенным 5-20 раз. Что тогда было бы в скролинге.
Уплотнение было бы таким большим, об удобстве говорить не пришлось.
Если сделать скроллинг не пропорциональным, а фон подвижным, то можно было бы получить приемлемый результат и для большОго количества страниц.
Что касается API, то насколько я мог заметить, то его там нет.
В скролинге отображается та же HTML-страница, что и в окне. Естественно, на основе тэгов.


 
Kolan ©   (2006-12-11 13:46) [18]

> Уплотнение было бы таким большим

Можно иначе придамать. Например общий вид кажой страницы.. Смысл в идее..


 
Rouse_ ©   (2006-12-11 13:48) [19]


> Сделаешь поделись что ли :) Готов помочь.

У нас собственная отображалка, на нее я навернуть то смогу, а вот для сторонних врятли подойдет :)


 
Rouse_ ©   (2006-12-11 13:49) [20]

В смысле вот такая примерно :)
http://grandsmeta.ru/images/14n.jpg


 
Kolan ©   (2006-12-11 13:55) [21]

> на нее я навернуть то смогу

Ну а компанент в каком формате данные будет принимать для отображения? XML же наверно..
Можно сделать универсально. Можно сделать иеррархию и для каждой программы делать потомка реагируя тем самым на разные треборания к отображению.


 
Kolan ©   (2006-12-11 13:56) [22]

> В смысле вот такая примерно :)

Куча всего :) Аж страшно...


 
Игорь Шевченко ©   (2006-12-11 14:04) [23]

Красиво. Но лень.


 
pasha_golub ©   (2006-12-11 14:10) [24]


> Игорь Шевченко ©   (11.12.06 14:04) [23]
>
> Красиво. Но лень.
>

Cогласен. Но хочется. :)


 
Игорь Шевченко ©   (2006-12-11 14:11) [25]

pasha_golub ©   (11.12.06 14:10) [24]

Хочется. Вот пусть найдется тот, кому не лень, я с радостью у него возьму готовый.


 
Kolan ©   (2006-12-11 14:13) [26]

> [25] Игорь Шевченко ©   (11.12.06 14:11)
> pasha_golub ©   (11.12.06 14:10) [24]
>
> Хочется. Вот пусть найдется тот, кому не лень, я с радостью
> у него возьму готовый.

Опешите в двух словах(можно больше) как это сделать. Я имею ввиду нарисовать, реагировать на события...


 
Rouse_ ©   (2006-12-11 14:18) [27]


> Куча всего :) Аж страшно...

Чтож ты хотел :)
Визуальное представление сметы в формате WYSIWYG :)
Сметчики не жалуются, ибо удобно им :)


 
Rouse_ ©   (2006-12-11 14:19) [28]


> Опешите в двух словах(можно больше) как это сделать. Я имею
> ввиду нарисовать, реагировать на события...

В двух словах? Сабклассить стандартный скролл с целью перехвата WM_NCPAINT и замены фона на свой :)


 
Kolan ©   (2006-12-11 14:19) [29]

> ибо удобно им

Не, я не спорю. Просто видно сколько труда вложено...


 
Rouse_ ©   (2006-12-11 14:21) [30]


> Просто видно сколько труда вложено...

Дык, Максим Черных больше года над ним корпел, и сейчас продолжает дорабатывать :)


 
Fredy314 ©   (2006-12-11 14:29) [31]

Рисуеш всё что вздумается, и реагируеш на события так-как задумано. Главное правильно задумать.

Кстати если сделать компонент, через регистрацию класса окна в DLL  с документацией по использованию и возможностям, можно будет использовать не только в Дельфи.
Кто мне скажет какие об"явления нужно об"явить а DLL чтоб можно было импортировать компонент как в Дельфи есть Import ActiveX Control?


 
Kolan ©   (2006-12-11 14:32) [32]

> и реагируеш на события так-как задумано

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


 
Игорь Шевченко ©   (2006-12-11 14:38) [33]

Rouse_ ©   (11.12.06 14:19) [28]


> В двух словах? Сабклассить стандартный скролл с целью перехвата
> WM_NCPAINT и замены фона на свой :)


Ты так больше не пугай людей


 
Fredy314 ©   (2006-12-11 14:46) [34]

> От какого класс наследоваться итд

от TWinControl.


 
Rouse_ ©   (2006-12-11 15:26) [35]


> Ты так больше не пугай людей

А кто испугался? :)


 
Игорь Шевченко ©   (2006-12-11 15:49) [36]

Rouse_ ©   (11.12.06 15:26) [35]

Я испугался. Скроллбары, которые в окнах, они NCPAINT не получают. Их окно получает, ну и эти...скроллбары рисует. Также как рамку, полосу меню и прочие неклиентские штучки.


 
Rouse_ ©   (2006-12-11 16:15) [37]

Я вообще-то о TScrollBar говорил :)


 
StriderMan ©   (2006-12-11 16:20) [38]

Не впечатлило. Чем фича реально полезна - не понимаю.


 
Игорь Шевченко ©   (2006-12-11 16:30) [39]

Rouse_ ©   (11.12.06 16:15) [37]

Эти-то скорллбары в окно встраиваются.


 
Rouse_ ©   (2006-12-11 16:34) [40]


> Эти-то скорллбары в окно встраиваются.

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


 
Игорь Шевченко ©   (2006-12-11 16:43) [41]

Rouse_ ©   (11.12.06 16:34) [40]

Не разглядел с первого раза :)


 
Иксик ©   (2006-12-11 16:48) [42]

Отличная штука!!


 
vidiv ©   (2006-12-11 16:53) [43]


> Он патентанул только программу.

Программы в РФ нельзя патентовать


 
Kerk ©   (2006-12-11 18:37) [44]

Для больших документов он не пригоден, а в маленьких я и так неплохо ориентируюсь :)

Для больших документов его можно скрестить с реализацией сколлбара в Picasa


 
Kolan ©   (2006-12-11 19:15) [45]

> Picasa

Ну а скриншот?


 
Джо ©   (2006-12-11 19:17) [46]

Странный в этой пикасе скроллбар. До сих пор не могу понять абстракцию, кою он представляет. Хотя программой пользуюсь более полугода.


 
antonn ©   (2006-12-11 19:23) [47]

в ворд бы его, а то я постоянно путаюсь, номер какой страницы появляется в хинте скролбара (не то что бы путаюсь - матерюсь и ругаюсь:) потому как если на экране 4 пиксела от нижнего края предыдущей страницы - в хинте номер той страницы)
да и в дельфи бы не помешал


 
Kerk ©   (2006-12-11 19:25) [48]

> [46] Джо ©   (11.12.06 19:17)

Я сходу понял :))

http://kerkzone.net/images/trash/picasa_sb.jpg
Забыл еще там указать, что прямоугольник, обозначающий положение страницы,и меняет высоту в зависимости от количества разделов с фотками, видимых пользователями одновременно.


 
Kolan ©   (2006-12-11 19:50) [49]

> дельфи бы не помешал

А что тут можно придумать?


 
Sapersky   (2006-12-11 19:51) [50]

Сметчики не жалуются, ибо удобно им :)

Сорри за оффтоп, но некоторые сметчики недовольны отсутствием поддержки двухколёсной мыши. И ещё кое-чем, хотя версия у них явно более старая, чем та, что на скриншоте.


 
Kolan ©   (2006-12-11 19:54) [51]

> хотя версия у них явно более старая

Ну так в чем жалоба то? В новой наверно учтено...


 
Rouse_ ©   (2006-12-11 21:26) [52]


> Сорри за оффтоп, но некоторые сметчики недовольны отсутствием
> поддержки двухколёсной мыши.

Двухколесной это, простите, через как?


 
Kolan ©   (2006-12-11 21:28) [53]

> [52] Rouse_ ©   (11.12.06 21:26)
>
> > Сорри за оффтоп, но некоторые сметчики недовольны отсутствием
>
> > поддержки двухколёсной мыши.
>
> Двухколесной это, простите, через как?

Это одно колесо верх низ, друго право лево...


 
wicked ©   (2006-12-11 21:44) [54]


> Я испугался. Скроллбары, которые в окнах, они NCPAINT не
> получают. Их окно получает, ну и эти...скроллбары рисует.
>  Также как рамку, полосу меню и прочие неклиентские штучки.
но перехватить и обработать это можно...
например, вот такие сообщения пришлось перехватывать для "скинового движка"... отрывок из WindowProc:
switch(Msg.Msg){
 case WM_DESTROY:
  ControlDestroy(Msg);
  break;
 case WM_NCCALCSIZE:
  ControlNCCalcSize(Msg);
  break;
 case WM_NCPAINT:
  ControlNCPaint(Msg);
  break;
 case WM_PAINT:
  ControlPaint(Msg);
  break;
 case WM_SIZE:
  ControlSize(Msg);
  break;
 case WM_STYLECHANGED:
  ControlStyleChanged(Msg);
  break;
 case WM_STYLECHANGING:
  ControlStyleChanging(Msg);
  break;
 case WM_NCHITTEST:
  ControlNCHitTest(Msg);
  break;
 case WM_NCLBUTTONDOWN:
 case WM_NCLBUTTONDBLCLK:
  ControlNCLButtonDown(Msg);
  break;
 case WM_NCLBUTTONUP:
 case WM_LBUTTONUP:
  ControlButtonUp(Msg);
  break;
 case WM_NCMOUSEMOVE:
  ControlNCMouseMove(Msg);
  break;
 case WM_MOUSEMOVE:
  ControlMouseMove(Msg);
  break;
/*  case WM_ERASEBKGND:
  ControlEraseBkgnd(Msg);
  break;*/
 case WM_HSCROLL:
  ControlHScroll(Msg);
  break;
 case WM_VSCROLL:
  ControlVScroll(Msg);
  break;
 default:
  Recall(Msg);
}

отрывок кода реально работающей программы


 
Gero ©   (2006-12-11 22:37) [55]

> [54] wicked ©   (11.12.06 21:44)


> вот такие сообщения пришлось перехватывать для "скинового
> движка"

В общем-то, список вполне предсказуемый.


 
Игорь Шевченко ©   (2006-12-11 22:39) [56]

wicked ©   (11.12.06 21:44) [54]

Для Caption"а в свое время пришлось перехватывать
WM_SETTEXT
WM_SYSCOMMAND
WM_SETICON
WM_NCPAINT
WM_NCACTIVATE
WM_NCMOUSEMOVE
WM_NCLBUTTONDOWN
WM_INITMENUPOPUP


 
wicked ©   (2006-12-11 22:50) [57]

> Gero ©   (11.12.06 22:37) [55]

> В общем-то, список вполне предсказуемый.

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

> Игорь Шевченко ©   (11.12.06 22:39) [56]

> WM_SETTEXT
> WM_SYSCOMMAND
> WM_SETICON
> WM_INITMENUPOPUP

до этих дело не дошло... либо плохо оттестировал, либо перекрыто в других местах... хотя скиновый компонент полностью отрисовывал окна, к которым был привязан и запускался на 98SE (под VM ware), XP (с включенными и выключенными темами)... жаль, что прожект "заглох" - скиновый движок в стадии стабильной беты... но это уже не от меня зависит


 
Игорь Шевченко ©   (2006-12-11 22:58) [58]

wicked ©   (11.12.06 22:50) [57]

А на XP я не видел нормально работающего механизма, позволяющего произвольно отрисовывать неклиентскую область. При каких-то действиях в каких-то местах все равно проскакивает XP"шное оформление. Либо надо слишком много писать, либо делать полностью клиентское окно и имитировать неклиентские области самостоятельно.


 
Eraser ©   (2006-12-11 23:05) [59]

> [58] Игорь Шевченко ©   (11.12.06 22:58)


> либо делать полностью клиентское окно и имитировать неклиентские
> области самостоятельно.

imho, в случае работы со скинами, это самый простой вариант, т.к. перехватывать надо только WM_NCHITTEST.
другое дело если требуется добавить свои элементы в неклиентскую область..


 
Sapersky   (2006-12-12 14:17) [60]

Rouse_ ©   (11.12.06 21:26) [52]

http://www.nix.ru/autocatalog/mouse_a4/A4-Tech_Optical_GreatEye_2-Wheel_WOP-35PU_5but_2Roll_9953.html

Я так понимаю, дело именно в том, что у вас "кастом".
Двухколёсная мышь сама по себе нестандартное устройство, Windows ИМХО непосредственно их не поддерживает. Для мыши ставится драйвер, который опрашивает второе колесо и выполняет прокрутку в активном скролл-окне.
Так что нужно либо изо всех сил притворяться стандартным окном, либо попробовать добраться до второго колеса вручную, через DirectInput что ли, который как раз и предназначен для работы с нестандартными многоосевыми устройствами. Впрочем, возможно, китайские мастера сделали сугубо офисную мышь и DirectInput её увидит как обычную.
Кстати о DirectInput: вот у меня ещё джойстик есть... :))


 
Rouse_ ©   (2006-12-12 14:26) [61]

Джойстик? :)
Представил себе ситуевину, когда сметчик прирутил себе руль, три педали, джойстик и виртуальный шлем в придачу и пытается работать :)
Не - такое мы врятли будем поддерживать :)



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

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.63 MB
Время: 0.03 c
2-1165616226
XfroSt
2006-12-09 01:17
2006.12.31
Как установить курсор в нужное место в МЕМО (строка,символ) ?


1-1163315458
Axis_of_Evil
2006-11-12 10:10
2006.12.31
TListBox с ручной отрисовкой


4-1156283062
Андрей555
2006-08-23 01:44
2006.12.31
КАК определеить на сколько переместилась мышка?


15-1165556140
IMHO
2006-12-08 08:35
2006.12.31
How Vista Lets Microsoft Lock Users In


2-1165836388
said46
2006-12-11 14:26
2006.12.31
TList.Sort и переполнение стека