![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие RxDBGrid3DrawColumnCell - ВЕШАЕТ комп 8-( [D6]
ЮРИЙ_К © (2002-08-15 13:24:00)Коллеги, подскажите, в какой момент роисходит енто событие. Вставил в него код для проверки поля базы и вставки в ячейку картинки. Стоит только энергично поскролинговать грид колесом мыши туда-сюда, выскакивает мессага непонятная и капец, помогает только кнопочка-выручалочка "Reset". Подскажите, плис, где грабли?
А вот и кодик мой
procedure TLicChFrm.RxDBGrid3DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
Var
Im1 : TBitmap;
begin
if LicCh_UTbl.RecordCount <> 0 then
begin
Im1 := TBitmap.Create;
if (Column.FieldName = "PriznakRas") then
with RxDBGrid3.Canvas do
begin
FillRect(Rect);
if not (LicCh_UTbl.FieldByName("PriznakRas").Value) then
ImageList1.GetBitmap(0,Im1)
else
ImageList1.GetBitmap(1,Im1);
Draw(round((Rect.Left + Rect.Right - Im1.Width)/2), Rect.Top, Im1);
end;
end;
end;
ЮЮ (2002-08-16 04:38:00) [1]А не лучше ли использовать метод Draw самого ImageList ?
Skier (2002-08-15 13:36:00) [2]>ЮРИЙ_К
Небольшой совет (если позволишь) - нужно ещё
обязательноиспользовать try-блок :
Im1 := TBitmap.Create;
try
//твой код...
finally
Im1.Free;
end; //try
ЮРИЙ_К (2002-08-15 13:34:00) [3]ZrenBy, Skier - Вы ГЕНИИ , спасибо, работает !!!!!!!!!!! 8-)
ЮРИЙ_К (2002-08-15 13:31:00) [4]ZrenBy
Не-а, блин, даже не подумал об этом, ща попробую
Skier (2002-08-15 13:29:00) [5]>ЮРИЙ_К
А освобождать Im1 не пробовал !?
ZrenBy (2002-08-15 13:28:00) [6]А ты Im1 Free делаешь?