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

Вниз

Передать фокус в dbgrig(ячейку) из WebBrowser. не получается   Найти похожие ветки 

 
Vlad Oshin ©   (2007-02-20 18:39) [0]

Вопрос.. такое впечатление, что его вообще быть не должно..
есть на форме twebbrowser, адо(невидимые), dbgrid, button
twebbrowser грузит страничку, там заполнямые поля. Они заполняются.

Если кликнуть в браузер, потом в dbgrig, и ... ничего не получается. Как будто фокус остался в навигаторе. Однако, можно нажимать на кнопку, и двигать ползунки грида.
Более того, если кликнуть по вводимому html полю навигатора, то курсор там так продолжает стоять, издевательски подмигивая. Однако, опять же, можно нажимать на кнопку, и двигать ползунки грида.

Если не кликать по навигатору - то фокус передается на ячейку ДБгрида(если по нему, гриду, кликнуть)

Я поискал в интернете - есть проблема передать фокус самому браузеру(последовал совету, на всякий случай, и ничего, как и ожидалось. Фокус ввода застревает в нем), тут же совсем наоборот. Что же за такое?..
Ок.
Если повторить релоад и повторить заполнение программно - снова Дбгрид готов к приему фокуса ввода. (если по нему, гриду, кликнуть)
Если же опять щелкнуть по браузеру(даже подвинув ползунок) - возвращаемся к исходному положению.

.WebBrowser1Exit(Sender: TObject);
begin
dbgrid1.SetFocus;
- мимо...

Надо отобрать фокус! помогите..


 
Vlad Oshin ©   (2007-02-21 12:15) [1]

Выяснил точнее
ситауция такая:
Если dbgrid первым получает фокус ввода в какую либо ячейку - то после  передачи фокуса ввода в webbrowser, вернуться фокус может только в ту же самую ячейку grida.
В другую - уже нет.
Только после возврата в ту же, можно переходить к другой.

Как избавится?


 
Reindeer Moss Eater ©   (2007-02-21 12:21) [2]

TField.FocusControl


 
Vlad Oshin ©   (2007-02-21 12:59) [3]

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Showmessage("DBGrid1CellClick(");
Showmessage(dbgrid1.SelectedField.AsString);
dbgrid1.SelectedField.FocusControl;

выскакивает значение предыдущей выбраной ячейки..


 
Reindeer Moss Eater ©   (2007-02-21 13:02) [4]

И чего?
Если dbgrid первым получает фокус ввода в какую либо ячейку - то после  передачи фокуса ввода в webbrowser, вернуться фокус может только в ту же самую ячейку grida.
В другую - уже нет.
Только после возврата в ту же, можно переходить к другой.

Как избавится?


Вызвать FocusControl у нужного филда.
При чем здесь вообще клик по ячейке?


 
Vlad Oshin ©   (2007-02-21 13:15) [5]

Хорошо.
по ячейке, где отображается нужный филд кликнули
- надо в него передать фокус.
как это сделать?


 
Reindeer Moss Eater ©   (2007-02-21 13:34) [6]

А что, сам по себе клик по ячейке не фокусирует саму эту ячейку?


 
Vlad Oshin ©   (2007-02-21 13:40) [7]

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

В моем случае - после побывания фокуса вне грида(в браузере )
по клику по ячейке, фокус уходит не в поле, связанное с этой ячейкой, а в предыдущее.


столб1   столб2
1             3
2             4

кликаем по 1


столб1   столб2
1f            3
2             4

кликаем по браузеру
кликаем по 4, а готова к редактированию 1

столб1   столб2
1f            3
2             4


если еще раз кликнуть по 4, то она будет готова

Отсюда идея - может еще раз самому съэмулировать клик?


 
Reindeer Moss Eater ©   (2007-02-21 13:45) [8]

Ну если так, то при клике определить сначала координаты мыши, затем ячейку и по ней поле. Потом вызвать FocusControl.
В том смысле, что не использовать для этого SelectedField.



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1172056346
Sapos
2007-02-21 14:12
2007.03.11
DBNavigator


15-1171529494
red_imp
2007-02-15 11:51
2007.03.11
ICQ


1-1168961072
AFKer
2007-01-16 18:24
2007.03.11
Вопрос по работе с TWebModule


2-1171792753
Emperor
2007-02-18 12:59
2007.03.11
Запуск EXE на всех пользователях


9-1143544075
STALIN
2006-03-28 15:07
2007.03.11
GLFreeform - GlScene как сделать так, чтобы через Freeform...