Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

ListView OnMouseDown change state of checkbox. [Delphi, Windows]


RusSun ©   (04.10.19 09:11

Всем привет.
Вопрос простой: Как изменить состояние checkbox'са Item'а
к примеру Есть:
   Result.LV := NewListView( Result.Form, lvsDetail, [ lvoCheckBoxes ], nil, nil, nil ).SetPosition( 40, 30 ).SetSize( 473, 327 );
   Result.LV.Color := TColor(clWindow);
   Result.LV.LVColAdd( 'Test', taLeft, 250);
   Result.LV.OnMouseDown := Result.LVMouseDown;

procedure TForm1.KOLFormShow(Sender: PObj);
begin
Form1.LV.LVItemAdd('Вариант ответа №1');
Form1.LV.LVItemAdd('Вариант ответа №2');
Form1.LV.LVItemAdd('Вариант ответа №3');
Form1.LV.Show;
end;
https://yadi.sk/i/euVebcCt4k9JxQ


DKOL   (07.10.19 08:56[1]

Используй LVItemStateImgIdx, в KOL.pas есть описание


RusSun ©   (08.10.19 14:45[2]

Пока в таком виде)

procedure TForm1.LVMouseDown(Sender: PControl; var Mouse: TMouseEventData);
var CurrRecNum:integer;
begin
// msgok(' MouseDown ');
CurrRecNum :=  LV.LVItemAtPos(Mouse.x, Mouse.y);
if Form1.LV.LVItemStateImgIdx[CurrRecNum] = 1 then
Form1.LV.LVItemStateImgIdx[CurrRecNum]:=2 else
Form1.LV.LVItemStateImgIdx[CurrRecNum]:=1
end;


RusSun ©   (08.10.19 14:46[3]


> Используй LVItemStateImgIdx, в KOL.pas есть описание
>
>


Спасибо=)


RusSun ©   (08.10.19 14:54[4]

Заметил, что если так сделать, то простое нажатие для отметки чекбокса уже не работает(


Дмитрий К ©   (08.10.19 19:00[5]

procedure TForm1.LVMouseDown(Sender: PControl; var Mouse: TMouseEventData);
var Item: Integer;
 Where: TWherePosLVItem;
begin
 Item := Sender.LVItemAtPosEx(Mouse.X, Mouse.Y, Where);
 if (Item >= 0) and (Where <> lvwpOnStateIcon) then
   Sender.LVItemStateImgIdx[Item] := Sender.LVItemStateImgIdx[Item] xor 3;
end;


RusSun ©   (09.10.19 09:26[6]

Всем Спасибо!


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо