Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо