Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.02.2014, 17:46
Dimrix Dimrix вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 4
Репутация: 10
Вопрос SendMessage+CheckList

Народ, подскажите как получить состояние "Cheked|Uncheked" чужого окна из CheckList? Кучу примеров есть для CheckBox. Пробовал их юзать - не получается
Код:
1.  k:=SendMessage(hw,LVM_GETITEMSTATE,1,0);
2.  k:=SendMessage(hw,CB_GETCURSEL,1,0);
3.  k:=SendMessage(hw,LB_GETSEL,1,0);
4.  k:=SendMessage(hw,LB_GETCURSEL,1,0);
5.  k:=SendMessage(hw, BM_GETCHECK, 1, 0)
6.  k:=SendMessage(hw, BM_GETState, 1, 0)

где 3ий параметр - порядковый номер в листе.
Причём текст этих ячеек я успешно получаю:
Код:
  l:=SendMessage(hw,LB_GETTEXTLEN,1,0);
  SetLength(s,l);
  SendMessage(hw,LB_GETTEXT,1,Integer(s));

Подскажите как получить значение чека в чеклисте?
Ответить с цитированием
  #2  
Старый 15.02.2014, 21:33
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

BM_GETCHECK: >0 - checked, =0 - unchecked
Ответить с цитированием
  #3  
Старый 16.02.2014, 04:39
Dimrix Dimrix вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 4
Репутация: 10
Счастье

Цитата:
Сообщение от Alegun
BM_GETCHECK: >0 - checked, =0 - unchecked
Цитата:
5. k:=SendMessage(hw, BM_GETCHECK, 1, 0)
С CheckList не канает, по крайней мере у меня ничего не вышло
Ответить с цитированием
  #4  
Старый 16.02.2014, 06:10
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

К сожалению, умею лишь считывать из "чужих" окошек текст, могу нажимать там некоторые кнопки, ещё немного мелочёвки - сталкивался в своих сборках, иного не дано, поэтому чисто теоретика, вдобавок так и не нашёлся RzChkLst.pas, сплошные dcu-шки, что из себя представляет TRzCheckList, его методы, узнать не удалось

Но давайте посмотрим, что может выдавать на-гора листбокс (раз с LB_GETTEXT у вас прокатывает)

lb_GetCount - вероятно так можно узнать общее кол-во птис в этом списке

lb_GetCurSel; lb_GetSel; lb_GetSelItems - возвращают индекс выбранного элемента, если вы меняли состояние чека, то скорее всего это и будет он самый

lb_GetItemData - вот это ужо сурьозный аргумент, можно в цикле опрашивать все элементы списка, проверяя битовое состояние возвращаемой переменной, может из 32х какой и отвечает за галку, всё может быть, надо проверять

lb_GetItemRect - во, графика попёрла. Это совсем грубо, но вероятно так можно отследить состояние (внешне "чеканутая" область будет отличаться от области без галки) Крайний вариант

Замечание: Конечно, это всё относится к текстовым данным, но возможно среди них и прячется указатель на состояние чекового поля, всё может быть
Ответить с цитированием
  #5  
Старый 16.02.2014, 22:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

lb_GetItemData - Не подойдёт, отвечает за данные хранимые для выбранного пункта.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter