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

Вниз

Картика в гриде не отрисовывается транспарентно   Найти похожие ветки 

 
kyn66 ©   (2007-04-14 11:18) [0]

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


procedure TRepSprFrm.RxDBGrid1GetCellParams(Sender: TObject; Field: TField;
 AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
 if (DM1.RepTbl.RecNo mod 2 <> 0) then
  Background := cl3DLight;
 if Highlight then
  begin
    AFont.Color := clBlack;
    Background := clMoneyGreen;
    AFont.Style := [fsBold];
  end;
end;
...
procedure TRepSprFrm.RxDBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
Var
 Im1 : TBitmap;
begin
 if DM1.RepTbl.RecordCount <> 0 then
  begin
    Im1 := TBitmap.Create;
    with RxDBGrid1.Canvas do
     begin
       if (Column.FieldName = "Ins") then
        begin
          FillRect(Rect);
          Im1.Transparent := True;
          if DM1.RepTbl.FieldByName("Ins").Value = False then
           ImageList1.GetBitmap(1,Im1);
          Draw(round((Rect.Left + Rect.Right - Im1.Width)/2), Rect.Top, Im1);
        end;
    end;
  Im1.Free
 end;



 
Чапаев ©   (2007-04-14 11:26) [1]

RTFM TImageList.GetMaskBitmap(), BitBlt().


 
kyn66 ©   (2007-04-14 11:50) [2]

>> Чапаев
Подробнее можно?


 
Чапаев ©   (2007-04-14 12:15) [3]

А вообще, как оказалось, проще всего будет использовать ImageList_Draw() из модуля CommCtrl. Что-то вроде ImageList_Draw(ImageList1.Handle,1,RxDBGrid1.Canvas.Handle,0,0,ILD_NORMAL) .



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
15-1179133685
DIANA
2007-05-14 13:08
2007.06.10
нужна помощь! Двумерные массивы..


9-1153070015
Зм1й
2006-07-16 21:13
2007.06.10
"Вертикальная синхронизация"


15-1179056867
Просто_новичок
2007-05-13 15:47
2007.06.10
Компонент для работы с COM-портом


15-1177462495
Потребитель
2007-04-25 04:54
2007.06.10
В США появится медаль "За победу в холодной войне"


15-1179042617
Ravshan
2007-05-13 11:50
2007.06.10
C++ Файловые потоки: read, write. Странные вещи происходят.