Текущий архив: 2002.09.16;
Скачать: CL | DM;
Вниз
StringGrid или DrowGrid что пользовать и как? Найти похожие ветки
← →
Sapient (2002-09-03 16:08) [0]В общем проблемма такая: Есть
record
MyGrid Value:byte;
Color:Integer;
и есть
Grid: array [1..5,1..5] of MyGrid;
И все это дело нужно как-то отображать на экране в виде клеточек с заливкой цвета Grid[].color и значением Grid[].Value.
StringGrid вроде не подходит, так как там нельзя ячейки красить.
Сответственно нужно пользовать DrowGrid. Вот тут и начинается самое интересное КАК ЭТО СДЕЛАТЬ???
← →
MBo (2002-09-03 16:13) [1]можно использовать и то и другое.
В OnDrawCell закрашиваешь передаваемый Rect и Canvas.TextOut выводишь значение.
StringGrid удобен тем, что не нужно заводить дополнительнй массив для хранения данных- все можно держать в его Cells
← →
Sapient re (2002-09-03 16:42) [2]Сенкс всем за добрые слова...
но напишите пожалуйста процедурку чтобы она Cell с координатами X,Y в Grid-е (String или Draw) Заполняля в соответствии со значением массива Grid[x,y].Color и Grid[x,y].Value. PLZZZZZ.
← →
MBo (2002-09-03 16:48) [3]StringGrid без фиксированных ячеек
procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
Randomize;
with StringGrid1 do begin
for i:=0 to RowCount-1 do
for j:=0 to ColCount-1 do begin
//запись номера ячейки и случайного цвета
Cells[j,i]:=IntToStr(10*i+j)+" "+IntToStr(Random($1000000));
end;
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var j,colr:integer;
value,s:string;
begin
with StringGrid1 do begin
s:=Cells[Acol,Arow];
j:=pos(" ",s);
value:=Copy(s,1,j-1);//извлечение первой подстроки (номер)
colr:=StrToIntDef(Copy(s,j+1,Length(s)-j),$FFFFFF);
//извлечение значения цвета
Canvas.brush.color:=colr;
Canvas.FillRect(Rect);
Canvas.TextOut(rect.left+2,rect.top+2,value);
end;
end;
← →
MBo (2002-09-03 16:55) [4]P.S
хотя еще лучше хранить цвет в свойстве Cells.Objects, приводя его при хранении к типу Pointer, а при извлечении к Integer
Страницы: 1 вся ветка
Текущий архив: 2002.09.16;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c