Форум: "KOL";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизItemAtPos Найти похожие ветки
← →
Flea (2006-06-28 23:58) [0]товарищи! а почему у коловского listbox нет свойства itematpos? или я его не вижу просто? а может быть есть другой способ узнать номер итема под курсором мыши?
← →
ECM © (2006-06-29 11:30) [1]Действительно нет ... :(
Но доделать это несложно... А пока воспользуйтесь сл. функцией:function LBItemAtPos(LBCtrl: PControl; X,Y: Integer): Integer;
var
R: TRect;
P: TPoint;
i: Integer;
begin
P := MakePoint(X,Y);
for i := LBCtrl.Perform(LB_GETTOPINDEX,0,0) to LBCtrl.Count -1 do begin
LBCtrl.Perform(LB_GETITEMRECT, i , Integer(@R));
if PointInRect(P,R) then begin
Result := i;
Exit;
end;
end;
Result := -1;
end;
Тут есть одна особенность - item-ы просматриваются начиная с первого видимого. И если их будет "огромное количество" - цикл может затянуться.
Впрочем VCL делает точно так же.
← →
Flea (2006-06-29 14:45) [2]благодарю за помощь
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.03 c