![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка выхода из ячейки в TStringGrid [D7, WinXP]
GreySerg © (2007-11-02 14:42:00)Есть StringGrid, в котором редактирую ячейки. Надо чтобы по выходу из режима редактирования ячейки выполнялся набор действий, в частности отредактированное значение ячейки сохранялось в БД. Как лучше поступить, Мастера, обработать у StringGrida OnKeyDown, OnMouseDown, OnExit (из грида) или сделать свой InplaceEditor, в котором по выходу из ячейки писать в БД ?
Leonid Troyanovsky (2007-11-03 13:55:00) [1]
> GreySerg (02.11.07 14:42)
> Есть StringGrid, в котором редактирую ячейки. Надо чтобы
> по выходу из режима редактирования ячейки выполнялся набор
> действий, в частности отредактированное значение ячейки
> сохранялось в БД. Как лучше поступить, Мастера, обработать
> у StringGrida OnKeyDown, OnMouseDown, OnExit (из грида)
Например, в OnSelectCell
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
with Sender as TStringgrid do
begin
if Cells[Col, Row] <> OldValue then // OldValue: String - поле формы
DoSomething (Cells[Col, Row]);
OldValue := Cells[ACol, ARow];
end;
end;
Ну, и требуемая обработка OnEnter/Exit
Про InplaceEditor можно посмотреть здесь
http://groups.google.com/group/fido7.ru.delphi/msg/b7f75355f95bbd2b
--
Regards, LVT.
Reindeer Moss Eater (2007-11-02 21:06:00) [2]If StringGrid1.Cells[ACol, ARow] <> Value then
Это недоразумение можно заменить на более простое :
if False then
Reindeer Moss Eater (2007-11-02 21:02:00) [3]Все это хорошо, но он генерится на каждое новое нажатие
TStas (2007-11-02 20:55:00) [4]Ну да, вот сейчас посмотрел:
procedureTForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
If StringGrid1.Cells[ACol, ARow] <> Value then
текст отредактирован и Вы выполняете нужные действия.
TStas (2007-11-02 20:49:00) [5]У него же, вроде, был OnSetText
Anatoly Podgoretsky (2007-11-02 16:12:00) [6]> Greyserg (02.11.2007 15:22:10) [10]
Ну и славо богу, если хватает, но тогда не надо жаловаться.
Reindeer Moss Eater (2007-11-02 15:24:00) [7]Забыли уже давно про дбгрид.
Тебе про стринггрид говорят
Greyserg (2007-11-02 15:22:00) [8]
> Anatoly Podgoretsky © (02.11.07 15:20) [9]
> > Greyserg (02.11.2007 15:06:07) [7]И что, какая связь
> между отображением и реальным содержимым базы, имеешь право
> даже кино показывать
так зачем тогда DBGrid, мне StringGrida хватает
Anatoly Podgoretsky (2007-11-02 15:20:00) [9]> Greyserg (02.11.2007 15:06:07) [7]
И что, какая связь между отображением и реальным содержимым базы, имеешь право даже кино показывать
Reindeer Moss Eater (2007-11-02 15:07:00) [10]А кто сказал, что будет легко?
Greyserg (2007-11-02 15:06:00) [11]так грид же отображается особым образом и число записей в БД не сответствует числу строк в гриде , есть фиксированные строки и колонки
Reindeer Moss Eater (2007-11-02 14:58:00) [12]тогда [4]
потому что я как пользователь могу отредактировать ячейку, и никуда больше не выходить из нее, закрыв форму.
Greyserg (2007-11-02 14:54:00) [13]И грид отображает особенным образом записи в БД - строка грида - не соответствует записи в БД
Reindeer Moss Eater (2007-11-02 14:51:00) [14]либо отложи запись в бд до момента когда весь стрингрид не будет заполнен нужными данными
Reindeer Moss Eater (2007-11-02 14:50:00) [15]дбгриду это и не надо
Greyserg (2007-11-02 14:49:00) [16]не пойдет , там определенным образом данные сохраняются и их изначально нет в БД
Reindeer Moss Eater (2007-11-02 14:46:00) [17]замени стринггрид дбгридом