Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
ВнизПро грид и InplaceEdit Найти похожие ветки
← →
KSergey (2003-11-05 15:02) [0]Код примерно такой:
DBGrid.ShowEditor;
DBGrid.InplaceEditor.Text = "5";
Текст визуально появляется, однако при покидании строки значение это не записывается. Подозреваю, что InplaceEditor как-то должен оповещать грид, что значение из меня надо перечитать, т.к. оно изменилось, но ничего не могу подходящего найти в исходниках. Вопрос: как добиться, чтобы это значение (присвоенное InplaceEditor.Text) сохранялось в гриде (ну в DataSet"e, для особых эстетов ;)
← →
Skier (2003-11-05 15:03) [1]
> сохранялось в гриде (ну в DataSet"e, для особых эстетов
> ;)
Использовать TDBGrid
← →
KSergey (2003-11-05 15:17) [2]Не понял...
Имелся в виду конечно же TDBGrid
Ремарка лишь чтобы не возникали стандартные реплики "данные хранятся не в гриде, а в ДетеСете" ;)
← →
Skier (2003-11-05 15:30) [3]TDataSet.Edit и TDataSet.Post ?
← →
pasha_golub (2003-11-05 16:14) [4]Ваще-то ИнпласеЭдитор конечно оповещает грид об изменении, но по идее нормальный человек напрямую этот эдитор вызывать не должон.
Советую посмотреть код VCL про ДБГрид и его ИнпласеЭдитор, токо внимательно, и сразу все станет ясно.
← →
KSergey (2003-11-06 08:26) [5]токо внимательно, и сразу все станет ясно.
Про вас не сомневаюсь, но про себя, да еще чтобы "сразу" и "все" - ох как не уверен! ;) Ну т.е. ковыряюсь потихонечку, конечно, но пока не все до конца просекаю.
> [3] Skier © (05.11.03 15:30)
> TDataSet.Edit и TDataSet.Post ?
Да вот как-то тоже не проканывает до конца, надо признать... Т.е. все равно он не ловил мои изменения, хотя, надо заменить, если сделать InplaceEdit.Text := "что-то там" (например в обработчике OnKeyDown по какой-либо клавише с Ctrl), а после ввести хоть один символ - то все сохраняется! Т.е. как-то при вводе InplaceEditor оповещет грид, а иначе - нет... Попытки трассировки и изучения VCL пока к успеху не привели. Потому и уповаю на вас, мастера!
Вообще опишу задачу подробнее, может не так ее решаю: надо по нажатию каких-либо "горячих" клавиш вставлять в редактируемую ячейку грида некую последовательност символов.
Сйчас используется код:
procedure TForm1.grAdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssAlt in Shift then
if key= 78 then // ну пока, для тестов, буква "Т"
begin
if not (Grid.DataSource.DataSet.State in [dsInsert,dsEdit]) then
Grid.DataSource.DataSet.Edit;
Grid.ShowEditor;
GridInplaceEditor.SelText := "Text";
end;
end;
← →
ЮЮ (2003-11-06 09:04) [6]А если вместо(или вместе) изменения в InplaceEditor-е вносить изменения непосредственно в поле ?
Grid.SelectedField.as... := ...
← →
KSergey (2003-11-06 10:22) [7]В поле можно, конечно, но надо вставлять текст в позиции курсора, вот в чем "прикол"...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c