IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> setfocus в DBGrid - ?
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


На PageControl1 несколько TabSheet (Tabsheet1-...Tabshitn). На каждой TabSheet по одной DBGrid, но для всех DBGrid служит источником 1 ADOTable.
При работе на первой странице, при нажатии кнопки которая перемещает курсор на DBGrid
ADOTable1.FieldByName('Номера').FocusControl;

ничего не происходит, т.к. есть таблицы с такими же ресурсами на других страницах. Можно ли как-нибудь указать программе что нужно перемещать курсор именно на ту таблицу, которая находится на активной странице?
Мне кажется что здесь кроме удаления повторяющихся таблиц ничего не поможет..

Сообщение отредактировано: 1147 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Если на закладке с №1 лежит DBGrid1, и так далее (т.е., если номер грида совпадает с номером закладки), то можно сделать такой "финт ушами": изначально установить всем Гридам DataSource = nil, и только одному, который лежит на активной странице PageControl-а, дать нормальное значение, а при переключении на другую вкладку делать вот что: (если у тебя все Гриды связаны с одной таблицей, значит, и DataSource везде один и тот же, правда?).

Итого, вешаем на событие OnChange PageControl-а вот такую процедуру:
procedure TForm1.PageControl1Change(Sender: TObject);
var i: integer;
begin
// "Гасим" Грид с предыдущей активной страницы
for i := 0 to (Sender as TPageControl).PageCount - 1 do
(FindComponent('DBGrid' + IntToStr(i + 1)) as TDBGrid).DataSource := nil;

// и "зажигаем" на теперешней активной...
(FindComponent('DBGrid' +
IntToStr((Sender as TPageControl).ActivePageIndex + 1)) as TDBGrid).DataSource := DataSource1;
end;

, и нажимаем на кнопку, код которой ты привел. Поскольку других активных ДБГридов в приложении нет, то будет изменяться именно тот, который на текущей вкладке. Причем я пробовал сделать всем остальным Enabled := False - это не помогает, помог только сброс DataSource...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.06.2024 18:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name