Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компонент TDrawGrid

TDrawGrid

 

Как и TStringGrid компонент TDrawGrid предназначен для отображения информации в виде таблицы и, в дополнение можно расположить в ячейках графическую информацию. Свойства компонента аналогичны TStringGrid. У данного компонента имеются следующие методы:

 

function CellRect (ACol, ARow: LongInt): TRect;

- возвращает координаты ячейки ACol, ARow;

 

procedure MouseToCell (x,y: Integer; var ACol, ARow: LongInt);

- возвращает табличные координаты ячейки ACol, ARow по экранным координатам;

 

С данным компонентом связаны события:

OnDrawCell

- возникает при необходимости перерисовать ячейку с табличными координатами ACol, ARow;

 

OnGetEditText

- возникает при редактировании текста в ячейке ACol, ARow;

 

OnSetEditText

- возникает при завершении редактирования ячейки ACol, ARow;

Пример. Рассмотрим пример, как показать текст и картинки одновременно, причем чтобы текст можно редактировать.

В секции public введем переменную ListMap типа TStringList. В этой переменной будем хранить список имен файлов с картинками. В обработчике FormCreate создадим и наполним список ListMap.

 

Procedure TForm1.FormCreat();

const

FNames: array[0..3] of String = (‘1.bmp’, ‘2.bmp’, ‘3.bmp’,

‘4.bmp’);

Var

k: Integer;

begin

//создадим список строк

ListMap:= TStringList.Create;

//вставим в список названия файлов и сами картинки

for k:=0 to 3 do

begin

ListMap.Add(FNames[k]);

ListMap.Objects[k]:= TBitmap.Create;

(ListMap.Objects[k] as TBitmap).LoadFromFile(FNames[k]);

end;

end;

 

Далее поместим на форму компонент DrawGrid1 и установим следующие его свойства:

 

ColCount = 2;

RowCount = 2;

FixedCols = 0;

FixedRows = 0;

Options.Editing = true;

 

Создадим для компонента DrawGrid обработчики:

 

Procedure TForm1.DrawGrid1GetEditText (Sender: TObject; ACol,

ARow: Integer; var Value: String);

//передает для редактирования текст из ячейки

begin

Value:= ListMap[2*ACol + ARow];

end;

 

Procedure TForm1.DrawGrid1SetEditText (Sender: TObject; ACol,

ARow: Integer; Value: String);

//процедура получает текст из редактора и сохраняет его в списке ListMap

begin

ListMap[2*ACol + ARow]:= Value;

end;

 

Procedure TForm1.DrawGrid1DrawCell(Col, Row: Integer; Rect: TRect);

//рисует картинку из списка ListMap.Objects и текст из ListMap

var

k: integer;

begin

//пересчитываем координаты ячейки Col, Row в индекс списка

k:= 2*Col + Row;

//уменьшаем размер ячейки таблицы с возможностью вывода в нее текста

Rect.Bottom:=Rect.Bottom-DrawGrid1.Canvas.TextHeight(‘1’)-1;

//рисуем картинку

DrawGrid1.Canvas.StretchDraw(Rect, ListMap.Objects[k] as

TBitmap);

//выводим текст

DrawGrid1.Canvas.TextOut(Rect.Left, Rect.Bottom - 1,

ListMap[k]);

end;

 

<== предыдущая лекция | следующая лекция ==>
Компонент TStringGrid | Компонент TBitBtn
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 481; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.