AMALIY MASHG’ULOT. DASTURLASH TILINING
OFFICE DASTURLARI BILAN HAMKORLIGI.
OLE sо‘zi Objects Linked and Embedded
(Bog‘langan va Ichki Obyektlar – B va IO ) ma’nosini bildiradi. Dasturlar
orasida bо‘linadigan ma’lumotlar OLE obyekt deyiladi. OLE obyektlarini
saqlovchi dastur, OLE konteyner (OLE Container) deyiladi.
Masalan, MicroSoft Word
hujjatga grafik obyektlarni, audio xamda videokliplarni va boshqa kо‘plab
obeyektlarni jamlashi mumkin (bunday hujjatni ba’zan tuzilgan hujjat - compound
document deyiladi).
Nomidan kо‘rinib turibdiki, OLE obyektlarni
OLE konteynerga qо‘shish yoki unga о‘rnatish mumkin. Birinchi holatda
ma’lumotlar diskda fayl kо‘rinishida saqlanadi va ixtiyoriy dastur ularga
murojaat qilishi hamda о‘zgartirishi mumkin bо‘ladi. Ikkinchi holatda
ma’lumotlar OLE konteyneriga о‘rnatiladi va bu ma’lumotlarni faqat u kо‘rishi
va о‘zgartirishi mumkin.
Agar DDE yordamida matnlar bilan ishlash
mumkin bо‘lsa, OLE yordamida esa, dasturlarga ixtiyoriy tipdagi ma’lumotlarni
kiritish mumkin. Xuddi DDEda kо‘rib о‘tganimizdek, mijoz dastur (OLE konteyner)
ishlashi uchun OLE server mavjud bо‘ltsht talab qilinadi. Mijoz dasturda
ishlayotgan foydalanuvchi har safar OLE obyektga kо‘rish yoki tahrirlash uchun
murojaat qilganda server dastur ishga tushiriladi va ma’lumotlar shu yerda
tahrirlanadi.
TOLEContainer obyekti System sahifasida
joylashgan va OLE-konteyner dasturlarini tuzish uchun ishlatiladi.
TOLEContainer OLEning hamma ichki murakkabliklarini yashiradi va dasturchi
uchun ancha oddiy interfeysni taqdim qiladi. OLE obyektni ishlatuvchi oddiy
dastur misolini kо‘rib о‘tamiz. Yangi loiha yarating va formaga TOLEContainer
obyektini tashlang, Obyektlar Inspektoridagi ObjClass yoki ObjDoc
xususiyatlariga sichqonni ikki marta bosing – shunda Windowsning standart
“Insert Object” muloqot oynasi kо‘rinadi.
22-rasm. “Insert Object” muloqot oynasi
Bu muloqot oynasida tizimda mavjud barcha
OLE-serverlar rо‘yxati keltirilgan. OLE-obyekt tipi siz tanlagan server
tomonidan aniklanadi. Agar siz yangi obyekt yaratsangiz (Create New), u holda,
OK tugmasi bosilgach, yangi obyekt yaratiladigan OLE-server ishga tushadi.
Srver dasturidan chiqilgach, yangi OLE obyekt dasturga о‘rnatiladi (embedded
object). Yangi OLE obyektni serverlardan birining formatida saqlanuvchi mavjud
fayl yordamida ham yaratish mumkin. Buning uchun Create from File bо‘limini
tanlash kerak.
Keling misol sifatida dasturimizga Microsoft
Word Document ni tanlab yangi obyekt yaratamiz.
23-rasm. OLE hujjati
kiritilgan dastur
OK tugmasini bossangiz MS Word yuklanadi va u
yerda ixtiyoriy matnni terish mumkin. Ishni yakunlash maqsadida “File|Close and
Return to Form1” buyrug‘ini tanlang.
OLE-konteynerga sichqonni bosing - MS Word OLE-obyektdagi hujjat bilan paydo bо‘ladi va uni tahrirlash mumkin, bu holda hamma о‘zgarishlar OLE-obyektda saqlanadi.
TOLEContainer dasturga obyektning о‘z
xususiyatlari bilan (ya’ni uni turli darajada kattalashtirish yoki
kichraytirish mumkin – Zoom
xususiyati) yoki piktogramma,
kо‘rinishida birga о‘rnatadi.
OLE-obyekt tanlovi faqat formalar dizayneri rejimida emas, balki
dastur bajarilish vaqtida ham bajarilishi mumkin. Ish natijalarini fayllarda saqlash va kerak bо‘lganda uni fayldan qayta
tiklash mumkin, buning uchun TOLEContainer
ikkita SaveToFile va LoadFromFile
uslublariga ega.
Quyidagi dastur TOLEContainerning barcha asosiy imkoniyatlarini namoyish qiladi va quyidagilar imkonini beradi:
- dastur bajarilish vaqtida yangi OLE konteyner yaratish;
- OLE obyektni Windowsning standart “Insert Object” oynasi yordamida, yoki Clipboard yordamida, yoki “olib tashlash” (drag-and-drop) texnologiyasi yordamida о‘rnatish;
- OLE obyektni faylda saqlash
va uni qayta tiklash;
OLE obyektlarni drag-and-drop texnologiyasi yordamida о‘rnatish ancha qiziqarli. MS Wordni yuklang
(uning oynasi va dastur oynasini ekranda yonma-yon о‘rnating), ixtiyoriy matnni
tering, uni belgilang va sichqon yordamida tortib dasturning bosh oyeasiga
tashlang. Endi dasturda shu matnni saqlovchi yangi ichki OLE konteyner hosil
bо‘ladi. Bu imkoniyatni dasturiy yо‘l bilan bajarish ancha mushkul.
OLE obyektini ma’lumotlar omborida saklash
Ba’zan OLE obyektini fayllarda emas,
ma’lumotlar omborlarida saqlash zarurati tug‘iladi (jadvalning BLOB tipli
maydonida). Bu holda OLE obyekt albatta о‘rnatilgan bо‘lishi kerak. Afsuski,
Delphining standart tо‘plamida TDBOLEContainer tipidagi obyekt mavjud emas,
buning uchun biz OLE obyektni SaveToStream va LoadFromStream usullari bilan
ma’lumotlar omboriga joylashtiramiz va unga murojaat qilamiz. Masalan:
procedure TOLEForm.SaveOLE(Sender: TObject);
var
BlSt : TBlobStream;
begin
With Table1 do BlSt:=TBlobStream.Create(BlobField(FieldByName('OLE')),
bmReadWrite);
OLEContainer.SaveToStream(BlSt as TStream);
BlSt.Free; end;
Комментарии
Отправить комментарий