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

Вниз

Обработка выхода из ячейки в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1199385249
@!!ex
2008-01-03 21:34
2008.02.10
Легкий браузер...


6-1179909476
allucard
2007-05-23 12:37
2008.02.10
Как нажать кнопку в WebBrowser и выбрать раскрыв. список


15-1199903664
@!!ex
2008-01-09 21:34
2008.02.10
Какой БП нужен?


15-1199017899
AlexanderMS
2007-12-30 15:31
2008.02.10
Скрипты, меняющие только что введённый в редакторе кода текст


2-1200159348
istok
2008-01-12 20:35
2008.02.10
показать сообщение не из своей программы