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

Вниз

TDBGrid. Прошу прокомментировать ситуацию и дать совет.   Найти похожие ветки 

 
Abcdef123   (2007-05-31 11:47) [0]

Есть задача:Отобразить В DBGrid данные запроса из двух таблиц(то есть данные запроса могут быть использованы только на чтение) и на гриде еще добавить колонку типа CheckBox,чтобы пользователь с помощью этого CheckBox мог выбрать из всех записей только те, которые потом пойдут в следующую процедуру ("дальнейшую обработку").
Поскольку запрос только на чтение (что меня вполне устравивает, кроме дополнительно искусственно созданной колонки, конечно), то не знаю как реализовать процесс редактирования этой дополнительной колонки. И вообще, реально ли это как-то сделать в таком подходе, что я пытаюсь осуществить, ведь дополнительная проблема, что эта колонка-то не из реальной таблицы, а я пытаюсь использовать компонент DBGrid, который предназначен работать с базой данных?
PS. Для полноты информации - база данных Advantage, и компонент не TDBGRid, а TdxDBGrid (но в данной ситуации разница не существенна, я думаю)
Заранее спасибо.


 
Плохиш ©   (2007-05-31 11:54) [1]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168


 
Desdechado ©   (2007-05-31 14:05) [2]

1. Всем колонкам ReadOnly, кроме с галкой
2. запретить обработку BeforeDelete, BeforeInsert


 
Abcdef123   (2007-06-01 04:53) [3]

To Desdechado [2]
Как я уже написала, данные идут из запроса, который содержит обращение к двум таблицам, поэтому изначально этот запрос не допускает ReadOnly=True, и когда я пытаюсь сделать "виртуальную" колонку сделать ReadOnly=False, то просто свойство это даже не меняется.


 
SlymRO ©   (2007-06-01 05:11) [4]

Оптионс include мультиселект
procedure TForm1.ContactGridDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 with Sender as TDBGrid do
 begin
   if Column.FieldName<>"Selection" then
     DefaultDrawColumnCell(Rect,DataCol,Column,State)
   else begin
     Canvas.Brush.Color:=Color;
     Canvas.FillRect(Rect);
     if SelectedRows.CurrentRowSelected then
       CheckImgs.Draw(Canvas,Rect.Left,Rect.Top,1)//рисуем чекбоксы
     else
       CheckImgs.Draw(Canvas,Rect.Left,Rect.Top,0);//рисуем чекбоксы
   end;
 end;
end;


 
Desdechado ©   (2007-06-01 12:53) [5]

Abcdef123   (01.06.07 04:53) [3]
Колонку чего? Грида? Манипулируй полями датасета. И неплохо бы указать компоненты доступа к данным.



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
8-1160027808
DevilDevil
2006-10-05 09:56
2007.06.24
TBitmap и Альфаканал


8-1160000268
Владимир
2006-10-05 02:17
2007.06.24
Слайдшоу на DVD


15-1179990326
Pazitron_Brain
2007-05-24 11:05
2007.06.24
Ценителям советской аудиотехники


2-1180574560
Ш-К
2007-05-31 05:22
2007.06.24
Отобразить 4 байта


2-1180643028
Tr
2007-06-01 00:23
2007.06.24
Columns[0].Visible