Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизПередать фокус в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c