Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mihcom Гость
|
Добавлено: Пн Июл 07 2003 10:00 Заголовок сообщения: Рисование на канве Grid |
|
|
Доброго времени суток! Вопрос такой - как можно фиксированно выводить рисунок в ячейке любого грида? Выводить сам рисунок не проблема, проблемы возникают, когда я скроллирую Grid. Я делаю это так (работа с TDBGrid):
на событии OnDrawColumnCell висит процедура
procedure TfrmConstructionTypeModify.dbgCalcDrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Cell : TGridCoord; Point : TPoint; begin if (gdFixed in State ) or (DataCol>1) then Exit;
Point.X:=Rect.Left+1; Point.Y:=Rect.Top+1;
Cell:=dbgCalc.MouseCoord(Point.X,Point.Y);
if (Cell.Y |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mihcom Гость
|
Добавлено: Пн Июл 07 2003 10:03 Заголовок сообщения: Продолжение вопроса |
|
|
if (Cell.Y |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
anonymous Гость
|
Добавлено: Чт Июл 10 2003 21:00 Заголовок сообщения: Re: Рисование на канве Grid |
|
|
я делал в билдере так
void __fastcall TMainForm::DBGridDrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State) { if (!Column) return; if (Table_Qe->IsEmpty()) return; TField *Field=Column->Field; if (!Field) return; if (!Field->FieldName.AnsiCompareIC("stat")) { // очистим поле DBGrid->Canvas->Brush->Style=bsSolid; DBGrid->Canvas->Font=Column->Font; DBGrid->Canvas->Brush->Color=Column->Color; DBGrid->Canvas->FillRect(Rect);
TIcon *Icon=new TIcon(); try { Images->GetIcon(Field->AsInteger, Icon); DBGrid->Canvas->Draw(Rect.Left, Rect.Top, Icon); } __finally { delete Icon; } } }
в дельфях должно быть аналогично |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|