![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid [D6, Win95/98, Win2k, WinXP]
saNat © (2004-10-09 02:54:00)Подскажите, пожалуйста, как выделить строку в данном компоненте. Ну, например, сделать выделение (bold) шрифта или изменение его цвета?
С уважением...
saNat (2004-10-10 11:13:00) [1]Спасибо. Просто неправильно задал вопрос...
GanibalLector (2004-10-10 02:02:00) [2]Во первых,сегодня 10.10.2004 ,а не 11.
Во вторых,ты начинаешь мне не нравиться!!!То так,то эдак.Определись!!!
Ладно,вот :
Option RowSelect=TRUE
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with StringGrid1.Canvas do begin
if (Acol<>0) and (Arow<>0) then begin
if StringGrid1.Cells[1,Arow]=Datetostr(now) then begin
Brush.Color := $cbe08b;
Font.Style:=[fsBold];
FillRect(Rect);
Font.Color := clblack;
if textwidth(Stringgrid1.cells[Acol,Arow])>=Rect.Right-Rect.Left
then textout(rect.left+2 ,Rect.top+4,stringgrid1.Cells[Acol,Arow]) else
textout(rect.left+(rect.right-rect.left -
textwidth(stringgrid1.cells[Acol,Arow])) div 2 ,
Rect.top+4,stringgrid1.Cells[Acol,Arow]);
end else begin
Brush.Color := $b0ffff;
FillRect(Rect);
Font.Color := clblack;
if textwidth(Stringgrid1.cells[Acol,Arow])>=Rect.Right-Rect.Left
then textout(rect.left+2 ,Rect.top+4,stringgrid1.Cells[Acol,Arow]) else
textout(rect.left+(rect.right-rect.left -
textwidth(stringgrid1.cells[Acol,Arow])) div 2 ,
Rect.top+4,stringgrid1.Cells[Acol,Arow]);
end;
end
else begin
Brush.Color := clbtnface;
FillRect(Rect);
Font.Color := clblack;
textout(rect.left+(rect.right-rect.left -textwidth(stringgrid1.cells[Acol,Arow])) div 2 ,
Rect.top+4,stringgrid1.Cells[Acol,Arow]);
end; end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[2,2]:='Значение1';
StringGrid1.Cells[2,3]:='Значение2';
StringGrid1.Cells[2,4]:='Значение3';
StringGrid1.Cells[2,5]:='Значение4';
StringGrid1.Cells[2,6]:='Значение5';
StringGrid1.Cells[1,2]:='10.10.2004';
StringGrid1.Cells[1,3]:='11.10.2004';
StringGrid1.Cells[1,4]:='9.10.2004';
StringGrid1.Cells[1,5]:='10.10.2004';
end;
saNat (2004-10-10 01:01:00) [3]Виноват... Не так, возможно, выразился.
Предположим, есть StringGrid такого содержания
11/10/2004 - Значение 1
11/10/2004 - Значение 2
11/10/2004 - Значение 3
11/10/2004 - Значение 4
10/10/2004 - Значение 1
10/10/2004 - Значение 2
10/10/2004 - Значение 3
10/10/2004 - Значение 4
09/10/2004 - Значение 1
09/10/2004 - Значение 2
09/10/2004 - Значение 3
Выделить нужно, например, значения за сегодняшнюю дату - 11/10/2004
11/10/2004 - Значение 1
11/10/2004 - Значение 2
11/10/2004 - Значение 3
11/10/2004 - Значение 4
10/10/2004 - Значение 1
10/10/2004 - Значение 2
10/10/2004 - Значение 3
10/10/2004 - Значение 4
09/10/2004 - Значение 1
09/10/2004 - Значение 2
09/10/2004 - Значение 3
С уважением...
GanibalLector (2004-10-09 03:02:00) [4]В DrawCell писать что-то тира
with stringgrid1.Canvas do begin
...
if gdselected in state then begin
Brush.Color := $cbe08b;
Font.Style:=[fsBold];
FillRect(Rect);
Font.Color := clblack;
...
GanibalLector (2004-10-09 03:02:00) [5]В DrawCell писать что-то типа
with stringgrid1.Canvas do begin
...
if gdselected in state then begin
Brush.Color := $cbe08b;
Font.Style:=[fsBold];
FillRect(Rect);
Font.Color := clblack;
...