Использование изображений в Visual FoxPro
« Назад Если объект имеет свойство Picture, то взамен заголовка или вместе с заголовком можно выводить изображение, хранимое в файле, имя которого содержит это свойство. (Форматы графических файлов, поддерживаемые VFP, перечислены в табл. 19.5) При этом соответствующим образом должно быть установлено свойство Style объекта. Пример 1. Создается форма с одной кнопкой, одновременно содержащей изображение, хранимое файлом d:\Help.ico, и заголовок "Вопрос". public oForm oForm = NewObject("Form") oForm.AddObject("Cmd1", "Cmd") oForm.Show && Результат см. на рис. 10.30 define class Cmd as CommandButton Caption = "Вопрос" Picture = "d:\Help.ico" Style = 0 PicturePosition = 1 Height = 40 Width = 120 Left = 10 Top = 10 Visible = .T. endDefine Рис. 10.30. Кнопка "Вопрос" Замечание. Для получения имени файла рисунка можно употребить функцию GETPICT( ). Пример 2. Создается форма с одним раскрывающимся списком, предназначенным для отображения и выбора файла (свойство RowSourceType уставлено в 7 – Files). В списке одновременно с именем файла выводится соответствующее изображение. Все рисунки, сопровождающие имена файлов, имеют размер 16´16 пикселей. public oForm clear resources oForm = NewObject("Form") oForm.AddObject("Combo1", "Comb") oForm.Show && Возможный результат см. на рис. 10.31 define class Comb as ComboBox Style = 0 PictureSelectionDisplay = 0 Height = 30 Width = 200 Left = 10 Top = 10 RowSourceType = 7 Visible = .T. && && Обработчик события DropDown procedure DropDown && Имена файлов начинаются с 5-го элемента for iItem = 5 to This.ListCount cExtension = Upper(Right(This.List(iItem), 3)) do case case cExtension = "BMP" This.Picture(iItem) = "d:\Picture.bmp" case cExtension = "DBC" This.Picture(iItem) = "d:\DataBase.bmp" case cExtension = "DBF" This.Picture(iItem) = "d:\Table.bmp" case cExtension = "DOC" This.Picture(iItem) = "d:\Word.bmp" case cExtension = "PRG" This.Picture(iItem) = "d:\Program.bmp" case cExtension = "SCX" .Picture(iItem) = "d:\Form.bmp" case cExtension = "XLS" This.Picture(iItem) = "d:\Excel.bmp" otherwise && Директории отображаются без рисунков && Прочие файлы сопровождаются иконкой This.Picture(iItem) = Iif("]" $ cExtension, "", "d:\File.bmp") endcase endfor endProc endDefine Рис. 10.31. Рисунки в раскрывающемся списке Некоторые воспроизводящие графику свойства ActiveX-элементов управления должны получать ссылку на объект рисунка. Например, ActiveX-элемент управления Outline поддерживает свойство PictureOpen, требующее подобную ссылку. Функция LOADPICTURE([cFileName])создает ссылку на объект рисунка, хранящегося в файле cFileName. Типа файла – это либо BMP, либо ICO, либо WMF. Тип результата – Object. Функция SAVEPICTURE(oObjectReference, cFileName)создает BMP-файл cFileName по ссылке на объект рисунка oObjectReference. Файл, если он существует, будет перезаписан без предупреждения. Тип возвращаемого функцией результата – Logical. Функция употребляется с объектами, имеющими свойство, хранящее ссылку на объект рисунка и получающее некоторое значение по умолчанию (например свойство PictureOpen ActiveX-элемента управления Outline). Используя это значение, функция SAVEPICTURE( ) может создать соответствующий BMP-файл. Пример. Создается файл d:\PictureOpen.bmp с рисунком , ссылку на который по умолчанию хранит свойство PictureOpen ActiveX-элемента управления Outline. oForm = CreateObject("Form") oForm.AddObject("oleOutline", "oleControl", "MSOutl.Outline") SavePicture(oForm.oleOutline.PictureOpen, 'd:\PictureOpen.bmp') |