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

Вниз

Про грид и 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
7-56934
Nick-Nikolas
2003-09-04 16:59
2003.11.17
Как вырубить клавиши Power, Sleep, Wake


14-56874
Asteroid
2003-10-26 20:17
2003.11.17
XP не хочет работать с COM-портом


3-56476
Vemer
2003-10-28 10:28
2003.11.17
Превращение столбца в строку


1-56574
Jee
2003-11-06 10:59
2003.11.17
Список значений свойства компонента


1-56742
XinSide
2003-11-06 17:11
2003.11.17
Динамические массивы...