Вверх ↑
Этот топик читают: Гость
Ответов: 216
Рейтинг: -4
#16: 2012-05-12 01:00:20 ЛС | профиль | цитата
как можно сделать так чтобы при наведении на столбец менялся курсор, и если можно на каждый столбец по разному.
карма: 0

0
Разработчик
Ответов: 26206
Рейтинг: 2137
#17: 2012-05-12 03:23:40 ЛС | профиль | цитата
mestnyi писал(а):
как можно сделать так чтобы при наведении на столбец менялся курсор

Для начала надо написать трекер мыши над таблицей, который будет преобразовывать координаты в индексы строк и столбцов. Это дело в текущих таблицах не реализовано
------------ Дoбавленo в 03.22:
Вот тебе пример трекера столбцов


Add(MainForm,2953706,70,210)
{
Width=451
Height=375
Font=[MS Sans Serif,8,1,0,1]
Caption=""
Position=1
link(onCreate,10041622:doEnum,[])
}
Add(StrList,15034837,154,168)
{
Strings=#26:sdfsdf utyuyt popo;aaaaa;;|14:fzsdfzs;bbbb;;|13:sdfszz;cccc;;|14:sdfszz;ddddd;;|14:sdfszz;eeeee;;|14:sdfszz;fffff;;|14:fzsdfzs;gggg;;|13:sdfszz;hhhh;;|15:fzsdfzs;iiiii;;|15:sdfszz;jjjjjj;;|
}
Add(MTStrTbl,4376548,70,315)
{
Left=10
Top=5
Width=420
Height=305
Color=-16777194
Font=[MS Sans Serif,10,1,128,1]
Name="MtS_tbl"
HintManager="mtst_hint"
Layout="horiz_1"
WidthScale=100
HeightScale=100
Columns=#8:Col1=132|8:Col2=132|8:Col3=132|
ColumnClick=1
Point(onMouseMove)
Point(PHandle)
Point(MouseX)
Point(MouseY)
link(onMouseMove,2536700:doSubItem,[(141,349)(141,299)(57,299)(57,377)])
}
Add(MT_String,922736,224,210)
{
link(onResult,2904434:doRowAction,[])
}
Add(ArrayEnum,10041622,168,224)
{
link(onItem,922736:doMTString,[])
link(Array,15034837:Array,[])
}
Add(MST_RowAction,2904434,280,210)
{
MSTControl="MtS_tbl"
}
Add(VBoxLayout,12452202,70,168)
{
Name="horiz_1"
Space=5
Padding=5
}
Add(InlineCode,2536700,98,371)
{
WorkPoints=#9:doSubItem|
EventPoints=#9:onSubItem|
DataPoints=#7:PHandle|6:MouseX|6:MouseY|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses Windows, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|15: onSubItem,|12: MouseX,|12: MouseY,|24: PHandle: THI_Event;|56: procedure doSubItem(var _Data: TData; Index: word);|5: end;|0:|14:implementation|0:|31:procedure THiAsmUnit.doSubItem;|3:var|21: sControl: PControl;|24: HTI: TLVHitTestInfo; |5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|37: HTI.pt.x := ToIntegerEvent(MouseX);|37: HTI.pt.y := ToIntegerEvent(MouseY);|61: sControl.Perform( LVM_SUBITEMHITTEST, 0, Integer( @HTI ) );|35: if HTI.flags <> LVHT_NOWHERE then|40: _hi_onEvent(onSubItem, HTI.iSubItem)|8: else |44: _hi_onEvent(onSubItem, -1); |4:end;|0:|4:end.|
link(onSubItem,5410312:doStrCat,[])
link(PHandle,4376548:PHandle,[])
link(MouseX,4376548:MouseX,[])
link(MouseY,4376548:MouseY,[])
}
Add(StatusBar,6473259,224,371)
{
SizeGrip=1
}
Add(StrCat,5410312,168,371)
{
Str1="Колонка : "
link(onStrCat,6473259:doText,[])
}


Дальше юзай компонент UseExtCursor
карма: 22

0
Ответов: 216
Рейтинг: -4
#18: 2012-05-12 12:33:33 ЛС | профиль | цитата
nesco, на заголовки столбцов когда наводишь а у тебя полностью на столбцы.
карма: 0

0
Разработчик
Ответов: 26206
Рейтинг: 2137
#19: 2012-05-12 12:50:27 ЛС | профиль | цитата
mestnyi писал(а):
на заголовки столбцов когда наводишь а у тебя полностью на столбцы

А где об этом было написано Твои же слова
mestnyi писал(а):
при наведении на столбец

И где здесь хоть слово про заголовок
карма: 22

0
Ответов: 8939
Рейтинг: 824
#20: 2012-05-12 13:47:21 ЛС | профиль | цитата
Анекдот писал(а):
ГАИ: Почему не включили поворотник перед манёвром?!
Водила: А чего его включать, я и так знаю, куда мне ехать!

карма: 19

1
Голосовали:Andrey
Разработчик
Ответов: 26206
Рейтинг: 2137
#21: 2012-05-12 19:07:18 ЛС | профиль | цитата
Короче, по сабжу -- сделать такое крайне затруднительно по причине того, система не дает никакого события попадания курсора в область заголовка таблицы. Можно попытаться сделать только на дискретном методе, отлавливая попадание мыша в определенный диапазон окна, даже компонент новый для такого сделали -- PointInRectParam (описания на него пока нет, но есть пример на форуме). Но занимайтесь этим сами, в гробу я видал тратить на это свое время
------------ Дoбавленo в 19.06:
Вот, самому стало интересно, нарисовал трекер колонок по заголовкам -- lvtrack_subitem.sha.
Пришел к выводу, что надо сделать еще один нужный компонент -- GlobalMouseHook
карма: 22

2
файлы: 1lvtrack_subitem.sha [7.7KB] [262]
Голосовали:foksov, filyaxxxcom
Ответов: 16884
Рейтинг: 1239
#22: 2012-05-12 20:11:45 ЛС | профиль | цитата
nesco, тебе не кажется, что
программирование в HiAsm
превращается в
борьбу с HiAsm
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26206
Рейтинг: 2137
#23: 2012-05-12 22:09:21 ЛС | профиль | цитата
Tad писал(а):
превращается в
борьбу с HiAsm

Дааа... Есть моменты, которые превращаются в непреодолимое препятствие. Тут есть некоторая проблема самого концепта, особенно для начинающих -- всего предусмотреть невозможно в принципе, а писать на IC выходит за рамки самого основного концепта
карма: 22

0
Ответов: 216
Рейтинг: -4
#24: 2012-05-12 23:58:45 ЛС | профиль | цитата
nesco,
система не дает никакого события попадания курсора в область заголовка таблицы
а то что при наведении курсора меняется "цвет".
Вот, самому стало интересно, нарисовал трекер колонок по заголовкам -- lvtrack_subitem.sha.
вот то что надо одна проблема при выходе из программы на пару минут застывает курсор и программа, потом выключается.
карма: 0

0
Разработчик
Ответов: 26206
Рейтинг: 2137
#25: 2012-05-13 00:09:27 ЛС | профиль | цитата
mestnyi писал(а):
а то что при наведении курсора меняется "цвет".

Нам не дает никаких сообщений, цвет система меняет сама.
mestnyi писал(а):
при выходе из программы на пару минут застывает курсор и программа, потом выключается

Оригинально, но я такого у себя не замечал, сразу выключалвсь. Это мой пример так выключался, или что-то свое уже наваял Попробуй отцепить onClose формы от контейнера
карма: 22

0
Ответов: 216
Рейтинг: -4
#26: 2012-05-13 12:30:56 ЛС | профиль | цитата
nesco, да твой пример так работает
Попробуй отцепить onClose формы от контейнера
это давно попробовал что он есть что его нету разницу не чувствую.
------------ Дoбавленo в 12.30:
nesco, из события "onMouseHook" что должен выдавать твой код.
карма: 0

0
Разработчик
Ответов: 26206
Рейтинг: 2137
#27: 2012-05-13 13:19:43 ЛС | профиль | цитата
mestnyi писал(а):
из события "onMouseHook" что должен выдавать твой код.

Млин, детский сад какой-то -- поставь дебаг и посмотри, что он выдает.
карма: 22

0
Ответов: 216
Рейтинг: -4
#28: 2012-05-13 19:23:05 ЛС | профиль | цитата
nesco, не знал же я не надо ругаться,
вот то что надо одна проблема при выходе из программы на пару минут застывает курсор и программа, потом выключается.
а с этим ничего нельзя сделать,что мне передать чтобы это исправит.
карма: 0

0
Разработчик
Ответов: 26206
Рейтинг: 2137
#29: 2012-05-13 19:36:36 ЛС | профиль | цитата
mestnyi писал(а):
а с этим ничего нельзя сделать,что мне передать чтобы это исправит

Понятия не имею. Попробуй оставить только один элемент хука мыши и посмотри, будет ли такая затычка. У меня нет такой затычки, потому не могу ничего полезного сказать, не хватает данных
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#30: 2012-05-13 19:43:04 ЛС | профиль | цитата
mestnyi писал(а):
на пару минут застывает курсор
mestnyi, а если точнее - на сколько минут застывает
Если честно, то я не верю в минуты.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)