Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Рисование на канве Grid

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
Вернуться к началу
Mihcom
Гость





СообщениеДобавлено: Пн Июл 07 2003 10:03    Заголовок сообщения: Продолжение вопроса Ответить с цитатой

if (Cell.Y
Вернуться к началу
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;
}
}
}

в дельфях должно быть аналогично
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...