Вниз
Скачать: CL | DM;

редактирование ListView   Найти похожие ветки 

 
ther   (2008-12-09 17:08) [0]

вроде поискал не нашел нужной темы...
проблема следующая...мне нужно что бы можно было кликать в ListView по всем ячейкам(и изменять их содержимое) а не только первую...можно ли этокак то сделать?


 
Rouse_ ©   (2008-12-09 17:15) [1]

В смысле? В режима Report редактировать содержимое сабитемов? При переключении в режим редактирования получай хэндл инплейсэтитора посредством отправки сообщения LVM_GETEDITCONTROL и выставляй ему нужную позицию... Но только в этом случае придется перехватывать момент окончания редактирования и подставлять измененный текст в нужное место.


 
ther   (2008-12-09 17:22) [2]

ага в режиме Report редактировать содержимое сабитемов...попробую поискать..спасибо за наводку..но если можно по подробней...вдруг не найду


 
Rouse_ ©   (2008-12-09 17:47) [3]

Вот пример получения текста с активного инплейсэдитора в TreeView и ListView контролах, дальше развивай по аналогии:

function GetEditControlText(Control: TWinControl): String;
var
 GetHandleMessage: DWORD;
 EditControlHandle: THandle;
begin
 // uses CommCtrl;
 Result := "";
 GetHandleMessage := 0;
 if (Control is TTreeView) then
   GetHandleMessage := TVM_GETEDITCONTROL
 else
   if (Control is TListView) then
     GetHandleMessage := LVM_GETEDITCONTROL;
 if GetHandleMessage = 0 then Exit;
 EditControlHandle := SendMessage(Control.Handle, GetHandleMessage, 0, 0);
 if EditControlHandle <= HINSTANCE_ERROR then Exit;
 SetLength(Result, SendMessage(EditControlHandle, WM_GETTEXTLENGTH, 0, 0) + 1);
 SendMessage(EditControlHandle, WM_GETTEXT, Length(Result), DWORD(@Result[1]));
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 if TreeView1.IsEditing then
   ShowMessage("Текст внутри редактора: " + GetEditControlText(TreeView1));
 if ListView1.IsEditing then
   ShowMessage("Текст внутри редактора: " + GetEditControlText(ListView1));
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
3-1213733259
Ulti
2008-06-18 00:07
2009.01.25
БД paradox


15-1228111662
WondeRu
2008-12-01 09:07
2009.01.25
Баги на форуме


15-1227596126
depoint
2008-11-25 09:55
2009.01.25
Техника безопасности при заправке картриджей


2-1228900436
WeTeR
2008-12-10 12:13
2009.01.25
Отправка изображения с использованием сокетов


1-1206585666
San1712
2008-03-27 05:41
2009.01.25
Как узнать адрес процедуры в потоке из модуля этой же программы?




   Наверх