Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.069 c