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

Вниз

Работа с TStrings   Найти похожие ветки 

 
yaric   (2004-08-18 13:01) [0]

Вопрос у меня такой: Во многих компонентах, котрые очень распростанены, порожденных от TEdit есть свойство типа TStrings
везде называется по разному (LookupItems, Items или как то еще)
так вот реализована работа с этим свойством в виде выпадающего
списка типа TComboBox. Проблема в том что тип TStrings не предусматривает информации о том какой элемент списка был выбран
пользователем после CloseUp события. Можно ли как то это узнать, например обработав какоето сообщение Api?


 
Skyle ©   (2004-08-18 13:02) [1]

Конкретно у TComboBox есть ItemIndex.


 
Iconka ©   (2004-08-18 13:04) [2]

Например ComboBox1.ItemIndex


 
yaric   (2004-08-18 13:10) [3]

Да дело в том что я же говорю у єтого компонента нет свойства ItemIndex и я хотел узнать как это делает например тот же TComboBox


 
Skyle ©   (2004-08-18 13:21) [4]


> [3] yaric   (18.08.04 13:10)

А Ctrl+Click?
Там всё есть...


 
yaric   (2004-08-18 13:43) [5]

>>Skyle
не понял


 
yaric   (2004-08-18 14:18) [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);

все время возвращает ноль. Что я деляю не так


 
Skyle ©   (2004-08-18 14:29) [7]


> [6] yaric   (18.08.04 14:18)

Это сообщение предназначено только для комбобоксов (судя по хелпу).
В другом случае делать придётся иначе.
Думаю, что компонент сам должен знать, чего в нём выбрали.
О каком компоненте речь?


 
КаПиБаРа ©   (2004-08-18 14:34) [8]


>  Во многих компонентах, котрые очень распростанены, порожденных
> от TEdit есть свойство типа TStrings
> Можно ли как то это узнать, например обработав какоето сообщение Api

TEdit порождение VCL. Он является оберткой для стандартного контрола Windows - Edit. TComboBox является оберткой для стандартного контрола Windows - ComboBox. Каждый из стандартных контролов windows обрабатывает различные сообщения. Можно что то посоветовать если знать над каким стандартным контролом windows является оберткой данный компонент.


 
yaric   (2004-08-18 14:37) [9]

Этот конмпонент из набора DevExpress
TcxMRUEdit судя по названию он служит оберткой для TEdit
но у него как я раньше говорил есть свойство LookupItems:TStrings
и кнопарик как у TComboBox, что позволяет ему работать с віпадающим списком


 
yaric   (2004-08-18 14:43) [10]

Описание разработчиков:Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window.

А иерархия у него такая:
TcxCustomMRUEdit<-TcxCustomComboBox<-TcxCustomMaskEdit<-TcxCustomEdit<-TcxControl<-TCoustomControl


 
КаПиБаРа ©   (2004-08-18 15:04) [11]

Обрати внимание на это

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");


Какой стандартный контрол создает этот компанент?



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1092895082
Пубертанец
2004-08-19 09:58
2004.09.05
Как сконвертировать *.rm в *mp3?


3-1092047298
Diman
2004-08-09 14:28
2004.09.05
импорт текстовой таблицы в DBGrid


1-1092727923
Cosinus
2004-08-17 11:32
2004.09.05
Корректное создание и вывод сообщений об исключительных ситуациях


1-1092826258
Makssim
2004-08-18 14:50
2004.09.05
Как удалить строку из файла?


3-1092225110
Barcebel
2004-08-11 15:51
2004.09.05
Извлечение данных посредством ADODataSet