Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-50793
KPY
2002-08-29 07:44
2002.09.16
Шифрация !


1-50749
NewInDelphi
2002-09-05 22:28
2002.09.16
оператор IN


1-50735
Weare
2002-09-02 12:40
2002.09.16
Сервис в Windows2000Server


4-51035
Stany
2002-07-23 20:28
2002.09.16
System tray


1-50672
Song
2002-09-04 17:22
2002.09.16
Хук на сообщение WM_SYSCOMMAND. Проблема.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский