![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А вот такой вопрос, Нужно нарисовать таблицу 32х16 ячеек
smartleds © (2007-10-23 20:07:00)в каждой ячейке должно быть число от 0 до 255 лучше внизу ячейки.
И эта число должно быть отображено в ячейки графически, например, число 128 ячейка закрашена на половину серым цветом, число 255 вся ячейка закрашена черным , цифра 0 ячейка не закрашена.
Получается что-то типа диаграммы , подскажите плз какой компонент для этого лучше использовать?
smartleds (2007-10-23 20:34:00) [1]почему 16х16 , у меня 512 ячеек, эта таблица просто является визуальным отображением массива для лучшего восприятия.
smartleds (2007-10-23 20:29:00) [2]Спасибо!
@!!ex (2007-10-23 20:23:00) [3]На половину(вернее на четверть):
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
ARect: TRect; State: TGridDrawState);
var
Value:byte;
RC:TRect;
begin
RC:=RECT(ARect.Left,ARect.Top,ARect.LEft+((ARect.Right-ARect.Left) div 2),ARect.Top+((ARect.Bottom-ARect.Top) div 2) );
Value:=(ARow*StringGrid1.ColCount+ACol);
StringGrid1.Canvas.Brush.Color:=RGB(Value,Value,Value);
StringGrid1.Canvas.FillRect(RC);
StringGrid1.Canvas.TextOut(AREct.Left,ARect.Top,IntToStr(Value));
end;
Больше ничего писать не буду. Если идиот, не мои проблемы, а если нет - разберешся.
smartleds (2007-10-23 20:19:00) [4]А как ячейку в нем наполовину закрасить?
@!!ex (2007-10-23 20:19:00) [5]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Value:byte;
begin
Value:=(ARow*StringGrid1.ColCount+ACol);
StringGrid1.Canvas.Brush.Color:=RGB(Value,Value,Value);
StringGrid1.Canvas.FillRect(REct);
StringGrid1.Canvas.TextOut(REct.Left,Rect.Top,IntToStr(Value));
end;
наслаждайся.
@!!ex (2007-10-23 20:18:00) [6]Почему 32х16, когда должно быть 16х16??
@!!ex (2007-10-23 20:14:00) [7]StringGrid