Главная страница
    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.011 c
2-1152043488
Footballer
2006-07-05 00:04
2006.07.23
Как разместить ссылку :--(


15-1150835157
Axis_of_Evil
2006-06-21 00:25
2006.07.23
В остнастке "управление компьютером"


15-1151246456
Ketmar
2006-06-25 18:40
2006.07.23
pe-cryptor.


2-1150106132
аматор
2006-06-12 13:55
2006.07.23
маленькая странность


2-1151820212
Gizza
2006-07-02 10:03
2006.07.23
Перемещение строк в StringGrid





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