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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.054 c
2-1166085841
iXT
2006-12-14 11:44
2006.12.31
RAM Drive


6-1154989722
Rembo
2006-08-08 02:28
2006.12.31
интернет радио: сервер


15-1165512478
oxffff
2006-12-07 20:27
2006.12.31
generics ам быть говорит CodeGear


3-1161114857
_Ламер_
2006-10-17 23:54
2006.12.31
dll - не признаёт БД


2-1166076722
Клара
2006-12-14 09:12
2006.12.31
Связи таблиц





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский