Print this page

DevExpress cxGrid — получаем данные из грида

Written by  Sunday, 06 November 2011 00:00

Задача

По правому клику на cxGrid выводить контекстное меню ("Редактировать", "Удалить"....) по нажатию на которые, запись будет удаляться из БД или наоборот - чтобы цитату можно было отредактировать.

Легенда

Есть компонент cxGrid от DewExpress который связан с БД. В ней имеются такие поля id, textquotes, authorquotes (id, цитата, автор цитаты).

В свойствах грида это выглядит вот так:

devexpress-cxgrid-get-data-from-grid

Всё это привязано к MySql через компоненту TUniConnection, TUniQuery, TUniDataSource. Также добавлен компонент TPopupMenu из стандартного набора компонент.

devexpress-cxgrid-get-data-from-grid-2

 

Реализация

Добавляем два пункта меню в TPopupMenu

devexpress-cxgrid-get-data-from-grid-3

Получаем данные из выбранной строки cxGrid, к примеру id, таким образом:

procedure TForm1.editQuoteClick(Sender: TObject);
var   s: integer;
begin
s := cxGrid1DBTableView1Column1.EditValue;
ShowMessage(IntToStr(s));
end; 

Таким образом мы смогли получить текущий id записи и в дальнейшем осталось только вместо функции ShowMessage() написать код удаления из БД записи.

Думаю что описывать как сделать Delete записи я не буду, за исключением маленького примера, который я не буду описывать чтобы немного стимулировать самостоятельную работу у читателя.)

DELETE FROM jos_quotes WHERE   id = :Old_id 
4880 Read