Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А вот такой вопрос, Нужно нарисовать таблицу 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо