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

Вниз

Не подскажите как в CtrlGride выделять цветом поля нужных строк?   Найти похожие ветки 

 
Kurt   (2002-11-23 15:43) [0]

Не подскажите как в CtrlGride выделять цветом поля нужных строк?
Допустим по величине определенного поля выделить всю запись в CtrlGrid-е красным цветом. У меня почему-то не получается


 
Kurt   (2002-11-23 21:04) [1]

Ау! люди помогите!


 
sniknik ©   (2002-11-23 21:34) [2]

Kurt (23.11.02 15:43)
>У меня почему-то не получается
а как не получается?


 
Kurt   (2002-11-23 22:16) [3]

использую метод DBCtrlGridPaintPanel

with DBCtrlGrid1 do
begin
with R do
begin
r.Top:=0;
r.Left:=0;
r.Bottom:=PanelHeight;
r.Right:=PanelWidth;
end;
if Query.fields[0].asinteger<0 then begin
Canvas.Font.Color:=clRED;
Canvas.FillRect(r);
end;
end;

что не так?


 
sniknik ©   (2002-11-24 01:05) [4]

попробуй по аналогии с DBGrid
правда тут немного не то что тебе нужно но всеже

procedure TForm1.DBGrid3DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if UpperCase(Field.FieldName) = "SHOPINDEX" then begin
DBGrid3.Canvas.Font.Color := clRed;
DBGrid3.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(Query1.RecNo));
end;
if UpperCase(Field.FieldName) = "NUM" then begin
DBGrid3.Canvas.Font.Color := clRed;
DBGrid3.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(5));
end;


чтото мне кажется PaintPanel это немного не то..


 
Anatoly Podgoretsky ©   (2002-11-24 10:24) [5]

Все хорошо, но где ты там нашел OnDrawDataCell, OnPaintPanel единственное событие у данного органа


 
sniknik ©   (2002-11-24 12:15) [6]

Каюсь, я и не искал даже не смотрел. Счас попробую.


 
sniknik ©   (2002-11-24 13:04) [7]

Ну не проблема аналогия сработала :-). Сорру запопытку ввести в заблуждение (непреднамеренно, чест слово).
вот так работает (и сразу ошибка нашлась, у тебя цвет не туда присваивается Canvas. Font.Color:=clRED;)
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer);
begin
if Table1.FieldByName("ARTIKL").AsInteger=140 then begin
DBCtrlGrid.Canvas.Brush.Color:= clRed;
DBCtrlGrid.Canvas.FillRect(Rect(3, 3, DBCtrlGrid.PanelWidth-3, DBCtrlGrid.PanelHeight-3));
end;
end;


 
Kurt   (2002-11-26 13:10) [8]

Спасибо. Но так у меня выделяется только фон вокруг полей в CtrlGrid-е. а мне хотелось бы сами ПОЛЯ выделить .. можно и с фоном но главное именно их выделить. или что в них отображено.
как это сделать?


 
Kurt   (2002-11-26 13:11) [9]

ну это допусти есть в CtrlGrid-е: DBEdit, DBText и как мне внутренность выделить их?


 
sniknik ©   (2002-11-26 22:21) [10]

А у самих компонент DBEdit, DBText свойства менять не пробовал?


 
Kurt   (2002-11-28 15:45) [11]

а можешь привести пример как это сделать


 
sniknik ©   (2002-11-28 16:01) [12]

чуть переделаем существующий пример
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
begin
if Table1.FieldByName("ARTIKL").AsInteger=140 then begin
DBCtrlGrid.Canvas.Brush.Color:= clRed;
DBCtrlGrid.Canvas.FillRect(Rect(3, 3, DBCtrlGrid.PanelWidth-3, DBCtrlGrid.PanelHeight-3));
DBEdit1.Font.Color:= clRed;
end else DBEdit1.Font.Color:= clWindowText;
end;


 
Kurt   (2002-11-28 17:49) [13]

спасибо!!! большое



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
14-51899
Dave2000
2002-11-22 12:06
2002.12.16
Как отправить e-mail НЕ через компоненты Дельфи?


1-51691
aterm
2002-12-04 13:11
2002.12.16
Какой код у клавиши delete


7-51972
Ketmar
2002-10-13 15:39
2002.12.16
Terminal Services Client (ActiveX) - автоввод пароля - как?


14-51888
Ajax
2002-11-21 16:50
2002.12.16
Программа для компьютерного клуба.


1-51719
Кирилл
2002-12-06 10:56
2002.12.16
мне нужно получить длину текста из Edit в пикселях...