КАТЕГОРИИ: Архитектура-(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
Как и 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;
Дата добавления: 2014-01-07; Просмотров: 481; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |