Главная страница
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.025 c
1-1105685375
Kelis
2005-01-14 09:49
2005.01.30
ComObj?


1-1105950102
andrey__
2005-01-17 11:21
2005.01.30
Преобразование ANSI строку в ASCII строку


1-1105623291
Kray
2005-01-13 16:34
2005.01.30
array of variant в константе


1-1105613951
WhiteGuy
2005-01-13 13:59
2005.01.30
Отлов ошибок


4-1102596395
serg128
2004-12-09 15:46
2005.01.30
Как на WinAPI переименовать файл?