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

Вниз

Изменение цвета строки в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.021 c
15-1151187003
Zeqfreed
2006-06-25 02:10
2006.07.23
Регистрация домена на ripn.net в зоне net.ru


4-1144750388
plotn
2006-04-11 14:13
2006.07.23
как задать приоритет процесса? (ShellExecuteEx)


15-1151141212
Fran
2006-06-24 13:26
2006.07.23
Защита ноутбука


15-1151340491
ZeFiR
2006-06-26 20:48
2006.07.23
TFlashPlayerControl


2-1151929185
Id
2006-07-03 16:19
2006.07.23
Добавление полей в триггере





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