Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

Разъясните еще раз про DBGrid (рисунки, Canvas и т.д.)   Найти похожие ветки 

 
Artem123   (2004-07-12 15:05) [0]

Сразу скажу таблица не локальная использую ClientDataSet

procedure TFrmChild.dbgr_frmchildDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
if TDataSource(TDBGrid(Sender).DataSource).DataSet.FieldByName("DNAME").AsString="noname";
then
     with TDBGrid(Sender).Canvas do
       begin
         Brush.Color:=clGrayText;
         Font.Color:=clWhite;
         FillRect(rect);
         TDBGrid(Sender).Columns[0].Font.Color:= clred;
         TextOut(Rect.Left, Rect.Top, Column.Field.Text);
         ImageList1.Draw(TDBGrid(Sender).Canvas, Rect.Left, Rect.Top, 0);
      end;
end;

Закраска происходит сразу всей строки что и надо но ..
Если в TextOut указать Column.Field.Text что в данном случае то выдает ошибку. Если   TextOut(Rect.Left, Rect.Top, ""); то прокатывает но текст не видно. Да и изображение из ImageList рисуется в каждой колонке Грида а мне надо чтоб толко в одной.

Если же такой вариант толку еще меньше
procedure TFrmChild.dbgr_frmchildDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
if Column.FieldName="DNAME" then
   begin
     if Column.Field.AsString="noname" then
     with TDBGrid(Sender).Canvas do
       begin
         Brush.Color:=clGrayText;
         Font.Color:=clWhite;
         FillRect(rect);
         TDBGrid(Sender).Columns[0].Font.Color:= clred;
         TextOut(Rect.Left, Rect.Top, Column.Field.Text);
         ImageList1.Draw(TDBGrid(Sender).Canvas, Rect.Left, Rect.Top, 0);
      end;
end;

В данном случае закрашивается только найденная ячейка и в ней же рисуется изображение а оно мне тут не надо.

Короче каким образом сделать что бы строчка закрашивалась целиком а изображение появлялось в первом Column - этот Сщдгьт не связано не скаким полем.


 
Соловьев ©   (2004-07-12 15:09) [1]


> TextOut(Rect.Left, Rect.Top, Column.Field.Text);
>          ImageList1.Draw(TDBGrid(Sender).Canvas, Rect.Left,
> Rect.Top, 0);

поменять местами если хочешь поверх изображения писать


> указать Column.Field.Text что в данном случае то выдает
> ошибку.

какую?
может проверку на Null сделать?


 
Artem123   (2004-07-12 15:26) [2]

ошибка Access violation at adress
null не работает


 
Соловьев ©   (2004-07-12 15:29) [3]


> ошибка Access violation at adress
> null не работает

где имеено выдает на какой строке?

как не работает? код!


 
Курдль ©   (2004-07-12 15:31) [4]

Надо было писать "проверка на IsNull" :)


 
Соловьев ©   (2004-07-12 15:32) [5]


> Надо было писать "проверка на IsNull" :)

а головой когда начнут думать? :)


 
Artem123   (2004-07-12 15:34) [6]

begin
if TDataSource(TDBGrid(Sender).DataSource).DataSet.FieldByName("DNAME").AsString="Artem"
then
     with TDBGrid(Sender).Canvas do
       begin
         Brush.Color:=clGrayText;
         Font.Color:=clWhite;
         FillRect(rect);
         TDBGrid(Sender).Columns[0].Font.Color:= clred;
         ImageList1.Draw(TDBGrid(Sender).Canvas, Rect.Left, Rect.Top, 0);
         TextOut(Rect.Left, Rect.Top, Column.Field.Text);
      end;

end;

ошибка возникает на строке TextOut
Access violation at adress 00494DB9

а как насчет того чтоб картинку только в первой колонке отобразить


 
Соловьев ©   (2004-07-12 15:37) [7]


> ошибка возникает на строке TextOut

на ней, т.е. когда туда курсор попадает или когда курсор ее проходит?


 
Ega23 ©   (2004-07-12 15:37) [8]

TextOut(Rect.Left, Rect.Top, Column.Field.Text);

Column.Field.Text - это к чему относится?


 
Artem123   (2004-07-12 15:42) [9]

Соловьев
ошибка возникает когда ее проходит


 
Соловьев ©   (2004-07-12 15:49) [10]


> TextOut(Rect.Left, Rect.Top, Column.Field.Text);

> TextOut(Rect.Left, Rect.Top, Column.Field.AsString);


 
Artem123   (2004-07-12 15:50) [11]

Column.Field.Text это взял из примера на http://delphi.vitpc.com/asp/viewitem.asp?UrlItem=/helloworld/dbgridcolor.htm


 
Ega23 ©   (2004-07-12 15:53) [12]

Какой Column-то?



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

Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.043 c
1-1090845574
chirchik
2004-07-26 16:39
2004.08.08
Splash Screen


6-1086369875
Driver
2004-06-04 21:24
2004.08.08
ICQ


3-1089711869
Igor2
2004-07-13 13:44
2004.08.08
DBGrid


14-1089924644
Baron
2004-07-16 00:50
2004.08.08
Обсуждение опроса.


3-1089688022
rosl
2004-07-13 07:07
2004.08.08
поиск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский