Главная страница
    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.081 c
2-1328812974
jacksotnik
2012-02-09 22:42
2013.03.22
Часовые пояса


2-1335505590
AV
2012-04-27 09:46
2013.03.22
Eureka ловит ошибку при закрытии прораммы с TidTelnet.


2-1344598041
vasa777
2012-08-10 15:27
2013.03.22
treeview


15-1329199075
Думкин
2012-02-14 09:57
2013.03.22
Задчка с олимпиады недавней


2-1347126804
Fr
2012-09-08 21:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский