Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

TListView. Setfocus внутри OnSelectItem   Найти похожие ветки 

 
neversleep   (2011-02-10 16:12) [0]

Пытаюсь сделать из TListView"а редактор свойств объектов, наподобие "Object TreeView" в Delphi7; т.е беру обычный TListView и создаю 2 колонки (ViewStyle=vsReport) Свойство | Значение, далее обрабатываю событие SelectItem, по которому создаю свой EDIT (в который будет введено значение) и устанавливаю на него фокус:

Windows.SetFocus(FObjPropEdit);

Проблема заключается в том, что после выхода из события(SelectItem), мой EDIT теряет фокус, как сделать чтобы фокус оставался у него ?
Код:

procedure TForm1.lvPropsSelectItem(Sender: TObject; Item: TListItem;
 Selected: Boolean);
var
 R: TRect;
begin
 if Item = nil then
   Exit;

 //lvProps.Items.BeginUpdate;
 SendMessage(lvProps.Handle, LVM_GETITEMRECT, Item.Index, Integer(@R));

 FObjPropEdit := CreateWindowEx(WS_EX_CLIENTEDGE or WS_EX_CONTROLPARENT, "EDIT",
   PChar(Item.SubItems[0]),
   WS_CHILD or WS_VISIBLE or WS_CLIPSIBLINGS or ES_AUTOHSCROLL or ES_LEFT,
   lvProps.Column[0].Width + 1,
   R.Top,
   R.Right - R.Left - lvProps.Column[0].Width,
   R.Bottom - R.Top,
   lvProps.Handle,
   0,
   hInstance,
   nil);

 SendMessage(FObjPropEdit, WM_SETFONT, Self.Font.Handle, 1);
 SetWindowLong(FObjPropEdit, GWL_USERDATA, Integer(Item));

 //lvProps.Selected := nil;
 //lvProps.Items.EndUpdate;
 Windows.SetFocus(FObjPropEdit);
end;

Delphi7, Win7;


 
clickmaker ©   (2011-02-10 17:40) [1]

я бы не смешивал TListView из VCL с апишным Edit
попробуй TEdit


 
clickmaker ©   (2011-02-10 17:41) [2]

да, и чем TValueListEditor не подошел?


 
neversleep   (2011-02-10 18:33) [3]


> я бы не смешивал TListView из VCL с апишным Edit
> попробуй TEdit

С Tedit"ом я первым делом пробовал, ситуация такая же, только ещё Access violation вылетает при непонятных условиях (после вызова TEdit.SetFocus()).

> да, и чем TValueListEditor не подошел?

Да собственно хочется использовать стандартные апишные окна/подходы, т.к всё это дело планирую писать на C++(mingw), Дельфи использую потому что отлаживать/экспериментировать удобнее.


 
neversleep   (2011-02-12 10:47) [4]

Если кому интересно: ListBox для этих целей больше подошёл (+ конечно ручная отрисовка строк и тп). Но оговорюсь, - реализация задуманного ещё не закончена, но пока полёт нормальный :)



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.068 c
15-1333225802
Юрий
2012-04-01 00:30
2013.03.22
С днем рождения ! 1 апреля 2012 воскресенье


2-1346856136
Новичок
2012-09-05 18:42
2013.03.22
Как изменить цвет нужной строки ListView ?


15-1333312206
Юрий
2012-04-02 00:30
2013.03.22
С днем рождения ! 2 апреля 2012 понедельник


2-1331284249
rraktir
2012-03-09 13:10
2013.03.22
Как сделать маску ввода под проценты?


2-1328128979
Karabaz
2012-02-02 00:42
2013.03.22
Приложение жоско залипает