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

Вниз

Изменение цвета строки в StringGrid.   Найти похожие ветки 

 
Gizza ©   (2006-07-02 23:03) [0]

Доброго всем...

Ну, вообщем из названия ясно, но объясню на своем примере:
Есть форма, на ней таблица (и еще много всего, но это не важно). В одной из ячейке таблицы записана дата (эээ... всмысле, есть целая есть целая колонка, которая называятся "Дата", и все ячейки в данной колонке содержат дату в формате String). Вот. Надо чтобы при запуске программы (ну это понятно Form1.onCreate) строки, в которых содержатся даты меньшей сегодняшней (впринципе, это тоже понятно) выделялись другим цветом (цвет выбирается на другой форме с ColorBox). Вот, впринципе, и все.

Заранее всем спасибо.


 
EvS ©   (2006-07-03 00:19) [1]

И что неясно? Как даты сравнить или как цвет поменять?


 
Плохиш ©   (2006-07-03 00:34) [2]


> Вот. Надо чтобы при запуске программы (ну это понятно Form1.
> onCreate) строки, в которых содержатся даты меньшей сегодняшней
> (впринципе, это тоже понятно) выделялись другим цветом (цвет
> выбирается на другой форме с ColorBox).

Делается не "при запуске программы", а в событии OnDrawCell компонента TStringList.


 
Плохиш ©   (2006-07-03 00:34) [3]


> Плохиш ©   (03.07.06 00:34) [2]

TStringGrid конечно же :-)


 
Gizza ©   (2006-07-03 10:30) [4]


> И что неясно? Как даты сравнить или как цвет поменять?

Как цвет поменять


 
isasa ©   (2006-07-03 10:47) [5]

Да, хотя-бы и так.
procedure TCheckF.CheckGridDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
 var buf : string;
begin
 buf:=Trim(Column.Field.Dataset.FieldbyName("clRegion").AsString);
 if (length(buf)<>0) and
    (Trim(Column.Field.Dataset.FieldbyName("Region").AsString)<>buf) then begin
  if (gdFocused in State) then
      TDBGrid(Sender).canvas.brush.color:=clActiveCaption //фокус
  else
      TDBGrid(Sender).canvas.brush.color:=$00CCFFFF // не совпад. области - желтый
 end;
 TDBGrid(Sender).DefaultDrawColumnCell(rect,DataCol,Column,State);
end;


 
Gizza ©   (2006-07-03 10:57) [6]


> isasa ©   (03.07.06 10:47) [5]
> Да, хотя-бы и так.


2 вопроса:
Шо такое: Trim(Column.Field.Dataset.FieldbyName("clRegion").AsString);
И с чем это едят (справка молчит);

И будет ли это работь с Stringgrid, а не TDBGrid


 
isasa ©   (2006-07-03 11:07) [7]

Таак, понял, что поспешил.


procedure TCheckF.CheckGridDrawColumnCell(Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState);
begin
if <условие покраски> then begin
 if (gdFocused in State) then
     (Sender as TStringGrid).canvas.brush.color:=clActiveCaption //фокус
 else
     (Sender as TStringGrid).canvas.brush.color:=$00CCFFFF // не совпад. области - желтый
end;
... //Дальше рисуем, как обычно ...
end;

вот это все, для

type
 TDrawCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object;
property OnDrawCell: TDrawCellEvent;




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

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

Наверх




Память: 0.46 MB
Время: 0.014 c
2-1151949191
Fantos
2006-07-03 21:53
2006.07.23
Мерцание png


1-1149770827
harddrive_tester
2006-06-08 16:47
2006.07.23
Запуск программы с параметром и ожидание завершения


15-1151218322
Nic
2006-06-25 10:52
2006.07.23
Какие преимущества даёт компонент TActionList?


3-1147900302
student000
2006-05-18 01:11
2006.07.23
Обновление StatusBar


10-1122607111
just
2005-07-29 07:18
2006.07.23
CreateComObject в Builder C++





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