Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемма с рисунками в TDBGrid


MishaS ©   (2003-06-25 10:52:00) 

В один из столбцов в DBGrid в зависимости от значения поля выводится либо рисунок, либо текст. Проблемма заключается в следующем: при DBGrid.Enabled:=falseрисунки исчезают. А хотелось чтобы они оставались.
Вот код моего обработчика события OnDrawColumnCell:

procedure TForm1.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var Im1: TBitmap;
begin
Im1:=TBitmap.Create;
if (Column.FieldName="Odnorod") then
begin
with DBGrid3.Canvas do
begin
Brush.Color:=clWhite;
FillRect(Rect);
If (Table3.FieldByName("Odnorod").Value=1)then
begin
ImageList1.GetBitmap(2,Im1);
Draw(round ((Rect.Left+Rect.RightIm1.Width)/2),Rect.Top,Im1);
end//if
ELSE
begin
if(Form1.Table3.RecNo=Num_Select)then
Begin
{Brush.Color:=clWhite;
FillRect(Rect);
ImageList1.GetBitmap(0,Im1);
Draw(round((Rect.Left+Rect.Right-Im1.Width)/2),Rect.Top,Im1);}
Font.Color:=clBlack;
Font.Style:=[fsbold];
Brush.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+14, Rect.Top+2,Column.Field.Text);
end
else DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end//ELSE
end;
end;


KoluChi   (2003-06-25 13:01:00) [1]


> MishaS ©

прочитайте статью
http://www.delphikingdom.com/helloworld/nogrid.htm
думаю, вы поймете, почему так происходит и, возможно, найдете решение


MISHAS   (2003-06-25 12:14:00) [2]

Edward, используя DisableControls я смогу перемещаться по набору данных без отображения их в визуальных компонентах (это надо для проверки вводимых значений, они вводятся в Editы).


Edward   (2003-06-25 11:17:00) [3]

А зачем делать DBGrid.Enabled:=false? Если надо отключать реакцию грида, надо у наборов данных, связанных с ним, вызывать DisableControls и EnableControls.


Наверх

Титульная страница Поиск, карта сайта Написать письмо