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

Вниз

DBGrid+DrawText   Найти похожие ветки 

 
vitv ©   (2007-04-08 13:50) [0]

Из примера вырезал следующую функцию, добавив свои поля. Не работает, ругается:
Constant object cannot be passed as var parameter

procedure Form6.DBGrid9DrawDataCell(Sender: TObject; const Rect: TRect;
 Field: TField; State: TGridDrawState);
 var
   C: array[0..255] of Char;

begin
Canvas.FillRect(Rect);
 StrPCopy(C, DataModule2.IBDataSet2.fieldbyname("SG").AsString);
 WinProcs.DrawText(Canvas.Handle, C, StrLen(C), Rect, DT_WORDBREAK);
end;


 
Anatoly Podgoretsky ©   (2007-04-08 13:57) [1]

> vitv  (08.04.2007 13:50:00)  [0]

Сказано же, что константный объект нельзя


 
vitv ©   (2007-04-08 18:31) [2]


> const Rect: TRect;

А как поступить?


 
Loginov Dmitry ©   (2007-04-08 19:09) [3]

var
 S: string;
......
begin
...
 S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);

 WinProcs.DrawText(Canvas.Handle, PChar(S), Length(S), Rect, DT_WORDBREAK);
end

А WinProcs - это откуда?


 
vitv ©   (2007-04-08 19:54) [4]


> Loginov Dmitry ©   (08.04.07 19:09) [3]
> var
>  S: string;
> ......
> begin
> ...
>  S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);
>
>
>  WinProcs.DrawText(Canvas.Handle, PChar(S), Length(S), Rect,
>  DT_WORDBREAK);
> end
>
> А WinProcs - это откуда?
> <Цитата>

из примера DelphiWorld


 
vitv ©   (2007-04-08 22:04) [5]


> var
>  S: string;
> ......
> begin
> ...
>  S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);
>
>
>  WinProcs.DrawText(Canvas.Handle, PChar(S), Length(S), Rect,
>  DT_WORDBREAK);
> end

Не работает :))) Та же ошибка...


 
Loginov Dmitry ©   (2007-04-08 23:28) [6]

Тогда так попробуй:

var
 S: string;
......
begin
...
 S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);
 DrawText(Canvas.Handle, PChar(S), Length(S), PRect(@Rect)^, DT_WORDBREAK);
end


 
Германн ©   (2007-04-09 00:15) [7]


> Loginov Dmitry ©   (08.04.07 19:09) [3]


> А WinProcs - это откуда?

Из Д1. уст. :)


 
Loginov Dmitry ©   (2007-04-09 00:46) [8]

> Из Д1. уст. :)


Отстал я от жизни, что поделаешь... :)


 
Германн ©   (2007-04-09 01:04) [9]


> Loginov Dmitry ©   (09.04.07 00:46) [8]
>
> > Из Д1. уст. :)
>
>
> Отстал я от жизни, что поделаешь... :)
>

Кстати уж сколько лет в обед тому Д1. А и в BDS2006 в ConditionalDefines для каждого нового проекта по умолчанию добавляется: WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;


 
Германн ©   (2007-04-09 01:07) [10]

Пардон. Не в ConditionalDefines, а в Unit aliases, конечно.


 
Германн ©   (2007-04-09 01:14) [11]


> vitv ©   (08.04.07 22:04) [5]
>
>
> > var
> >  S: string;
> > ......
> > begin
> > ...
> >  S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);
>
> >
> >
> >  WinProcs.DrawText(Canvas.Handle, PChar(S), Length(S),
>  Rect,
> >  DT_WORDBREAK);
> > end
>
> Не работает :))) Та же ошибка...

Как раз строка тут и не причём. Этот параметр описан в DrawText как LPCTSTR. А вот предпоследний параметр DrawText описан как LPRECT. И именно он не может быть константным параметром. А в DBGrid9DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
он как раз константа!


 
vitv ©   (2007-04-09 10:05) [12]

Loginov Dmitry ©   (08.04.07 23:28) [6]

Тогда так попробуй:

var
S: string;
......
begin
...
S := DataModule2.IBDataSet2.fieldbyname("SG").AsString);
DrawText(Canvas.Handle, PChar(S), Length(S), PRect(@Rect)^, DT_WORDBREAK);
end

Спасибо! Заработало, но многострочный грид не получился.
Может я работаю не в том направлении?


 
ЮЮ ©   (2007-04-10 03:11) [13]

> Спасибо! Заработало, но многострочный грид не получился.

Плтому что TDBGrid сам учтанавливает высоту строки грида, исходя из размера Font-а. Так что "переносы" просто не видны в ячейке. Для проверки попробуй нарисовать в два раза меньшим шрифтом: Canvas.Font.Size := Grid.Font.Size div 2.

З.Ы. Неужели так трудно добавлять заголовок метода? Ессли это метод формы, то иcпользуется Canvas формы, а не Canvas грида.



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

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

Наверх




Память: 0.49 MB
Время: 0.048 c
11-1152569152
ANTPro
2006-07-11 02:05
2007.04.29
Unpacker для KOL


2-1176295220
I-New
2007-04-11 16:40
2007.04.29
Динамическая загрузка картинок в Timage


3-1171270785
<rm>
2007-02-12 11:59
2007.04.29
формирование страницы Excel


15-1174989221
zdm
2007-03-27 13:53
2007.04.29
шашки


15-1175527355
Mozart
2007-04-02 19:22
2007.04.29
проблемы с bde