Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.036 c
2-1172900738
Roman_S
2007-03-03 08:45
2007.03.25
Выделить несколько строк в ListView


2-1172934025
evgenij_
2007-03-03 18:00
2007.03.25
Name формы в текстовом виде


15-1172883778
Andy BitOff
2007-03-03 04:02
2007.03.25
Просьба к администрации


15-1172481913
Игорь Шевченко
2007-02-26 12:25
2007.03.25
Запущен новый проект CPPBUILDER.RU


15-1172460338
Slider007
2007-02-26 06:25
2007.03.25
С днем рождения ! 24 февраля





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