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

Вниз

выделение в comboBox   Найти похожие ветки 

 
Guest00   (2005-01-20 06:09) [0]

Здравствуйте !
На ToolBar (TToolBar) размещёно несколько компонент:
dtList (TDateTimePicker), cbVehicle (TComboBox) и др.

cbVehicle.Items заполняется данными в Run Time (выполняется хранимая процедура). После этого устанавливается cbVehicle.ItemIndex := 0;
Плохо то, что cbVehicle выделяет текущие данные, как будто он имеет фокус ввода. Стиль cbVehicle.Style := csDropDown;
Если пройтись клавишей Tab по всем компонентам, выделение у cbVehicle сбрасывается, и дальше компонент работает как положено.
Никак не получается установить cbVehicle.ItemIndex <> -1; и сбросить выделение.
ClearSelection и DeleteSelected устанавливают cbVehicle.ItemIndex в значение -1.


 
KilkennyCat ©   (2005-01-20 06:34) [1]

может, проще убрать у него фокус ввода? Раз после табпробега работает как надо...


 
guest00   (2005-01-20 08:58) [2]

KilkennyCat !
Он не имеет фокуса ввода, но текст выделен.
Это сбивает меня и пользователей с правильного пути.


 
Alcogol   (2005-01-20 09:28) [3]

может сделать setfocus другому компоненту.
(по-моему это тоже самое что и Tab).


 
geust00   (2005-01-20 09:59) [4]

фокуса ввода cbVehicle не имеет, а вот если установить
cbVehicle.Style := csDropDownList; то выделение пропадает, - то, что надо. Но это не решение. Я устанавливал фокус ввода другому компоненту dtList (TDateTimePicker), не помогло, конечно.
Этот comboBox всего-то не сбрасывает выделение.


 
KilkennyCat ©   (2005-01-20 10:33) [5]

Попробовал воспроизвести ситуацию. Изначально установил TabOrder = 0 другому элементу. Никаких выделений при любых изменениях. Седьмая Делфи, вин2000.


 
guest00   (2005-01-20 11:37) [6]

сейчас принесу текст.


 
guest00   (2005-01-20 12:07) [7]

Ситуация такова.

в главной форме
type
 TForm1 = class(TForm)
 ...
 public
   waylist1: TWaylistType1;
 ...
 end

есть TWaylistType1 - тоже форма, но с двумя конструкторами
type
 TWaylistType1 = class(TForm)
 ...
 public
   constructor Create(AOwner: TComponent); overload; override;
   constructor Create(AOwner: TComponent; AParent:TWinControl);  reintroduce; overload;
 ...
 end

В данном случае вызывается конструктор

 waylist1 := TWaylistType1.Create(self, TabSheet1);

Этот код выполняется в конструкторе главной формы TForm1.

"неправильный" компонент cbVehicle расположен
на форме waylist1: TWaylistType1; и заполняется не в конструкторе формы TWaylistType1; а при установке её свойства ADOConn: TADOConnection.

В конструкторе главной формы читается ini - файл. Если в нём указан пароль, в конструкторе (в последних строках) выполняется попытка соединения с БД, т.е. устанавливается свойство waylist1.ADOConn: TADOConnection и заполняется этот cbVehicle.
(это случай 1)

Если пароль не указан, соединение с БД не выполняется, cbVehicle не заполняется. Соединение устанавливается пользователем активизацией соответствующих процедур.
(это случай 2)

В случае 2 всё [ok]. В случае 1 и возникает неожиданная ситуация.
Т. е. в том случае, когда заполнение comboBox происходит в конструкторе главной формы.



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1104062538
Alex_S
2004-12-26 15:02
2005.01.30
Странности DBGrid при работе с InterBase


1-1106072354
W_h_i_t_e_
2005-01-18 21:19
2005.01.30
.txt в .Res


14-1105559322
Кудесник
2005-01-12 22:48
2005.01.30
Посоветуйте ХОРОШУЮ программу для изучения иностранных языков...


4-1102446497
Lord de Mon
2004-12-07 22:08
2005.01.30
Как перехватить выключение компа?


1-1105716876
race1
2005-01-14 18:34
2005.01.30
действия и свойства