Форум: "Основная";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
ВнизОбработка выхода из ячейки в TStringGrid Найти похожие ветки
← →
GreySerg (2007-11-02 14:42) [0]Есть StringGrid, в котором редактирую ячейки. Надо чтобы по выходу из режима редактирования ячейки выполнялся набор действий, в частности отредактированное значение ячейки сохранялось в БД. Как лучше поступить, Мастера, обработать у StringGrida OnKeyDown, OnMouseDown, OnExit (из грида) или сделать свой InplaceEditor, в котором по выходу из ячейки писать в БД ?
← →
Reindeer Moss Eater © (2007-11-02 14:46) [1]замени стринггрид дбгридом
← →
Greyserg (2007-11-02 14:49) [2]не пойдет , там определенным образом данные сохраняются и их изначально нет в БД
← →
Reindeer Moss Eater © (2007-11-02 14:50) [3]дбгриду это и не надо
← →
Reindeer Moss Eater © (2007-11-02 14:51) [4]либо отложи запись в бд до момента когда весь стрингрид не будет заполнен нужными данными
← →
Greyserg (2007-11-02 14:54) [5]И грид отображает особенным образом записи в БД - строка грида - не соответствует записи в БД
← →
Reindeer Moss Eater © (2007-11-02 14:58) [6]тогда [4]
потому что я как пользователь могу отредактировать ячейку, и никуда больше не выходить из нее, закрыв форму.
← →
Greyserg (2007-11-02 15:06) [7]так грид же отображается особым образом и число записей в БД не сответствует числу строк в гриде , есть фиксированные строки и колонки
← →
Reindeer Moss Eater © (2007-11-02 15:07) [8]А кто сказал, что будет легко?
← →
Anatoly Podgoretsky © (2007-11-02 15:20) [9]> Greyserg (02.11.2007 15:06:07) [7]
И что, какая связь между отображением и реальным содержимым базы, имеешь право даже кино показывать
← →
Greyserg (2007-11-02 15:22) [10]
> Anatoly Podgoretsky © (02.11.07 15:20) [9]
> > Greyserg (02.11.2007 15:06:07) [7]И что, какая связь
> между отображением и реальным содержимым базы, имеешь право
> даже кино показывать
так зачем тогда DBGrid, мне StringGrida хватает
← →
Reindeer Moss Eater © (2007-11-02 15:24) [11]Забыли уже давно про дбгрид.
Тебе про стринггрид говорят
← →
Anatoly Podgoretsky © (2007-11-02 16:12) [12]> Greyserg (02.11.2007 15:22:10) [10]
Ну и славо богу, если хватает, но тогда не надо жаловаться.
← →
TStas © (2007-11-02 20:49) [13]У него же, вроде, был OnSetText
← →
TStas © (2007-11-02 20:55) [14]Ну да, вот сейчас посмотрел:
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
If StringGrid1.Cells[ACol, ARow] <> Value thenтекст отредактирован и Вы выполняете нужные действия.
← →
Reindeer Moss Eater © (2007-11-02 21:02) [15]Все это хорошо, но он генерится на каждое новое нажатие
← →
Reindeer Moss Eater © (2007-11-02 21:06) [16]If StringGrid1.Cells[ACol, ARow] <> Value then
Это недоразумение можно заменить на более простое :
if False then
← →
Leonid Troyanovsky © (2007-11-03 13:55) [17]
> 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.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c