Любая форма, являясь окном операционной системы, имеет собственную пиктограмму. По умолчанию любая форма, созданная в среде разработки продукта «Форсайт. Аналитическая платформа», использует системную пиктограмму. Для задания собственной пиктограммы используется свойство IFormControl.Icon. В режиме дизайна формы нажмите кнопку в инспекторе классов напротив свойства Icon и выберите необходимую пиктограмму. Для выбора доступны файлы только в формате *.ico. Во время выполнения формы пиктограмму можно изменить из прикладного кода. Для сброса собственной и установки системной пиктограммы установите свойству Icon значение Null.
Рассмотрим несколько примеров установки собственной пиктограммы из кода приложения.
Если на форме имеется компонент ImageList (GlobalImageList), то загрузить из него собственную пиктограмму можно, используя свойство IImageList.Icon. Если в компонент загружены изображения другого формата, то при работе они будут преобразованы к формату *.ico.
Sub TESTFormOnCreate(Sender: Object; Args: IEventArgs);
Begin
Self.Icon := ImageList1.Icon(0);
End Sub TESTFormOnCreate;
Для получения пиктограммы из объекта «Ресурсы» используйте свойства IResourceBinaries.Value, IResourceBinaries.ValueByKey или метод IResourceBinaries.Load. После получения пиктограммы в виде потока передайте этот поток в конструктор GxIcon.CreateFromStream или GxIcon.CreateFromStreamS. Созданную таким образом пиктограмму установите для формы:
Sub TESTFormOnCreate(Sender: Object; Args: IEventArgs);
Var
MB: IMetabase;
Res: IResourceObject;
Begin
MB := MetabaseClass.Active;
Res := MB.ItemById("Project_Resources").Bind As IResourceObject;
Self.Icon := New GxIcon.CreateFromStream(Res.Binaries.Value("FORM_ICON"));
End Sub TESTFormOnCreate;
Для загрузки пиктограммы из файла используйте метод GxIcon.CreateFromFile или GxIcon.CreateFromFileS:
Sub TESTFormOnCreate(Sender: Object; Args: IEventArgs);
Var
Size: IGxSize;
Begin
Size := New GxSize.Create(16, 16);
Self.Icon := New GxIcon.CreateFromFileS("C:\Work\Images\Form_Icon.ico", Size);
End Sub TESTFormOnCreate;
См. также: