Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.07 c
2-1330616538
>|<
2012-03-01 19:42
2013.03.22
Ошибка перемещения файла


15-1347564415
Guest
2012-09-13 23:26
2013.03.22
Где можно узнать количество АЛУ и физических регистров процессора


15-1338358473
Bluejohn
2012-05-30 10:14
2013.03.22
Найти быстро место в исходнике


15-1338463771
Al2017
2012-05-31 15:29
2013.03.22
Теплообмен в трубах


15-1342992635
Pavlik
2012-07-23 01:30
2013.03.22
Посоветуйте цену





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский