|
Елементи керування
Картинка - PicCtl (модуль Ctl)
Цей елемент керування, як неважко здогадатися, дозволяє розмістити у вікні програми картинку. Крім цього нічого корисного він не робить :).
Створити елемент керування-картинку
Function PicCtl_Create(Prog:PProg; VPicture:Pointer;
VBeveled,VBig:Boolean):PControl;
- VPicture - вказівник на картинку.
- VBeveled - флажок, чи малювати рамку навколо картинки: True - малювати, False - не малювати.
- VBig - флажок, чи треба збільшувати картинку в 8 разів (наприклад, як у вікні Майстра програм).
Намалювати елемент керування-картинку
Procedure PicCtl_Paint(Me:PControl; VX,VY:Integer);
Розміри залежать від розмірів картинки.
Установити картинку елемента керування-картинки
Procedure PicCtl_SetPicture(Me:PControl;
VPicture:Pointer);
VPicture - вказівник на нову картинку
Цей приклад буде неймовірно простим. Робимо заготовку нової програми TestPic.pas, заводимо змінну PctTest: PControl, створюємо картинку:
PctTest:=Ctl.PicCtl_Create(Me, Me.Icon, False, False);
Ну і малюємо її:
Ctl.PicCtl_Paint(PctTest, 10, 10);
Можна запускати. У вікні програми буде намальована її ж іконка. Можете поекспериментувати з булівськими флажками при створенні картинки і подивитись, як виглядатиме картинка.
А ось як показати у PicCtl будь-яку картинку, наприклад, з даного BMP-файла? Це трохи складніше, тут треба користуватись механізмом ресурсів та модулем Pic. Але це важлива техніка; тому я все ж таки покажу, як це робити, але без пояснень. Робиться це у три кроки.
- Заводиться змінна - вказівник на нашу картинку (як і завжди, у записі TTestPicData):
PicLogo: Pointer;
- В OnInit перед створенням елементів керування вона завантажується як BMP-ресурс:
PicLogo:=Kernel.LoadBMPRes('pic\biglogo.bmp');
Тепер при створенні елементів керування-картинок можна використовувати PicLogo, наприклад:
PctTest:=Ctl.PicCtl_Create(Me, PicLogo, False, False);
- В обробнику OnClose ми маємо звільнити завантажений ресурс:
Kernel.FreeRes('biglogo.bmp');
Зверніть увагу, тут вказується ім'я файла без шляху до нього.
| |