Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-50838
neg2001
2002-09-03 15:00
2002.09.16
Господа, подскажите откуда можно нормально cкачать Delphi 7


6-50888
[nex] aka Counterfeiter
2002-07-12 01:02
2002.09.16
ServerSocket nonBlockingThread


14-50917
Marser
2002-08-18 22:58
2002.09.16
А какую музыку предпочитают программеры?


1-50738
Down
2002-09-05 17:32
2002.09.16
Статус файла


3-50627
Soft
2002-08-24 15:55
2002.09.16
Самогенерация SQL запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский