7.3.3 Paletalarni saqlash
Foydalanuvchi interfeysi elementlarining aksariyati har qanday palitraga muhtoj emas. Biroq, grafikani o'z ichiga olgan komponentlar Windows va uning displey drayveri bilan o'zaro aloqada bo'lib , ushbu komponentlarning to'g'ri ko'rsatilishini ta'minlashi kerak. Windows operatsion tizimining hujjatlari, bu jarayon palitralarni realizatsiya qilish (palitralarni realizatsiya qilish) deb nomlanadi .
Paletani tatbiq etish eng yuqori (ekranda sizga yaqinroq ko'rinadigan) faol oynaning to'liq rang palitrasini ishlatishini ta'minlashga, fon oynalari esa palitrasining qolgan ranglaridan maksimal darajada foydalanishga qaratilgan. Bu shuni anglatadiki, fon oynalari ranglarini "haqiqiy" palitrada mavjud bo'lgan eng yaqin ranglarga o'zgartirishi kerak. Derazalar joylarini o'zgartirganda, bir-birining ustiga o'ralgan holda, Windows doimiy ravishda oyna palitralarini amalga oshiradi.
Izoh. C ++ Builder-da bitmap palitralaridan tashqari palitralarni yaratish va saqlash uchun mustaqil vositalar mavjud emas. Ammo, agar siz palitraga ishlov beradigan bo'lsak, u bilan grafik komponentlar ishlashi mumkin.
Displey yoki printer kabi moslama bilan ishlashda C ++ Builder komponentlari avtomatik ravishda palitrani amalga oshirish mexanizmini qo'llab-quvvatlaydi. Shunday qilib;
Shunday qilib, agar sizning komponentingiz palitraga ega bo'lsa, Windows-ning ushbu palitrani qanday ishlashini boshqarish uchun TControl koklassidan olingan ikkita GetPalette va PaletteChanged usullaridan foydalanishingiz mumkin :
• Palitrani tarkibiy qism bilan bog'lash. Agar siz grafik komponent uchun ma'lum bir palitradan foydalanmoqchi bo'lsangiz, sizning ilovangiz bu haqda bilib olishi kerak. Paletani komponentangiz bilan bog'lash uchun ushbu palitraga ishlov beruvchini qaytarish uchun uning GetPalette ob'ekti usulini ortiqcha yuklang . Bunda siz, birinchi navbatda, dasturga sizning komponentlaringizning ma'lum bir palitrasi bajarilishi kerakligini aytasiz; ikkinchidan, amalga oshirishda qaysi o'ziga xos palitradan foydalanilishini aniqlaysiz.
• Palitrani o'zgartirishga reaktsiya. Sizning komponentingiz GetPalette usulining haddan tashqari yuklanishi orqali palitraga bog'langanda, C ++ Builder PaletteChanged usuli yordamida palitralardan Windows xabarlariga avtomatik ravishda javob beradi . Oddiy ishlashda siz hech qachon ushbu usulning odatiy xatti-harakatlarini bekor qilishingiz shart emas. PaletteChanged usulining asosiy maqsadipalitraning amalga oshirilish turini aniqlash (fon yoki faol oynalar uchun). C ++ Builder Windows-dagi palitralarni tatbiq etishdan bir qadam oldinda: deraza tutqichlari yordamida nafaqat bir-birining ustiga tushadigan oynalar palitralari, balki faol oynalar komponentalari paletlari ham amalga oshiriladi. Agar siz ba'zi bir komponentlarning to'liq rang palitrasiga ega bo'lishini va sizga eng yaqin ekranda ko'rinishini xohlasangiz, ushbu standart palitrani bekor qilishingiz mumkin.
Do'stlaringiz bilan baham: |