![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как получить имена полей в listview [D7, XP]
4izh © (2006-08-11 23:07:00)народ,
как используя сообщения узнать названия полей в компоненте listview(стиль репорт)
который находится в чужом приложении .
какое сообщение надо отослать чтоб получить оную информацию ???
malyar (2006-08-13 16:58:00) [1]нет не значения итемов меня интересуют, а название поля в заголовке .
а делается ето так :
var
buf:array [0..254] of char;
hd_itm:hd_item;
hnd:hwnd;
begin
hnd:=findwindowex(listview1.Handle,0,pchar('SysHeader32'),nil);
if hnd = 0 then begin showmessage('error');exit;end;
hd_itm.cchTextMax:=254;
hd_itm.pszText:=@buf[0];
sendmessage(hnd,hdm_getitem,1,lparam(@hd_itm));
edit1.Text:=string(buf);
end;
и естественно в реальных условиях придется юзать чужое А.П.
begin...end (2006-08-12 08:49:00) [2]И память для всей структуры LVITEM, конечно, тоже нужно будет выделить в чужом процессе.
begin...end (2006-08-12 08:47:00) [3]Если под полями подразумевается текст в ячейках, то LVM_GETITEMTEXT. Только не забудьте, что буфер для приёма текста нужно будет выделить в чужом приложении, а после посылки сообщения скопировать в своё.