Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по TKOLListBox [Delphi, Windows]


Страницы:   1 2

ALex13 ©   (2004-11-08 23:12:00) 

Камрады помогите!
Как программно выделить определенный пункт в ListBox.
Используя CurIndex можно только получить индекс текущего элемента.
Строка типа: ListBox1.CurIndex:=5 - не срабатывает.

Использую: Delphi 6, KOL v.1.95


thaddy   (2005-02-16 01:12:00) [21]

hwndLV: HWND = yourcontrol.handle

Thats all


Halfback   (2005-02-15 23:51:00) [22]

>> Unknown Mystic
Вот теперь всё пучком. Сенкс!!!

>> VNavigator
Прошу ногами не пинать но не пойму как эту процедуру вызывать. Я вот пишу
procedure TForm1.Button1Click(Sender: PObj);
begin
Set_Checked(,1,True);
end;

А вот что писать до первой запятой??? И можно пояснение процедуры??? Т.е. что каждый параметр значит? Особенно что писать на место hwndLV: HWND ???


VNavigator   (2005-02-15 23:20:00) [23]

Попробуй ставить чек этой процедурой
procedure TForm1.Set_Checked(hwndLV: HWND; i: Integer; Checked: Boolean);
var
 Item: TLVItem;
begin
 Item.statemask := LVIS_STATEIMAGEMASK;
 Item.State := ((Integer(Checked) and 1) + 1) shl 12;
 SendMessage(hwndLV, LVM_SETITEMSTATE, i, Integer(@Item));
end;


Unknown Mystic   (2005-02-15 14:18:00) [24]

>> Halfback   (15.02.05 13:59) [7]

Потому, что надо использовать метод LVItemAdd().
Что бы проверить стоит ли галочка или нет надо использовать LVItemStateImgIdx[]

// В твоем примере в цикле begin и end можно было не ставить.


Halfback   (2005-02-15 13:59:00) [25]

>> Unknown Mystic ©
Всё сделал как Вы написали но в компоненте вообще ничего не появляется. Вот, например, пишу процедуру:

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
var
 i: integer;
begin
ListView1.Clear;
for i:=1 to 10 do
   begin
   ListView1.Add('Slovo ' + Int2Str(i));
   end;            
end;

и ничего не появляется. Почему так?


Unknown Mystic   (2005-02-15 12:57:00) [26]

>> Halfback   (15.02.05 02:09) [4]

Попробуй TKOLListView у него есть опция что-то вроде lvoCheckBoxes. Кстати Style не забудь в lvsList поставить (так кажется он называется)


SPeller   (2005-02-15 10:42:00) [27]

Halfback   (15.02.05 2:09) [4]
Только OwnerDraw


Halfback   (2005-02-15 02:09:00) [28]

У меня вот тоже вопрос по TKOLListBox.
Т.к. CheckListBox в KOL/MCK нет(во всяком случае я не нашел) то вот хотелось бы узнать, как в имеющемся компоненте TKOLListBox приделать к стороке слева галочку как это реализовано в VCL CheckListBox??? А то простое выделение строки как то визуально не очень смотриться и хочется галочку.


Alex13   (2004-11-09 18:17:00) [29]

Спасибо большое.
Все заработало!


ecm   (2004-11-08 23:37:00) [30]

Что бы работало присваивание, типа
ListBox1.CurIndex:=5
не обходимо чтобы в ListBox1.Options обязательно было:
loNoExtendSel = TRUE;
loMultiSelect = FALSE;
иначе НЕ работает :)
...
MSDN: LB_SETCURSEL
...
Remarks

Use this message only with single-selection list boxes. You cannot use it to set or remove a selection in a multiple-selection list box.


Sewix   (2004-11-08 23:31:00) [31]

ListBox1.ItemSelected[5]:=true;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо