Поставили на меня задачу, а повис уже на проектировке. Программа о составлении расписания. Нужна довольно большая, 115*35, таблица. Собираюсь рисовать руками сетку и вырисовывать текст. На крайний случай писать на C и использовать StringGrid, тогда, правда, интерес пропадет совсем. Но как вот сделать фиксированные заголовки? Т.е. двигаем область с таблицей вправо, а вертикальный заголовок стоит; двигаем вниз, тоже движется вниз. Создать три Frame с таблицами и отлавливать сообщения прокруток? P.S. Откуда, как не из MSDN можно вычитать о Drag&Drop и других тонкостях или заморочках windows? Может есть в сети место, где из MSDN можно выкачивать отдельные страницы?
kropalik Издеваешься?) С Flash у меня плохо, но это все равно не решение. Скачал сейчас три готовые из сети. Ничего лучше, чем получается в Exel'е не сделано.
opennetworks Не для меня. Только Asm&C. Ничем еще не занимался пока. n0name Опишешь каким видишь компонент? А лучше еще, как его делать.
Если сие чудо только для внутреннего использования, то отлично решается в банальном Excel ), часто даже встроенный VB юзать не приходится - достаточно комбинации штатных формул, а чтобы заголовки не двигались c таблицей там меню Окно\разделить области, затем Окно\закрепить области )
DarkWanderer При отрисовке рисуешь заголовок и строки начиная с comp.YOffset. comp - это внутренняя структура, описываюшая контрол. так же в comp хранишь массив строк. В чём сложность?
см. http://www.wasm.ru/forum/viewtopic.php?pid=142142#p142142 пост 34, и если готов наступить на эти грабли, то заходи через ссылки в аттаче ))
Y_Mur Это уже есть. С макросами, подсветкой ошибок и т.п. Спасибо. Схожу. n0name Сложность уже в том, что я не понял, что ты имеешь ввиду. Подумаю обязательно.
DarkWanderer Что тебе неясно? Как отрисовывать контрол, как его создавать, как обрабатывать скроллинг?
n0name Не пробовал создавать контроллы. Чего почитать? Не знаю пока чего коснуться, куда пойти и чего изучить. ds_punks Ладно.
DarkWanderer Ну регистрируешь класс - RegisterClassEx. lpfnWndProc указывает на оконную процедуру твоего окна, где ты обрабатываешь все сообщения которые приходят контролу - WM_KEYDOWN, WM_CREATE, WM_NCCREATE, WM_VSCROLL, WM_SIZE, WM_PAINT, ... Создавать как обычный дочерний контрол - CreateWindows, с указанием имени твоего класса.
n0name Понял что ты хотел сказать. Два дня думал, медитировал и понял. А если создать область с таблицей, которую скролить будет система. Отрисовывать только заголовки? Нормально получится?
n0name Система будет перерисовывать так же, как и программа? Тогда точно, как ты сказал. Полосы прокрутки лучше ни к чему не привязывать и вручную отлавливать сообщения? Если нормально, то как их рисовать?
То есть? При создании твоего контрола указываешь стили WS_HSCROLL и WS_VSCROLL, появляются полосы прокрутки, чтобы изменить параметры используй SetScrollInfo. Когда юзер будет скролить твоему контролу будет посылатся сообщение WM_VSCROLL, WM_HSCROLL.