Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2008, 09:06   #1
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию выделение строк цветом в StringGrid

Помогите,пожалуйста решить такую задачу.
На форме есть stringgrid и кнопка "вставить".копирую из экселя несколько строк с числами,причем числа могут быть одинаковые.как сделать так,что если числа одинаковые в stringgride будет выделение одинаковых строк одним цветом.
kate158 вне форума Ответить с цитированием
Старый 06.08.2008, 09:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну например можно применить ченить типа:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private  ColorBox1:TColorBox;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var c,i:integer;
begin
 ColorBox1:=TColorBox.Create(nil);
 ColorBox1.Parent:=Form1;
 ColorBox1.Hide;
for c :=0  to StringGrid1.ColCount-1  do
begin
 for i :=0  to StringGrid1.RowCount-1  do
 begin
  StringGrid1.Cells[c,i]:=inttostr(random(10));
 end;
end;

end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var i:integer;c:Tcolor;
begin

 i:=StrToIntDef(StringGrid1.Cells[0,arow],0);
 if i<=ColorBox1.Items.Count-1 then
  c:=StringToColor(ColorBox1.Items[i]) else c:=clwhite;
  StringGrid1.Canvas.Brush.Color:=c;
  StringGrid1.Canvas.FillRect(rect);
  StringGrid1.Canvas.TextOut(rect.Left,rect.Top,StringGrid1.Cells[acol,arow]);

end;

end.
Конечно это не единственный способ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Включение функции выделение цветом xxdima Microsoft Office Excel 3 28.08.2008 23:47
Выделение в StringGrid Лубышев Помощь студентам 2 08.06.2008 21:05
StringGrid: Выделение и закрашивание mazdakilla Общие вопросы Delphi 1 14.05.2008 22:55
как сцепить несколько ячеек чтобы сохранилось выделение цветом или жирным шрифтом gribkow Microsoft Office Excel 7 23.04.2008 09:27
Выделение строк с... по - в SynEdit Noor Общие вопросы Delphi 2 29.12.2007 12:41