Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
26.04.2015
Размер:
155.65 Кб
Скачать

Использование графики в таблице и списке *

В таблице (StringGrid) можно отображать не только текстовую, но и графическую информацию. Для её вывода необходимо использовать событие OnDrawСell, в котором указывается условие по которому прорисовываются ячейки, например столбец, строка или другая группа ячеек. Областью прорисовки ячейки является параметр Rect (прямоугольная область). Компонент StringGrid имеет свойство Canvas, что позволяет использовать все возможности отображения графики.

Пример 17 Ячейки 2 строки красного цвета, текст находящийся в них желтого цвета, курсив

procedure TForm1.SGDrawCell(Sender:TObject; ACol, ARow:Integer; Rect:TRect; State:TGridDrawState);

begin

if ARow=1 then // условие выбора ячеек (2 строка)

begin

SG.Canvas.Brush.Color:=clRed; // Цвет ячейки красный

SG.Canvas.FillRect(Rect); // Заливка цветом

SG.Canvas.Font.Color:=clYellow; // Цвет текста в ячейке

SG.Canvas.Font.Size:=10; // Размер 10

SG.Canvas.Font.Style:=[fsItalic]; // Курсив

SG.Canvas.TextOut(Rect.Left+2,Rect.Top+2,'Пример'); // Вывод текста

end;

Для прорисовки элемента списка необходимо использовать событие OnDrawItem. Параметр Rect определяет прямоугольную область. Для прорисовки необходимо установить значение свойства Style для списка равным lbOwnerDrawFixed. Параметр Control является ссылкой на список, Index – номер элемента списка.

Пример 18 Список прорисованных цветных системных шрифтов

for i:=0 to Screen.Fonts.Count-1 do // Загрузка списка системных шрифтов ListBox1.Items.Append(Screen.Fonts.Strings[i]);

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;

Rect: TRect; State: TOwnerDrawState);

begin

with TListBox(Control).Canvas do

begin

Rect.Bottom:=Rect.Bottom-3; // Уменьшение высоты области прорисовки

Brush.Color:=clGray; // Цвет фона

FillRect(Rect); // Заливка фоном

Font.Color:=clYellow; // Цвет шрифтов

Font.Name:=ListBox1.Items[Index]; // Установка названия шрифтов

Font.Size:=14; // Размеры шрифтов

TextOut(Rect.Left+5,Rect.Top+1,ListBox1.Items[Index]); // Вывод названия

end;

end;

Соседние файлы в папке Методический материал