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

Вниз

Ошибка в DBGrid   Найти похожие ветки 

 
Марат   (2004-08-18 08:08) [0]

Здравствуйте, мастера. Вопрос такой. Есть процедура:
procedure THistory_Ap_f.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
IF условие then
  begin
TDBGrid(Sender).Canvas.Font.Color:=clRed;
TDBGrid(Sender).Canvas.Font.Style:=[fsBold];
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;
При выполненнии этой процедуры на некоторых компьютерах в DBGrid не видно информации, пока не щелкнешь по какой-нибудь ячейке мышкой. Т.е. получается что ячейки DBGrid как бы перекрывается белым цветом. Что можете посоветовать по этому поводу?


 
Deniz ©   (2004-08-18 08:25) [1]

TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
вытащить из условия, что бы всегда выполнялось, т.е.:


procedure THistory_Ap_f.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
 IF условие then
 begin
   TDBGrid(Sender).Canvas.Font.Color:=clRed;
   TDBGrid(Sender).Canvas.Font.Style:=[fsBold];
 end;
 TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


 
Марат   (2004-08-18 08:45) [2]

Не помогло.


 
Марат   (2004-08-18 11:29) [3]

Неужели больше нет вариантов?


 
Марат   (2004-08-19 07:53) [4]

Я сильно извиняюсь, но все же может быть можно как-то по другому изменить цвет шрифта в DBGrid?


 
SeZuka ©   (2004-08-19 08:51) [5]

После изменения цвета сам выведи необходимый текст:

TDBGrid(Sender).Canvas.TextRect(Rect, X, Y, Text);

а
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
используй только если сам ничего не выводишь и не изменяешь, т.е. в твоем примере поставь его в ELSE


 
Марат   (2004-08-19 09:10) [6]

Ругается "Undeclared X"


 
KSergey ©   (2004-08-19 09:14) [7]

> [6] Марат   (19.08.04 09:10)
> Ругается "Undeclared X"

Издеваешься??! Кроме Copy-Paste вообще-то и другие кнопки есть ;)


 
Марат   (2004-08-19 09:16) [8]

Да вы объясните тупому что такое X и что такое Y!


 
KSergey ©   (2004-08-19 09:21) [9]

F1
а так же яндекс
Название метода, можно еще и delphi приписать - найдется куча примеров, описаний и т.д.


 
Алхимик ©   (2004-08-19 09:25) [10]


> [8] Марат   (19.08.04 09:16)
> Да вы объясните тупому что такое X и что такое Y!


Use TextRect to write a string within a limited rectangular region. Any portions of the string that fall outside the rectangle passed in the Rect parameter are clipped and don"t appear. The upper left corner of the text is placed at the point (X, Y).


 
Марат   (2004-08-19 13:32) [11]

Нашел вот чего:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:
 TRect; Field: TField; State: TGridDrawState);
 { ПРИМЕЧАНИЕ: Свойство DefaultDrawing компонента
 Grid должно быть установлено в False }
begin
 { если имя поля - "NAME" }
 if Field.FieldName = "NAME" then
   { изменяем цвет шрифта на красный }
   (Sender as TDBGrid).Canvas.Font.Color := clRed;
 { выводим текст в табличной сетке }
 (Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left + 2,
   Rect.Top + 2, Field.AsString);
end;
Но мне надо всю строку, а тут по полям а их у меня 12 и что теперь для каждого поля прописывать данный алгоритм? Или можно как-то сделать для одной строки?


 
Карелин Артем ©   (2004-08-19 13:37) [12]

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:
TRect; Field: TField; State: TGridDrawState);
{ ПРИМЕЧАНИЕ: Свойство DefaultDrawing компонента
Grid должно быть установлено в False }
begin
if Field.DataSet.RecNo div 3 = 1 then
{ изменяем цвет шрифта на красный }
  (Sender as TDBGrid).Canvas.Font.Color := clRed;
{ выводим текст в табличной сетке }
(Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left + 2,
  Rect.Top + 2, Field.AsString);
end;


 
Марат   (2004-08-20 08:56) [13]

Если делаю "Свойство DefaultDrawing компонента Grid должно быть установлено в False ", то Grid покрывается белым цветом. Если же после выполнения делаю "Свойство DefaultDrawing компонента Grid должно быть установлено в True", то не видно красного цвета.



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
14-1093382240
Piter
2004-08-25 01:17
2004.09.19
УРА Есть новый мировой рекорд!


14-1093580852
тихий вовочка
2004-08-27 08:27
2004.09.19
Как заработать


14-1094077026
gn
2004-09-02 02:17
2004.09.19
Я даже не знаю как понимать таких людей


3-1092924198
surkis
2004-08-19 18:03
2004.09.19
Дата в SQL


8-1088501259
GooFfy
2004-06-29 13:27
2004.09.19
TImage





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский