Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1200669758
savyhinst
2008-01-18 18:22
2008.02.10
TCompressionStream


2-1200677665
no_limit
2008-01-18 20:34
2008.02.10
Осуществить перенос текста мышью из Memo в Memo (MDI)


15-1199317232
Германн
2008-01-03 02:40
2008.02.10
Командировка в Димитровград


2-1200107272
дучф_ч
2008-01-12 06:07
2008.02.10
приложение без установки BDE


15-1199706562
DI-524
2008-01-07 14:49
2008.02.10
Вопрос к владельцам сабжа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский