![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TStrings [D7]
yaric © (2004-08-18 13:01:00)Вопрос у меня такой: Во многих компонентах, котрые очень распростанены, порожденных от TEdit есть свойство типа TStrings
везде называется по разному (LookupItems, Items или как то еще)
так вот реализована работа с этим свойством в виде выпадающего
списка типа TComboBox. Проблема в том что тип TStrings не предусматривает информации о том какой элемент списка был выбран
пользователем после CloseUp события. Можно ли как то это узнать, например обработав какоето сообщение Api?
КаПиБаРа (2004-08-18 15:04:00) [1]Обрати внимание на это
procedure TCustomListView.CreateParams(var Params: TCreateParams);
...
CreateSubClass(Params, WC_LISTVIEW);
------------------------------------------------
procedure TCustomComboBox.CreateParams(var Params: TCreateParams);
...
CreateSubClass(Params, 'COMBOBOX');
-------------------------------------------------
procedure TCustomEdit.CreateParams(var Params: TCreateParams);
...
CreateSubClass(Params, 'EDIT');
Какой стандартный контрол создает этот компанент?
yaric (2004-08-18 14:43:00) [2]Описание разработчиков:Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window.
А иерархия у него такая:
TcxCustomMRUEdit<-TcxCustomComboBox<-TcxCustomMaskEdit<-TcxCustomEdit<-TcxControl<-TCoustomControl
yaric (2004-08-18 14:37:00) [3]Этот конмпонент из набора DevExpress
TcxMRUEdit судя по названию он служит оберткой для TEdit
но у него как я раньше говорил есть свойство LookupItems:TStrings
и кнопарик как у TComboBox, что позволяет ему работать с віпадающим списком
КаПиБаРа (2004-08-18 14:34:00) [4]
> Во многих компонентах, котрые очень распростанены, порожденных
> от TEdit есть свойство типа TStrings
> Можно ли как то это узнать, например обработав какоето сообщение Api
TEdit порождение VCL. Он является оберткой для стандартного контрола Windows - Edit. TComboBox является оберткой для стандартного контрола Windows - ComboBox. Каждый из стандартных контролов windows обрабатывает различные сообщения. Можно что то посоветовать если знать над каким стандартным контролом windows является оберткой данный компонент.
Skyle (2004-08-18 14:29:00) [5]
> [6] yaric (18.08.04 14:18)
Это сообщение предназначено только для комбобоксов (судя по хелпу).
В другом случае делать придётся иначе.
Думаю, что компонент сам должен знать, чего в нём выбрали.
О каком компоненте речь?
yaric (2004-08-18 14:18:00) [6]Народ я тут нашел в хелпе одно событие
CB_GETCURSEL. Оно An application sends a CB_GETCURSEL message to retrieve the index of the currently selected item, if any, in the list box of a combo box.
Но при Idx := SendMessage(EdFactory.Handle, CB_GETCURSEL, 0, 0);
все время возвращает ноль. Что я деляю не так
yaric (2004-08-18 13:43:00) [7]>>Skyle
не понял
Skyle (2004-08-18 13:21:00) [8]
> [3] yaric (18.08.04 13:10)
А Ctrl+Click?
Там всё есть...
yaric (2004-08-18 13:10:00) [9]Да дело в том что я же говорю у єтого компонента нет свойства ItemIndex и я хотел узнать как это делает например тот же TComboBox
Iconka (2004-08-18 13:04:00) [10]Например ComboBox1.ItemIndex
Skyle (2004-08-18 13:02:00) [11]Конкретно у TComboBox есть ItemIndex.