Взаимодействие классов TCanvas и TGraphic

В наборе методов холста предусмотрен метод для вывода графических изображений:

procedureDraw(X, Y: Integer; Graphic: TGraphic);

 

Процедура Draw() вызывает метод прорисовки графического объекта. Левый верхний угол объекта выводится в точке (X,Y).

Масштабирование объекта класса TGraphic обеспечивает процедура:

procedureStretchDraw(constRect: TRect; Graphic: TGraphic );

 

Метод StretchDraw() рисует объект TGraphic в границах прямоугольной области Rect. Если размер исходного графического объекта не совпадает с размерами прямоугольника, Graphic масштабируется – вписывается в прямо-

угольную область.

Пиктограмма – класс TIcon

 

Класс TIcon инкапсулирует пиктограмму Windows. Объект-пиктограмма загружается из файла .ICO. Набор свойств и методов класса невелик. Геометрические размеры пиктограммы жестко заданы глобальными переменными Windows, поэтому свойства Height и Width используйте в режиме только для чтения:

propertyHeight: Integer;

propertyWidth: Integer;

 

Пиктограмма всегда прозрачна, т. е. свойство Transparent всегда равно true.

propertyTransparent: Boolean;

 

Доступ к объекту TIcon осуществляется через дескриптор:

propertyHandle: HIcon;

 

Метод ReleaseHandle передает дескриптор пиктограммы другому объекту, обнуляя ссылку на него:

functionReleaseHandle: HIcon;

 

Класс TIcon как наследник TGraphic поддерживает операции по работе с потоком и файлом, но не воспринимает буфер обмена Windows.

В Windows API предложены функции, позволяющие извлекать пиктограммы, ассоциированные с приложением. Одна из наиболее распространенных

функций:

 

functionExtractAssociatedIcon(HINSTANCE:hInst; Path : PChar; lpiIcon :

word):HIcon;

 

ищет пиктограмму в файле, указанном в параметре Path. Если в теле файла пиктограмма не обнаружена, поиск продолжается в приложении, связанном с данным типом файла. В случае успеха функция возвращает дескриптор пиктограммы. Ниже приведен листинг с примером использования функции ExtractAssociatedIcon(). При желании применить пример на практике не забудьте подключить к вашему проекту модуль ShellAPI.

Implementation

usesShellAPI;

{$R *.DFM}

procedureTForm1.Button1Click(Sender: TObject);

varIcn : TIcon; i : word; fName : string;

Begin

Try

Icn:=TIcon.create;

fName:=Edit1.text; // полное имя файла

Icn.Handle:=ExtractAssociatedIcon(application.handle, PChar(fName), i);

Form1.canvas.draw(10,10,Icn);

Finally

Icn.free;

end;

end;

 








Дата добавления: 2016-03-15; просмотров: 659;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.