Главная страница
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.028 c
2-1171716285
@gent
2007-02-17 15:44
2007.03.11
Дирректория запуска программы.


15-1171382070
oldman
2007-02-13 18:54
2007.03.11
Что только не узнаешь по телеку...


2-1171545607
Wood
2007-02-15 16:20
2007.03.11
Инфа по ODBC


15-1171485372
Rouse_
2007-02-14 23:36
2007.03.11
Скайп реагирует на SoftIce


15-1171582908
WiFiLamer
2007-02-16 02:41
2007.03.11
По Wi-Fi