StringGrid, раскрасить ячейки
Код: Выделить всё
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Var
StringGrid: TStringGrid;
Can: TCanvas;
begin
StringGrid := Sender as TStringGrid;
Can := StringGrid.Canvas;
Can.Font := StringGrid.Font;
if (ARow >= StringGrid.FixedRows) and (ACol >= StringGrid.FixedCols)
then Can.Brush.Color := StringGrid.Color
else Can.Brush.Color := StringGrid.FixedColor;
//==============
if ((ACol = 1) and (ARow = 1)) or
((ACol = 3) and (ARow = 1)) or
((ACol = 2) and (ARow = 2)) or
((ACol = 3) and (ARow = 3)) or
((ACol = 1) and (ARow = 3)) then
Can.Brush.Color := clRed;
//==============
if (gdSelected in State) then
begin
Can.Font.Color := clHighlightText;
Can.Brush.Color := clHighlight;
end;
Can.FillRect(Rect);
Can.TextOut(Rect.Left+2,Rect.Top+2, StringGrid.Cells[ACol, ARow]);
end;
С уважением, Lost Angel...
defaultdrawing := false в обджект инспекторе.
С уважением, Lost Angel...
Создай какой-нить массив с координатами выделенных ячеек.. и их кол-во
Ну и в обработчике
Код: Выделить всё
...
type
...
TCellsInfo = record
x, y : Integer;
Color : TColor;
end;
var
....
CellsInfo: Array[1..100] of TCellsInfo;
CellsCount: Integer;
...
Код: Выделить всё
...
for i := 1 to CellsCount do
if (ACol = CellsInfo[i].x) and (ARow = CellsInfo[i].y) then
Can.Brush.Color := CellsInfo[i].Color;
...
С уважением, Lost Angel...
Приветики всем есть огромная просьба короче мне нужно массив из 15-ти случайных чисел от 1 до 99 вывести в StringGride, буду очень признателен и блягодарен, отблагодарю как положенно. Ответ можно прислать на 468465110 это номер аси
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Санчез, немножечко не в тему ну ладно.
Положите на форму Form1 кнопку и грид затем используйте это:
Положите на форму Form1 кнопку и грид затем используйте это:
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FillArray;
procedure ShowArray;
private
{ Private declarations }
FArr:array[1..99] of integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FillArray;
var
i:integer;
begin
for i:= 1 to 99 do begin
FArr[i]:=random(1000);
end;
end;
procedure TForm1.ShowArray;
var
i:integer;
begin
with StringGrid1 do begin
ColCount:=2;
RowCount:=100;
FixedRows:=1;
FixedCols:=1;
Cells[0,0]:='Элемент'; Cells[1,0]:='Значение';
for i:=1 to 98 do begin
Cells[0,i]:=inttostr(succ(i));
Cells[1,i]:=inttostr(FArr[succ(i)]);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FillArray;
ShowArray;
end;
end.