ការបង្កើត និងបង្ហាញឯកសារ OLE ក្នុងទម្រង់ p.1 ។ បច្ចេកវិទ្យា OLE (Object Linking and Embedding)

Access 2010 មានលទ្ធភាពបន្ថែមវត្ថុទៅក្នុងវាលមួយ។ ជាមួយប្រភេទ ទិន្នន័យ OLE . ក្នុងករណីដែលប្រភេទទិន្នន័យត្រូវបានបញ្ជាក់ជា OLE (ការភ្ជាប់វត្ថុ និងការបង្កប់- ការចងនិងបង្កប់វត្ថុ) បន្ទាប់មក ចូលប្រើ DBMSរក្សាទុកខាងក្រៅ វត្ថុឯកសារដែលបានចែករំលែកមូលដ្ឋានទិន្នន័យ បែងចែកសម្រាប់ការផ្ទុករបស់វា ទំហំច្រើនដូចដែលវត្ថុនេះកាន់កាប់ក្នុងទម្រង់ជាឯកសារដាច់ដោយឡែក។ នៅក្រោម វត្ថុគួរតែត្រូវបានយល់ថាជាឯកសារដែលបានបង្កើតជាកម្មវិធីនៅក្នុង អ្នកកែសម្រួលក្រាហ្វិក, ឈុតវីដេអូក្នុងកម្មវិធី MS Office ។ល។ នៅពេលដែលតារាងត្រូវបានបំពេញដោយទិន្នន័យដែលជាវត្ថុមួយ សារអំពីកម្មវិធីដែលអាចត្រូវបានប្រើដើម្បីបើកវត្ថុនេះត្រូវបានបង្កើតនៅក្នុងទីតាំងដែលត្រូវគ្នានៃវាលជាមួយនឹងប្រភេទទិន្នន័យ OLE ។ ការបង្ហាញវត្ថុមួយ។នឹងត្រូវបានអនុវត្តតែក្នុងទម្រង់ និងរបាយការណ៍ប៉ុណ្ណោះ។

សម្រាប់ ការបង្កប់វត្ថុមួយ។នៅក្នុងវាលជាមួយ ប្រភេទទិន្នន័យ OLEអ្នកត្រូវបើកតុ របៀប "អ្នកសាងសង់" ។ឧទាហរណ៍ បន្ថែមវាលថ្មី។ "រូបថតផលិតផល។"ជ្រើសរើសប្រភេទទិន្នន័យ "វាលវត្ថុ OLE"ហើយបន្ទាប់មករក្សាទុកតារាង។

បន្ទាប់មក នៅក្នុងរបៀប "តារាង"នៅក្នុងបន្ទាត់សម្រាប់ការបញ្ចូលទិន្នន័យ ចុចប៊ូតុងកណ្ដុរខាងស្ដាំ ក្នុងម៉ឺនុយដែលបើក ជ្រើសរើសបន្ទាត់ដែលមានពាក្យបញ្ជា ដែលនឹងបើកប្រអប់មួយ (រូបភាព 3.38 រូបភព 3.39)។

អង្ករ។ 3.38 ការបញ្ចូលវត្ថុមួយ។

អង្ករ។ 3.39 ប្រអប់ប្រអប់សម្រាប់បន្ថែមវត្ថុថ្មីទៅតារាងចូលដំណើរការ

សូមចងចាំថាមានជម្រើសពីរសម្រាប់បង្កប់វត្ថុជាទិន្នន័យ។ ឱកាសដំបូង ផ្តល់សម្រាប់ការប្រើប្រាស់ កម្មវិធីធម្មតា។ដើម្បីបង្កើតឯកសារដែល Access គាំទ្រ ជម្រើសទីពីរគឺបញ្ចូលវត្ថុមួយ។ ដែលអនុញ្ញាតឱ្យអ្នកប្រើឯកសារណាមួយជាប្រភពទិន្នន័យ (រូបភាព 3.40)។

អង្ករ។ 3.40 ការបន្ថែមវត្ថុថ្មីទៅក្នុងតារាង Access ពីឯកសារមួយ។

1. ការបង្កើតវត្ថុពីឯកសារមួយ។

នៅពេលដែលវាមកដល់ទិន្នន័យ ដែលជាវត្ថុសម្រាប់មូលដ្ឋានទិន្នន័យ និងជា ឯកសារខាងក្រៅបន្ទាប់មកអ្នកត្រូវមានឯកសារទាំងនេះ។ ដូច្នេះ អ្នកនឹងត្រូវបង្កើតឯកសារជាច្រើន ដើម្បីមើលពីរបៀបដែលពួកវាត្រូវបានបង្ហាញនៅក្នុងមូលដ្ឋានទិន្នន័យនាពេលអនាគត ហើយព្យាយាមផ្លាស់ប្តូរឯកសារទាំងនេះផងដែរ។ ឧទាហរណ៍ ប្រសិនបើអ្នកមានរូបថតវត្ថុមួយនៅក្នុងឯកសារ Monitor.jpg(jpg- រូបថតសកលទម្រង់) ។ ដើម្បីឱ្យឯកសារនេះត្រូវបានរក្សាទុកក្នុងមូលដ្ឋានទិន្នន័យ អ្នកគួរតែធីកប្រអប់ (រូបភាព 3.40) "បង្កើតពីឯកសារ" បន្ទាប់ពីនោះបង្អួចដែលបង្ហាញក្នុងរូបភាព 3.41 នឹងលេចឡើង។ ដោយប្រើប៊ូតុង "ពិនិត្យ"អ្នកគួរតែជ្រើសរើសឯកសារដែលត្រូវការ។

អង្ករ។ 3.41 ការស្វែងរកឯកសារនៅពេលបង្កើតវត្ថុក្នុងមូលដ្ឋានទិន្នន័យ

ឧទាហរណ៍នៅក្នុងបន្ទាត់ដែលត្រូវគ្នាសម្រាប់វាល។ "រូបថតផលិតផល"ពាក្យនឹងលេចឡើង "កញ្ចប់"នេះមានន័យថាឯកសារត្រូវបានភ្ជាប់ទៅកម្មវិធីដែលបានបង្កើតវា។ ដូច្នេះនៅពេលមើលមូលដ្ឋានទិន្នន័យ ថាតើវាជាសំណួរ ទម្រង់ ឬរបាយការណ៍ អ្នកប្រើប្រាស់នឹងឃើញរូបភាពនៃឯកសារក្នុងទម្រង់ជារូបតំណាង ហើយនៅពេលចុចពីរដងលើរូបភាពនេះ ប្រព័ន្ធនឹងរកឃើញកម្មវិធីដំបូង។ ហើយបន្ទាប់មកបង្ហាញមាតិកានៃឯកសារនៅក្នុងវា (in ក្នុងឧទាហរណ៍នេះ។នេះជារូបថត) ។ ករណីលើកលែងគឺឯកសាររូបភាពដែលបានរក្សាទុកជាមួយផ្នែកបន្ថែម .bmp(ទ្រង់ទ្រាយផែនទីប៊ីត) ។ ទោះយ៉ាងណាក៏ដោយវាគួរតែត្រូវបានចងចាំឡើងវិញថាឯកសារដែលបានបង្កើតនៅក្នុង កម្មវិធី Microsoftនឹងត្រូវបានបង្ហាញភ្លាមៗក្នុងទម្រង់ និងរបាយការណ៍។ ការសន្និដ្ឋានគឺសាមញ្ញ រូបថតអាចត្រូវបានបញ្ចូលទៅក្នុងកម្មវិធីដូចជា Paint, Word, Power Point និងរក្សាទុកជា ឯកសារដាច់ដោយឡែកហើយបន្ទាប់មកភ្ជាប់ជាវត្ថុទៅមូលដ្ឋានទិន្នន័យ។ សាកល្បងបង្កើតឯកសារច្រើនជាមួយរូបថត និងអត្ថបទដោយប្រើ អ្នកកែសម្រួលផ្សេងៗវីនដូ។ ឧទាហរណ៍ អ្នកអាចបើកឯកសារ Word បញ្ចូលរូបថតពីឯកសារ បន្ថែមអត្ថបទ ហើយបន្ទាប់មករក្សាទុកជា៖ Monitor.docx(រូបភាព 3.42) ។

អង្ករ។ 3.42 ឯកសាររូបថតដែលបានបង្កើតនៅក្នុង Word

2. ការបង្កើតវត្ថុថ្មី។

តាមរយៈការបង្កើតវត្ថុថ្មីនៅក្នុងមូលដ្ឋានទិន្នន័យ អ្នកគួរតែមានន័យថាប្រើប្រាស់កម្មវិធីដែលឯកសារត្រូវបានបង្កើត ហើយបន្ទាប់មកបញ្ចូលទៅក្នុងវាលដែលពិពណ៌នាអំពីប្រភេទនៃ OLE នេះ។ ដើម្បីចាប់ផ្តើមរបៀបបង្កើតវត្ថុថ្មី អ្នកត្រូវបើកតារាងក្នុង របៀប "តារាង", ជ្រើសរើសជម្រើស "បង្កើតថ្មី" នៅក្នុងប្រអប់ (រូបភាព 3.39) ហើយបន្ទាប់មកជ្រើសរើសក្នុងបញ្ជី "ប្រភេទវត្ថុ" (កម្មវិធីដែលត្រូវការ) បញ្ជីកម្មវិធីដែល Access គាំទ្រសម្រាប់ការបង្កើតវត្ថុគឺនៅក្នុងបញ្ជី (រូបភាព 3.43) ដែលនឹងបើកបន្ទាប់ពីដំណើរការពាក្យបញ្ជា "បញ្ចូលវត្ថុ" .

អង្ករ។ 3.43 បញ្ជីនៃប្រភេទវត្ថុ Access ដែលអាចត្រូវបានប្រើដើម្បីបង្កើតឯកសារ

ភាពងាយស្រួលនៃការប្រើប្រាស់កម្មវិធីដើម្បីបង្កើតវត្ថុក្នុងទម្រង់ជាឯកសារគឺថានៅពេលអនាគតឯកសារទាំងនេះអាចត្រូវបានប្រើដោយស្វ័យភាព ឬកែតម្រូវនៅក្នុងមូលដ្ឋានទិន្នន័យ។

ចូរយើងពិចារណា ជម្រើសបង្កើតវត្ថុសម្រាប់មូលដ្ឋានទិន្នន័យដោយប្រើ កម្មវិធីថ្នាំលាប

ឧទាហរណ៍ វាចាំបាច់ក្នុងការបង្កើតវត្ថុមួយដែលមានរូបភាពរបស់ក្រុមហ៊ុន និងអត្ថបទ ដែលអ្នកប្រើប្រាស់មូលដ្ឋានទិន្នន័យអាចជំនួស ឬកែតម្រូវនៅពេលក្រោយ។ ដើម្បីធ្វើដូច្នេះអ្នកត្រូវជ្រើសរើសពីបញ្ជី Bitmap វត្ថុរូបភាពបច្ចេកវិជ្ជាបន្ថែមសម្រាប់បង្កើតវត្ថុមួយត្រូវបានបង្ហាញក្នុងរូបភាព 3.44 ។

1. បើក កម្មវិធីលាបពណ៌

2. បញ្ចូលរូបថតពីឯកសារមួយ។

3. បន្ថែមអត្ថបទ (បើចាំបាច់) ។

4. រក្សាទុកជាឯកសារ។

5. បិទកម្មវិធី។

អង្ករ។ 3.44 បច្ចេកវិទ្យាសម្រាប់បង្កើតវត្ថុក្នុងកម្មវិធី Paint

លំហាត់ប្រាណ 3.11

1. នៅក្នុងតារាង " ទំនិញ» នៅក្នុងរបៀប "អ្នកសាងសង់"បន្ថែម ជួរឈរថ្មី។ជាមួយឈ្មោះ "រូបថតផលិតផល", ប្រភេទទិន្នន័យ " វាលវត្ថុ OLE"រក្សាទុកការផ្លាស់ប្តូរ។

2. នៅក្នុងរបៀប "តារាង"នៅក្នុងវាល "រូបថតផលិតផល"ជ្រើសរើសបន្ទាត់មួយ។ "បញ្ចូលវត្ថុពីឯកសារ"ជ្រើសរើស (ដាក់ចំនុច) "បង្កើតថ្មី"ហើយពីបញ្ជីទម្លាក់ចុះបញ្ជាក់ ឯកសារ Microsoft Word . នេះនឹងបើក កម្មវិធីនិពន្ធអត្ថបទ MS Wordនៅទីនេះអ្នកត្រូវបញ្ចូលរូបភាពដែលត្រូវនឹងផលិតផលនៅក្នុងបន្ទាត់នេះ។ ជ្រើសរើសរូបភាពពីបញ្ជីដែលត្រូវបានរក្សាទុកដោយផ្ទាល់នៅក្នុងកម្មវិធីនិពន្ធ (ផ្ទាំង "បញ្ចូល" រូបតំណាង "រូបភាព" ប៊ូតុង "ចាប់ផ្តើម" នៅក្នុងប្រអប់នៅខាងស្តាំ) ឬបញ្ចូលរូបភាពពីកម្មវិធីផ្សេងទៀត។ អ្នកអាចប្រើកម្មវិធី Paint (Bitmap Image object) ដែលអ្នកអាចគូរផលិតផលដោយខ្លួនឯងបាន។ បិទឯកសារដែលបានបង្កើត វានឹងភ្ជាប់ដោយស្វ័យប្រវត្តិទៅមូលដ្ឋានទិន្នន័យរបស់អ្នក ទៅកាន់បន្ទាត់ដែលវាត្រូវបានបញ្ចូល។

3. ធ្វើ នីតិវិធីនេះ។សម្រាប់ បន្ទាត់ទាំងអស់។របស់អ្នក។ តារាង "ផលិតផល".

4. រក្សាទុកការផ្លាស់ប្តូររបស់អ្នក។

សំណួរសុវត្ថិភាព

1. តើវត្ថុអ្វីខ្លះដែលអាចបញ្ចូលទៅក្នុងមូលដ្ឋានទិន្នន័យដែលមានប្រភេទទិន្នន័យ OLE?

2. តើខ្ញុំអាចបញ្ចូលរូបថតទៅក្នុងតារាងដោយរបៀបណា?

3. តើ​រូបថត​នឹង​បង្ហាញ​នៅ​កន្លែង​ណា​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ?

4. តើវិធីសាស្រ្ត "បង្កើត" ខុសគ្នាដូចម្តេច? វត្ថុថ្មី។» ពីវិធី "បង្កើតពីឯកសារ"?

5. របៀបដាក់ឯកសាររូបថតផលិតផលនៅក្នុងមូលដ្ឋានទិន្នន័យប្រសិនបើវាមានផ្នែកបន្ថែម .png?

6. តើវាអាចធ្វើទៅបានដើម្បីកែសម្រួលឯកសារដែលត្រូវបានបញ្ចូលជាវត្ថុទៅក្នុងមូលដ្ឋានទិន្នន័យដោយផ្ទាល់នៅក្នុង ប្រព័ន្ធឯកសារកុំព្យូទ័រ?

7. របៀបបញ្ចូលបទបង្ហាញទៅក្នុងមូលដ្ឋានទិន្នន័យ?

8. តើវត្ថុកម្មវិធីណាមួយអាចត្រូវបានបញ្ចូលទៅក្នុងមូលដ្ឋានទិន្នន័យ?

ពិនិត្យ

មូលដ្ឋាន OLE

វត្ថុ TOLEContainer

ឧទាហរណ៍កម្មវិធី OLE

ការរក្សាទុកវត្ថុ OLE នៅក្នុងមូលដ្ឋានទិន្នន័យ

  1. ពិនិត្យ
  2. ពីអត្ថបទអ្នកនឹងរៀនព័ត៌មានជាមូលដ្ឋានអំពី OLE រឿងមួយចំនួនទាក់ទងនឹង OLE 2 និង OLE Automation ។ អត្ថបទនេះនិយាយអំពីការប្រើប្រាស់វត្ថុ TOLEContainer ដើម្បីបង្កើតកម្មវិធី OLE នៅក្នុង Delphi ។
  3. មូលដ្ឋាន OLE
  4. មុនពេលយើងចូលទៅក្នុងមូលដ្ឋាននៃ OLE យើងនឹងត្រូវពិនិត្យមើលវាក្យស័ព្ទមួយចំនួន។

    អក្សរកាត់ OLE តំណាងឱ្យ Objects Linked and Embeddedជ ) ទិន្នន័យដែលបានចែករំលែករវាងកម្មវិធីត្រូវបានគេហៅថា វត្ថុ OLE ។កម្មវិធីដែលអាចផ្ទុកវត្ថុ OLE ត្រូវបានហៅ ធុង OLE (ធុង OLE) ។កម្មវិធីដែលទិន្នន័យអាចត្រូវបានបញ្ចូលក្នុងធុង OLE ជាវត្ថុ OLE ត្រូវបានហៅម៉ាស៊ីនមេ OLE ។

    ឧទាហរណ៍ MicroSoft Word អាចរួមបញ្ចូលក្រាហ្វិក អូឌីយ៉ូ និងវីដេអូឃ្លីប និងវត្ថុជាច្រើនទៀតនៅក្នុងឯកសារ (ឯកសារនេះជួនកាលត្រូវបានគេហៅថា ឯកសាររួម ).

    ដូចដែលឈ្មោះបានបង្ហាញ វត្ថុ OLE អាចត្រូវបានភ្ជាប់ជាមួយ ឬរួមបញ្ចូលនៅក្នុងធុង OLE ។ ក្នុងករណីដំបូង ទិន្នន័យនឹងត្រូវបានរក្សាទុកក្នុងឯកសារនៅលើថាស កម្មវិធីណាមួយនឹងមានសិទ្ធិចូលប្រើទិន្នន័យនេះហើយនឹងអាចធ្វើការផ្លាស់ប្តូរបាន។

    ក្នុងករណីទីពីរ ទិន្នន័យត្រូវបានបញ្ចូលក្នុងធុង OLE ហើយមានតែវាទេដែលអាចមើល និងកែប្រែទិន្នន័យនេះបាន។ OLE គឺជាការអភិវឌ្ឍន៍បន្ថែមទៀតនៃគំនិតនៃទិន្នន័យដែលបានចែករំលែករវាងកម្មវិធី។ ប្រសិនបើប្រើ DDE វាអាចធ្វើការជាមួយអត្ថបទ នោះ OLE ធ្វើឱ្យមានភាពងាយស្រួលក្នុងការរួមបញ្ចូលដំណើរការនៃប្រភេទទិន្នន័យណាមួយទៅក្នុងកម្មវិធីមួយ។ ដូចនឹង DDE ដែរ កម្មវិធីអតិថិជន (ធុង OLE) ទាមទារវត្តមានកម្មវិធី OLE

    ម៉ាស៊ីនមេ។ រាល់ពេលដែលអ្នកប្រើប្រាស់ចូលប្រើវត្ថុ OLE ក្នុងកម្មវិធីអតិថិជនដើម្បីមើល ឬកែសម្រួលទិន្នន័យ (ជាធម្មតាចុចពីរដងលើវត្ថុ) កម្មវិធីម៉ាស៊ីនមេត្រូវបានបើកដំណើរការ ដែលទិន្នន័យត្រូវបានដំណើរការ។នៅក្នុងធម្មជាតិ មានប្រភេទ OLE ជាច្រើន ដែលខុសគ្នាតាមរបៀបដែលម៉ាស៊ីនមេ OLE ត្រូវបានធ្វើឱ្យសកម្ម។ OLE កំណែ 1 ដំណើរការម៉ាស៊ីនមេនៅក្នុងបង្អួចដាច់ដោយឡែកមួយ។ OLE 2 អនុវត្តអ្វីដែលគេហៅថា ការធ្វើឱ្យសកម្ម និងការកែសម្រួលនៅនឹងកន្លែង។ ក្នុងករណីនេះម៉ាស៊ីនមេដំណើរការ "ខាងក្នុង" កម្មវិធីអតិថិជន កែប្រែទិដ្ឋភាពម៉ឺនុយប្រព័ន្ធបន្ទាត់ឧបករណ៍។ល។ ការអភិវឌ្ឍន៍នៃគំនិត OLE បាននាំទៅដល់ការលេចឡើង ស្វ័យប្រវត្តិកម្ម OLE

  5. - កម្មវិធីអតិថិជនអាចប្រតិបត្តិផ្នែកនៃកូដម៉ាស៊ីនមេ។ ប្រភេទនៃវត្ថុ OLE ដែលដាក់ក្នុងកម្មវិធីអតិថិជនត្រូវបានកំណត់ដោយកំណែ OLE ដែលម៉ាស៊ីនមេគាំទ្រ។
  6. វត្ថុ TOLEContainer វត្ថុ TOLEContainer មានទីតាំងនៅ page System Palette Component ហើយត្រូវការជាចាំបាច់ដើម្បីបង្កើតកម្មវិធី OLE container។ TOLEContainer លាក់ភាពស្មុគស្មាញទាំងអស់ដែលទាក់ទងនឹងការរៀបចំផ្ទៃក្នុងរបស់ OLE ហើយផ្តល់ឱ្យអ្នកសរសេរកម្មវិធីនូវចំណុចប្រទាក់សាមញ្ញសមរម្យ។តោះបង្កើតកម្មវិធីសាមញ្ញដោយប្រើវត្ថុ OLE ។

    ប្រអប់នេះមានបញ្ជីម៉ាស៊ីនមេ OLE ទាំងអស់ដែលបានចុះឈ្មោះក្នុងប្រព័ន្ធ (ការចុះឈ្មោះកើតឡើងកំឡុងពេលដំឡើងកម្មវិធី)។ ប្រភេទនៃវត្ថុ OLE ត្រូវបានកំណត់ដោយម៉ាស៊ីនមេដែលអ្នកបញ្ជាក់។ ប្រសិនបើអ្នកបង្កើតវត្ថុថ្មី (Create New) បន្ទាប់មកនៅពេលអ្នកចុច OK កម្មវិធី OLE server នឹងចាប់ផ្តើម ដែលវត្ថុថ្មីត្រូវបានបង្កើត។ បន្ទាប់ពីចេញពីកម្មវិធីម៉ាស៊ីនមេ វត្ថុ OLE ថ្មី។បើក


    (វត្ថុដែលបានបង្កប់) ទៅក្នុងកម្មវិធី។ វត្ថុ OLE អាច​ត្រូវ​បាន​បង្កើត​ដោយ​ប្រើ​ឯកសារ​ដែល​មាន​ស្រាប់​ក្នុង​ទម្រង់​នៃ​ម៉ាស៊ីន​មេ OLE មួយ។ ដើម្បីធ្វើដូចនេះជ្រើសបង្កើតពីឯកសារ (សូមមើលរូបទី 2)

    វត្ថុដែលបានជ្រើសរើសអាចត្រូវបានរួមបញ្ចូលនៅក្នុងកម្មវិធី ឬភ្ជាប់ដោយពិនិត្យមើលធាតុតំណ។ ដូច្នេះ ចូរយើងបង្កើតវត្ថុថ្មីមួយនៅពេលបង្កើតគម្រោងរបស់យើង ដោយជ្រើសរើសសម្រាប់រឿងនេះ ឧទាហរណ៍ Microsoft Word Document (រូបភាពទី 1) ។ ចុចយល់ព្រម ហើយបន្ទាប់ពី MS Word ចាប់ផ្តើម សូមវាយអត្ថបទណាមួយនៅទីនោះ (" នេះគឺជាវត្ថុ OLE ឯកសារ Microsoft Word

    ") ដើម្បីបញ្ចប់ការងារ ម៉ឺនុយមានធាតុពិសេស “ឯកសារ|បិទ និងត្រឡប់ទៅទម្រង់១” (Win'95+MS Word 7.0)។ ដំណើរការគម្រោង វានឹងមើលទៅដូចនេះ៖

    ចុចពីរដងលើធុង OLE - MS Word នឹងចាប់ផ្តើមជាមួយឯកសារពីវត្ថុ OLE ដែលអាចកែសម្រួលបាន ហើយការផ្លាស់ប្តូរទាំងអស់ត្រូវបានរក្សាទុកក្នុងវត្ថុ OLE ។

  7. ប្រសិនបើក្នុងអំឡុងពេលរចនា អ្នកជ្រើសរើសវត្ថុមួយដើម្បីបញ្ចូលក្នុងធុង OLE បន្ទាប់មកវាត្រូវបានសរសេរទាំងស្រុងទៅក្នុងឯកសារទម្រង់ (FORM1.DFM) ហើយត្រូវបានចងក្រងជាបន្តបន្ទាប់ទៅក្នុងឯកសារ EXE ។ ក្នុង​ករណី​វត្ថុ​ធំ​ខ្លាំង នេះអាច​នាំ​ឱ្យ​មាន​ការ​ផ្អាក​ជា​យូរ​ក្នុង​កំឡុង​ពេល​រចនា និង​សូម្បី​តែ​មាន​កំហុស "អស់​ធនធាន"។ ដូច្នេះវាត្រូវបានណែនាំឱ្យធ្វើវត្ថុធំ ៗ ភ្ជាប់គ្នា។

ការរក្សាទុកវត្ថុ OLE នៅក្នុងមូលដ្ឋានទិន្នន័យ ពេលខ្លះវាចាំបាច់ដើម្បីរក្សាទុកវត្ថុ OLE មិននៅក្នុងឯកសារទេប៉ុន្តែនៅក្នុងមូលដ្ឋានទិន្នន័យ (វាល BLOB នៅក្នុងតារាង) ។ ជាការពិតណាស់នៅក្នុងក្នុងករណីនេះ

វត្ថុ OLE ត្រូវតែត្រូវបានបង្កប់សម្រាប់គោលបំណងចល័ត។ ជាអកុសល នៅក្នុងការចែកចាយ Delphi ស្តង់ដារមិនមានវត្ថុពិសេសនៃប្រភេទ TDBOLEContainer សម្រាប់គោលបំណងទាំងនេះទេ ប៉ុន្តែវត្ថុ OLE អាចត្រូវបានរក្សាទុក និងស្ដារឡើងវិញដោយប្រើវិធីសាស្ត្រ SaveToStream និង LoadFromStream ។ ឧទាហរណ៍៖

នីតិវិធី TOLEForm.SaveOLE(អ្នកផ្ញើ៖ វត្ថុ);

BlSt: TBlobStream;

ចាប់ផ្តើម

ជាមួយនឹងតារាងទី 1 ធ្វើ

BlSt:=TBlobStream.Create(BlobField(FieldByName("OLE")),

bmReadWrite);

OLEContainer.SaveToStream(BlSt as TStream);

BlSt.Free;

បច្ចេកវិទ្យា OLE OLE - បច្ចេកវិទ្យា- ការភ្ជាប់វត្ថុ និងការបង្កប់) អនុញ្ញាតឱ្យអ្នកបង្កើតឯកសារស្មុគស្មាញដែលមានប្រភេទផ្សេងគ្នានៃវត្ថុដែលបង្កើតឡើងដោយកម្មវិធីផ្សេងៗគ្នា។ ដូច្នេះនៅក្នុង ឯកសារអត្ថបទដោយប្រើកម្មវិធីនិពន្ធ Word អ្នកអាចបញ្ចូលតារាង Excel ដ្យាក្រាមដែលពន្យល់ពីអត្ថបទ ឬរូបមន្តគណិតវិទ្យាសម្រាប់អ្នកប្រើប្រាស់ វានឹងនៅតែជាឯកសារតែមួយ។ កម្មវិធីដែលទទួលខុសត្រូវចំពោះឯកសារផ្សំជាធម្មតាត្រូវបានគេហៅថាកុងតឺន័រ។ វាមានរចនាសម្ព័ន្ធស្មុគ្រស្មាញព្រោះវាអាចធ្វើការជាមួយវត្ថុ "ជនបរទេស" ។ កម្មវិធីដែលបង្កើតវត្ថុត្រូវបានគេហៅថាម៉ាស៊ីនមេ។

កុងតឺន័រ និងម៉ាស៊ីនមេអាចគាំទ្ររបៀបអន្តរកម្មពីរ៖

    ការបង្កប់ (ការអនុវត្ត) នៃវត្ថុ។ នេះ។ របៀបមានន័យថាដែលទិន្នន័យវត្ថុនឹងត្រូវបានរក្សាទុករួមគ្នាជាមួយឯកសារចម្បង (ឧទាហរណ៍ បង្កប់ សៀវភៅបញ្ជី Excelនឹងត្រូវបានរក្សាទុកក្នុង .doc - ឯកសារកម្មវិធីនិពន្ធ Word) ។

    ការភ្ជាប់វត្ថុ។ ឯកសារមេរក្សាទុកតែឯកសារយោងទៅវត្ថុដែលទិន្នន័យស្ថិតនៅក្នុងឯកសារមួយផ្សេងទៀត។

នៅពេលបង្កប់ បរិមាណឯកសារដែលបានរក្សាទុកកើនឡើង ទោះជាយ៉ាងណាក៏ដោយ ពួកវាងាយស្រួលក្នុងការផ្លាស់ទី ខណៈពេលដែលនៅពេលភ្ជាប់ អ្នកត្រូវតែចងចាំថាការផ្លាស់ប្តូរទីតាំងនៃឯកសារអាចនាំទៅរកការភ្ជាប់ខុស។

ដើម្បីកែសម្រួលទិន្នន័យដែលពាក់ព័ន្ធ បង្អួចដាច់ដោយឡែកមួយនឹងបើកនៅក្នុងកម្មវិធីដែលទិន្នន័យនេះត្រូវបានបង្កើត ពោលគឺឧ។ ម៉ាស៊ីនមេ។ នៅពេលអនុវត្តវត្ថុ អ្នកក៏អាចដំណើរការម៉ាស៊ីនមេនៅក្នុងបង្អួចដាច់ដោយឡែកមួយ ប៉ុន្តែអ្នកក៏អាចកែសម្រួលទិន្នន័យ "នៅក្នុងទីកន្លែង" ពោលគឺឧ។ នៅក្នុងបង្អួចកុងតឺន័រប្រសិនបើវាអនុញ្ញាត។ ក្នុងករណីនេះ កុងតឺន័រត្រូវតែមានម៉ឺនុយ ហើយម៉ាស៊ីនមេ "នៅក្នុងទីកន្លែង" ដែលបានចាប់ផ្ដើមនឹងបំពេញបន្ថែមវាជាមួយនឹងពាក្យបញ្ជាផ្ទាល់របស់វា។

សមាសធាតុ OLEContainer

នៅលើទំព័រប្រព័ន្ធនៃក្ដារលាយសមាសធាតុនៅក្នុង Borland Builder C ++ មានសមាសភាគពិសេសដែលត្រូវបានរចនាឡើងសម្រាប់បង្កប់ និងភ្ជាប់វត្ថុពីកម្មវិធីផ្សេងទៀត - OLEContainer.

លក្ខណៈសម្បត្តិមូលដ្ឋាន

ទ្រព្យសម្បត្តិ រដ្ឋអនុញ្ញាតឱ្យអ្នកកំណត់ស្ថានភាពនៃវត្ថុមួយ និងម៉ាស៊ីនមេរបស់វា។ អត្ថន័យរបស់វា៖

    osEmpty—ធុងមិនមានវត្ថុមួយ;

    osLoaded - វត្ថុនៅក្នុងកុងតឺន័រ ម៉ាស៊ីនមេមិនដំណើរការទេ។

    osRunning - ម៉ាស៊ីនមេកំពុងដំណើរការ;

    osOpen - OLE - វត្ថុត្រូវបានបើកនៅក្នុងបង្អួចម៉ាស៊ីនមេដាច់ដោយឡែក។

    osInPlaceActive - វត្ថុត្រូវបានធ្វើឱ្យសកម្ម "នៅនឹងកន្លែង" ប៉ុន្តែម៉ឺនុយមិនទាន់ត្រូវបានផ្លាស់ប្តូរទេ។ នេះគឺជាស្ថានភាពមធ្យមនៃវត្ថុពីមុន ផ្ទុកពេញម៉ាស៊ីនមេ។

    វត្ថុ osUIActive ត្រូវបានធ្វើឱ្យសកម្ម "នៅនឹងកន្លែង" ម៉ឺនុយត្រូវបានកែប្រែ។

កូដខាងក្រោមអនុញ្ញាតឱ្យអ្នកកំណត់ ឈ្មោះវត្ថុផ្ទុកទៅក្នុងកុងតឺន័រ (លក្ខណសម្បត្តិ AnsiString ឈ្មោះ OleClass) របៀបធ្វើការជាមួយវត្ថុ ( ភ្ជាប់= true – linking, បើមិនដូច្នេះទេ – embedding) ហើយក៏ទទួលបានឈ្មោះឯកសារដែលបានភ្ជាប់ផងដែរ៖

ប្រសិនបើ (OleContainer1 -> រដ្ឋ != osEmpty)

Label2 -> Caption = OleContainer1 -> OleClassName;

// ស្ថានភាពកុងតឺន័រ - ចំនួនគត់ចាប់ផ្តើមពី 0 (osEmpty)

Label6 -> Caption = OleContainer1 -> State;

ប្រសិនបើ (OleContainer1 -> ភ្ជាប់)

Label4 -> Caption = OleContainer1 -> SourceDoc;

ទ្រព្យសម្បត្តិប៊ូល។ អនុញ្ញាតក្នុងកន្លែងកំណត់សមត្ថភាពក្នុងការកែសម្រួលវត្ថុដែលបានបង្កប់ "នៅនឹងកន្លែង" ។ ប្រសិនបើ AllowInPlace = true និង Iconic = មិនពិត (លក្ខណសម្បត្តិរូបតំណាងកំណត់ថាតើវត្ថុគួរតែត្រូវបានតំណាងជារូបតំណាង) បន្ទាប់មក "InPlace" – ការកែសម្រួលត្រូវបានអនុញ្ញាត។ នៅពេល AllowInPlace = មិនពិត ម៉ាស៊ីនមេនឹងបើកនៅក្នុងបង្អួចដាច់ដោយឡែកមួយ។

ទ្រព្យសម្បត្តិ ធ្វើឱ្យសកម្មដោយស្វ័យប្រវត្តិមានតម្លៃបីយ៉ាង៖ aaManual, aaGetFocus, aaDoubleClick និងកំណត់ពីរបៀបធ្វើឱ្យវត្ថុដែលផ្ទុកទៅក្នុងកុងតឺន័រសកម្ម។

ការធ្វើឱ្យសកម្មដោយស្វ័យប្រវត្តិលំនាំដើម = aaDoubleClickនោះគឺវត្ថុក្លាយជាសកម្មនៅពេលចុចពីរដង។ អត្ថន័យ aaGetFocusកំណត់ការធ្វើឱ្យសកម្មនៅពេលទទួលបានការផ្តោតអារម្មណ៍បញ្ចូល។ នៅពេលដំណើរការដោយស្វ័យប្រវត្តិ = aaManualអ្នកសរសេរកម្មវិធីទទួលខុសត្រូវចំពោះការធ្វើឱ្យវត្ថុសកម្ម។ ក្នុងករណីនេះ អ្នកអាចប្រើវិធីសាស្ត្រ DoVerb របស់សមាសភាគកុងតឺន័រ ដែលទទួលខុសត្រូវក្នុងការបញ្ជូនពាក្យបញ្ជាពីកុងតឺន័រទៅម៉ាស៊ីនមេ។ ឧទាហរណ៍ អ្នកអាចប្រើប្រតិបត្តិករខាងក្រោម៖

OleContainer1->DoVerb(ovShow); // បង្ហាញវត្ថុ

បន្ថែមពីលើការផ្ញើពាក្យបញ្ជាទៅម៉ាស៊ីនមេ វិធីសាស្ត្រកុងតឺន័រផ្តល់សម្រាប់ការបង្កើត ការផ្ទុក និងការបំផ្លាញវត្ថុ។ ចូរយើងបន្តពិចារណាពួកគេ។

ការបង្កើត និងរក្សាទុកវត្ថុថ្មី (បង្កប់)

ការបង្កើតវត្ថុថ្មីអាចសម្រេចបានដោយប្រើប្រអប់ពិសេស បញ្ចូលវត្ថុ(ការបញ្ចូលវត្ថុ) ឬការហៅវិធីសាស្ត្រ បង្កើតវត្ថុ. ក្នុងករណីទីមួយ អ្នកប្រើប្រាស់ជ្រើសរើសថ្នាក់វត្ថុពីបញ្ជីប្រព័ន្ធនៃវត្ថុដែលអាចមាន ហើយនៅក្នុងទីពីរ វត្ថុជាក់លាក់មួយត្រូវបានបង្កើតតាមកម្មវិធី។

ដើម្បីប្រើប្រអប់ អ្នកអាចប្រើកូដខាងក្រោម ដែលមានទីតាំងនៅ ឧទាហរណ៍ ក្នុងពាក្យបញ្ជាម៉ឺនុយ "ថ្មី"៖

AnsiString File_Name; // អថេរបានប្រកាសជាសកល ឬក្នុងថ្នាក់ទម្រង់

ប្រសិនបើ (OleContainer1->InsertObjectDialog())

(ឈ្មោះឯកសារ = "";

OleContainer1->DoVerb(ovShow);

នៅក្នុងប្រអប់ដែលលេចឡើងអ្នកត្រូវកំណត់តម្លៃនៃប៊ូតុង RadioButton ទៅ "បង្កើតថ្មី" ជ្រើសរើសប្រភេទវត្ថុដែលត្រូវការពីបញ្ជីហើយចុច "យល់ព្រម" ។

វត្ថុអាចត្រូវបានបង្កើតតាមកម្មវិធីដូចនេះ (ឧទាហរណ៍ ប្រតិបត្តិករអាចត្រូវបានបញ្ចូលទៅក្នុងធាតុម៉ឺនុយដែលត្រូវគ្នា)៖

    សៀវភៅបញ្ជី Excel

OleContainer1->CreateObject("Excel.sheet", មិនពិត);

    ឯកសារពាក្យ

OleContainer1->CreateObject("Word.Document", មិនពិត);

ប្រសិន​បើ​អ្នក​ត្រូវ​ការ​បង្កើត​វត្ថុ​ដែល​ឈ្មោះ​ប្រភេទ​មិន​ស្គាល់ នោះ​អ្នក​ត្រូវ​យោង​ទៅ​លើ​ឯកសារ​ដែល​ត្រូវ​គ្នា​សម្រាប់​ម៉ាស៊ីន​មេ ឬ​សរសេរ​កម្មវិធី​សាកល្បង​ដែល​ផ្ទុក​វត្ថុ​ដោយ​ប្រើ​វិធីសាស្ត្រ OleContainer->InsertObjectDialog()ហើយប្រើលក្ខណសម្បត្តិ OleContainer -> OleClassName ដើម្បីកំណត់ឈ្មោះរបស់វា។

នៅពេលបង្កើតវត្ថុថ្មី ការចាក់ត្រូវបានប្រើប្រាស់ (ព្រោះថាឯកសារត្រូវការសម្រាប់ភ្ជាប់)។ ក្នុងករណីនេះ កម្មវិធីកុងតឺន័រទទួលខុសត្រូវក្នុងការរក្សាទុកទិន្នន័យវត្ថុ។ អ្នកអាចរក្សាទុកទិន្នន័យទៅក្នុងឯកសារដោយប្រើវិធីសាស្ត្រ SaveToFile (<имя файла>) ជាឧទាហរណ៍ ក្នុងធាតុម៉ឺនុយ "ឯកសារ - រក្សាទុក..." អ្នកអាចប្រើកូដខាងក្រោម៖

void __fastcall TForm1::FSaveClick(TObject *Sender)

(ប្រសិនបើ (File_Name=="")

ប្រសិនបើ (SaveDialog1->Execute())

File_Name = SaveDialog1->FileName;

OleContainer1->SaveToFile(ChangeFileExt(File_Name,"".ole"));

ក្នុងឧទាហរណ៍នេះ ផ្នែកបន្ថែមឯកសារ .ole បង្ហាញថាវត្ថុនឹងត្រូវបានរក្សាទុកក្នុងទម្រង់ពិសេសខុសពីទម្រង់ម៉ាស៊ីនមេ។ កម្មវិធីម៉ាស៊ីនមេដាច់ដោយឡែកពីកុងតឺន័រនឹងមិនអាចអានទិន្នន័យនេះបានទេ។

មុខងារ ផ្លាស់ប្តូរឯកសារត្រូវបានប្រើក្នុងឧទាហរណ៍ដើម្បីជំនួសផ្នែកបន្ថែមឯកសារ។ នៅពេលប្រតិបត្តិពាក្យបញ្ជាដើម្បីរក្សាទុក និងទាញយកទិន្នន័យពីឯកសារ អ្នកអាចត្រូវការមុខងារផ្សេងទៀតសម្រាប់ដំណើរការឈ្មោះឯកសារ៖

    ផ្លាស់ប្តូរឯកសារ(const AnsiString FileName, const AnsiString Extension) – បង្ខំឱ្យផ្លាស់ប្តូរឈ្មោះឯកសារ FileName ដោយជំនួសផ្នែកបន្ថែមដោយផ្នែកបន្ថែម។

    មុខងារ AnsiString ExtractFileExt(AnsiString FileName) ត្រឡប់ផ្នែកបន្ថែមឯកសារ ហើយដូច្នេះអនុញ្ញាតឱ្យអ្នកពិនិត្យមើលប្រភេទរបស់វា។

    AnsiString ExtractFileName(AnsiString FileName) ត្រឡប់ឈ្មោះឯកសារដែលបានស្រង់ចេញពីខ្សែអក្សរ FileName ពោលគឺឧ។ បន្ទាប់ពី backslash ឬពោះវៀនធំចុងក្រោយ;

    AnsiString ដកស្រង់ឯកសារផ្លូវ(AnsiString FileName)ទាញយកផ្លូវឯកសារ រួមទាំងសញ្ញា ឬសញ្ញាចុងក្រោយ។

    AnsiString ស្រង់ឯកសារ(AnsiString FileName) ស្រង់ឯកសារឌីសដោយប្រើសញ្ញាសម្គាល់ (ឧទាហរណ៍ "D :") ។

វិធីសាស្រ្តកុងតឺន័រ LoadFromFile(<имя файла>) អនុញ្ញាតឱ្យអ្នកផ្ទុកវត្ថុដែលបានចងចាំទៅក្នុងធុងមួយ៖

void __fastcall TForm1::FOpenClick(TObject *Sender)

ប្រសិនបើ (OpenDialog1->Execute())

ប្រសិនបើ (ExtractFileExt(OpenDialog1->FileName)!= ".ole")

File_Name = OpenDialog1->FileName;

OleContainer1->LoadFromFile(File_Name);

OleContainer1->DoVerb(ovShow);

ការបង្កើតវត្ថុពីឯកសារ (បង្កប់)

ដើម្បីបង្កើតវត្ថុពីឯកសារដែលមានស្រាប់ អ្នកអាចប្រើបង្អួចតែមួយ បញ្ចូលវត្ថុដូចជានៅក្នុងករណីនៃការបង្កើតវត្ថុថ្មីមួយ។ នៅក្នុងករណីនៃការបង្កប់ អ្នកប្រើប្រាស់កំណត់តម្លៃនៃប៊ូតុង RadioButton ទៅជា "Create from file" ហើយដើម្បីស្វែងរកឯកសារចុចលើប៊ូតុង "Browse..."។

វិធី​បង្កើត​វត្ថុ​មួយ​ពី​ឯកសារ​ត្រូវ​បាន​ផ្តល់​ឱ្យ​ដោយ​វិធីសាស្ត្រ៖ OleContainer->CreateObjectFromFile(AnsiString<имя файла>, boolIconic) ។

ប៉ារ៉ាម៉ែត្រវិធីសាស្រ្តកំណត់ឈ្មោះ ឯកសារប្រភពនិងរបៀបបង្ហាញវត្ថុ (រូបតំណាង=ពិត – វត្ថុក្នុងទម្រង់រូបតំណាង)។ លេខកូដនេះអាចត្រូវបានបញ្ចូលទៅក្នុងធាតុម៉ឺនុយដែលត្រូវគ្នា៖

void __fastcall TForm1::FFileClick(TObject *Sender)

ប្រសិនបើ (OpenDialog1->Execute())

OleContainer1->CreateObjectFromFile(OpenDialog1->FileName, មិនពិត);

OleContainer1->Repaint();

វិធីសាស្រ្ត OleContainer->Repaint()បណ្តាលឱ្យបង្អួចកុងតឺន័រត្រូវគូរឡើងវិញ ហើយជាលទ្ធផល ទិន្នន័យវត្ថុបង្ហាញនៅលើអេក្រង់។

ការបង្កើតវត្ថុភ្ជាប់

ដូចគ្នានឹងការបង្កប់ដែរ ទាំងអ្នកប្រើប្រាស់ ឬអ្នកសរសេរកម្មវិធីអាចបង្កើតវត្ថុដែលពាក់ព័ន្ធ។

ទៅកាន់អ្នកប្រើប្រាស់នៅក្នុងបង្អួច បញ្ចូលវត្ថុអ្នកគួរតែធ្វើតាមជំហានជ្រើសរើសឯកសារដែលបានរាយខាងលើ ហើយជ្រើសរើសប្រអប់ធីក "ទំនាក់ទំនង" បន្ថែម។

អ្នកសរសេរកម្មវិធីត្រូវប្រើវិធីសាស្ត្រ៖ OleContainer->CreateLinkToFile(AnsiString<имя файла>, bool Iconic) ។

ដោយសារនៅពេលភ្ជាប់វត្ថុអាចត្រូវបានកែសម្រួលតែនៅក្នុងបង្អួចដាច់ដោយឡែក អ្នកប្រើប្រាស់អាចចូលទៅកាន់ម៉ឺនុយម៉ាស៊ីនមេ ដើម្បីរក្សាទុកវត្ថុ។

ធ្វើការជាមួយម៉ាស៊ីនមេ

ដោយសារមានតែកម្មវិធីដែលបង្កើតវត្ថុ (ម៉ាស៊ីនមេ) អាចដំណើរការជាមួយទិន្នន័យវត្ថុ កុងតឺន័រអាចត្រូវការចំណេះដឹងអំពីសកម្មភាពដែលអាចកើតមានលើវត្ថុ។ វិធីសាស្រ្ត DoVerb(int Verb) តម្រូវ​ឱ្យ​មាន​ការ​ប្រតិបត្តិ​នៃ​ពាក្យ​បញ្ជា​មួយ​ ហើយ​បញ្ជី​សកម្មភាព​ដែល​អាច​ធ្វើ​ទៅ​បាន​មាន​ផ្ទុក​នូវ​ Property កិរិយាសព្ទវត្ថុសមាសធាតុធុង។ អ្នកអាចទទួលបានបញ្ជីនេះបានលុះត្រាតែផ្ទុកវត្ថុទៅក្នុងកុងតឺន័រ ហើយតាមធម្មជាតិ ម៉ាស៊ីនមេនីមួយៗ (ហើយជាលទ្ធផល វត្ថុ) មានបញ្ជីពាក្យបញ្ជាផ្ទាល់ខ្លួនរបស់វា។

ovShow ថេរគឺជាឧទាហរណ៍នៃពាក្យបញ្ជា OLE ដែលបានបម្រុងទុក។ ការប្រើវិធីសាស្រ្ត DoVerb ជាមួយប៉ារ៉ាម៉ែត្រ movShow ដែលត្រូវបានពិភាក្សារួចហើយនៅក្នុងផ្នែកមួយមុនៗ នាំទៅដល់ការបើកម៉ាស៊ីនមេភ្លាមៗ។

កូដខាងក្រោមបង្ហាញបញ្ជីពាក្យបញ្ជាដែលអាចធ្វើបានសម្រាប់វត្ថុមួយនៅក្នុងសមាសភាពប្រអប់បញ្ជី (ពាក្យបញ្ជាត្រូវបានដាក់លេខពីសូន្យ) ហើយស្នើឱ្យប្រតិបត្តិពាក្យបញ្ជាទីពីរក្នុងបញ្ជី៖

ListBox1->Items = OleContainer1->ObjectVerbs;

OleContainer1->DoVerb(1);

លើសពីនេះ កុងតឺន័រអាចសួរម៉ាស៊ីនមេឱ្យរក្សាទុកទិន្នន័យវត្ថុជាឯកសារក្នុងទម្រង់ម៉ាស៊ីនមេ។ ចំពោះគោលបំណងនេះវិធីសាស្រ្តត្រូវបានប្រើ SaveAsDocument(<имя файла>) ឯកសារនេះអាចត្រូវបានដំណើរការនៅពេលក្រោយដោយម៉ាស៊ីនមេកម្មវិធីដោយគ្មានការចូលរួមពីកុងតឺន័រ។ គួរឱ្យចាប់អារម្មណ៍ វិធីសាស្ត្រនេះអាចត្រូវបានប្រើសម្រាប់ទាំងវត្ថុដែលបានភ្ជាប់ និងបង្កប់។

នៅពេលបញ្ចប់ការធ្វើការជាមួយវត្ថុ កម្មវិធីអាចបញ្ចេញ OleContainer ដោយហៅវិធីសាស្ត្រ OleContainer->DestroyObject() - បំផ្លាញវត្ថុដែលបានផ្ទុក។ វិធីសាស្ត្រនេះអាចត្រូវបានហៅមុនពេលផ្ទុកវត្ថុថ្មី ឬនៅក្នុងពាក្យបញ្ជាម៉ឺនុយឯកសារ-ចេញ។

1. បង្កើតកម្មវិធីថ្មី។ បើក ទម្រង់សំខាន់សមាសធាតុខាងក្រោមមានទីតាំងនៅ៖

  • ធាតុស្លាកច្រើន។

និងសមាសធាតុមិនមើលឃើញពីរ៖

ទិដ្ឋភាពប្រហាក់ប្រហែលនៃបង្អួចកម្មវិធីសំខាន់ត្រូវបានបង្ហាញក្នុងរូប។ រូបភាព (ឯកសារដែលមានផ្នែកបន្ថែម .bmp) ត្រូវបានផ្ទុកទៅក្នុង OleContainer។ ស្ថានភាពម៉ាស៊ីនមេ៖ osRunning

2. បន្ថែមសមាសធាតុមួយទៅក្នុងទម្រង់ដែលនឹងបង្ហាញព័ត៌មានអំពីវត្ថុ៖ "មិនបានផ្ទុក" / "បង្កប់" / "ចង" ។

3. ម៉ឺនុយគួរតែមានពាក្យបញ្ជាដូចខាងក្រោម:

    "វត្ថុ" (InsertDialog, វត្ថុ Excel ថ្មី, វត្ថុថ្នាំលាបថ្មី, បង្កប់ពីឯកសារ, បង្កប់ពី "ឈ្មោះ បទបង្ហាញ PowerPoint", ភ្ជាប់ពីឯកសារ, ភ្ជាប់ពី "ឈ្មោះ ឯកសារពាក្យ", ប្រតិបត្តិពាក្យបញ្ជា);

    "លក្ខណសម្បត្តិ" (លក្ខណសម្បត្តិវត្ថុ ពាក្យបញ្ជាម៉ាស៊ីនមេ);

    "ជំនួយ" (អំពីកម្មវិធី) ។

ត្រូវប្រាកដថាធាតុម៉ឺនុយអាចប្រើបានតែនៅពេលដែលសកម្មភាពដែលត្រូវគ្នាអាចត្រូវបានអនុវត្ត។ ឧទាហរណ៍ ធាតុ “វត្ថុ”| "រត់ពាក្យបញ្ជា" អាចចូលប្រើបានលុះត្រាតែវត្ថុត្រូវបានផ្ទុកទៅក្នុង OleContainer ហើយប្រអប់បញ្ជីត្រូវបានដាក់ ពាក្យបញ្ជាដែលមានម៉ាស៊ីនមេ។

4. បង្កើតកម្មវិធីដោះស្រាយព្រឹត្តិការណ៍ដែលត្រូវគ្នាសម្រាប់ពាក្យបញ្ជាម៉ឺនុយទាំងអស់។

    "ឯកសារ" | "ផ្ទុកវត្ថុ" - វត្ថុដែលបានរក្សាទុកត្រូវបានផ្ទុកពីឯកសារអូល។

    "ឯកសារ" | "បំបែកការតភ្ជាប់" - បំបែកការតភ្ជាប់ជាមួយវត្ថុ;

    "ឯកសារ" | "ចេញ" - ការចាកចេញពីកម្មវិធីត្រឹមត្រូវ (ប្រសិនបើមានទំនាក់ទំនងជាមួយវត្ថុសូមបំបែកវា);

    "វត្ថុ" | InsertDialog - វត្ថុ និងវិធីសាស្រ្តនៃការផ្ទុករបស់វាទៅក្នុងកុងតឺន័រត្រូវបានជ្រើសរើសក្នុងប្រអប់ដោយអ្នកប្រើប្រាស់។

    "វត្ថុ" | " វត្ថុ Excel» - វត្ថុថ្មីត្រូវបានបង្កើតឡើង;

    "វត្ថុ" | " វត្ថុលាប» - វត្ថុថ្មីត្រូវបានបង្កើតឡើង;

    "វត្ថុ" | "បង្កប់ពីឯកសារ" - ឈ្មោះឯកសារត្រូវបានកំណត់ដោយអ្នកប្រើប្រាស់នៅក្នុងប្រអប់ OpenDialog ។

    "វត្ថុ" | "បានបង្កប់ពី "ឈ្មោះការបង្ហាញ PowerPoint" - ការបង្ហាញស្លាយដែលបានបង្កើតជាមុនត្រូវបានបញ្ចូលទៅក្នុងធុង។

    "វត្ថុ" | "ភ្ជាប់ពីឯកសារ" - ឈ្មោះឯកសារត្រូវបានកំណត់ដោយអ្នកប្រើប្រាស់នៅក្នុងប្រអប់ OpenDialog ។

    "វត្ថុ" | "ភ្ជាប់ពី "ឈ្មោះឯកសារ Word" - ឯកសារដែលបានបង្កើតពីមុនត្រូវបានបញ្ចូលទៅក្នុងធុង។

    "វត្ថុ" | "ប្រតិបត្តិពាក្យបញ្ជា" - ពាក្យបញ្ជាដែលបានជ្រើសរើសដោយអ្នកប្រើប្រាស់នៅក្នុង ListBox$ ត្រូវបានបញ្ជូនទៅម៉ាស៊ីនមេសម្រាប់ប្រតិបត្តិ។

    "ទ្រព្យសម្បត្តិ" | "លក្ខណៈសម្បត្តិវត្ថុ" - កុងតឺន័រស្នើសុំពីម៉ាស៊ីនមេនូវឈ្មោះវត្ថុស្ថានភាពនៃម៉ាស៊ីនមេនិងឈ្មោះឯកសារដែលពាក់ព័ន្ធដោយផ្អែកលើព័ត៌មានដែលទទួលបានការសន្និដ្ឋានត្រូវបានដកចេញ: "វត្ថុមិនត្រូវបានផ្ទុក / បង្កប់ / ភ្ជាប់។” ព័ត៌មានដែលទទួលបានត្រូវបានបង្ហាញនៅក្នុងសមាសធាតុស្លាកនៃបង្អួចកម្មវិធីសំខាន់។

    "ទ្រព្យសម្បត្តិ" | "ពាក្យបញ្ជារបស់ម៉ាស៊ីនមេ" - បញ្ជីនៃពាក្យបញ្ជាម៉ាស៊ីនមេត្រូវបានបង្ហាញនៅក្នុងសមាសធាតុ ListBox ។

    "ជួយ" | "អំពីកម្មវិធី ... " - បង្អួចដែលមានព័ត៌មានអំពីកម្មវិធីនិងអ្នកនិពន្ធរបស់វា។

5. ធ្វើការសាកល្បងពេញលេញនៃកម្មវិធីនៅលើវត្ថុផ្សេងៗ និងម៉ាស៊ីនមេ។

បច្ចេកវិទ្យា Ole អនុញ្ញាតឱ្យអ្នកនាំចូលវត្ថុពីកម្មវិធីផ្សេងទៀតខណៈពេលដែលរក្សាការតភ្ជាប់។លើសពីនេះទៅទៀត ប្រសិនបើអ្នកបញ្ចូលរូបភាពពីកម្មវិធីដូចជា Word ឬក្រាហ្វពី Excel វានឹងត្រូវបានរក្សាទុកក្នុងឯកសារជាវត្ថុដែលបានបង្កប់ ពោលគឺឧ។ នៅពេលផ្ទេរគំនូរ អ្នកមិនចាំបាច់រក្សាទុកវាជាមួយគំនូរដូចដែលចាំបាច់ដើម្បីធ្វើនៅពេលប្រើតំណភ្ជាប់ខាងក្រៅនៅក្នុង AutoCAD ។

នៅលើផ្ទាំងបញ្ចូលមានពាក្យបញ្ជា AutoCAD Ole Object ។

បន្ទាប់ពីបើកដំណើរការពាក្យបញ្ជា ប្រអប់ "បញ្ចូលវត្ថុ" លេចឡើង។

នៅទីនេះអ្នកអាចបង្កើត ឯកសារថ្មី។. ក្នុងករណីនេះ អ្នកគួរតែបញ្ជាក់កម្មវិធី (Photoshop, Microsoft Excel, Word, Power Point ។ល។) ដែលអ្នកនឹងធ្វើការ ហើយក្រោយមកដាក់វត្ថុរបស់អ្នកនៅក្នុង AutoCAD ឬធ្វើការភ្លាមៗនៅលើមូលដ្ឋាន។ ឯកសារដែលមានស្រាប់. នៅក្នុងការអនុវត្តជម្រើសទីពីរត្រូវបានប្រើញឹកញាប់ជាង។ សូមក្រឡេកមើលវាឱ្យកាន់តែលម្អិត។

នៅក្នុងប្រអប់ "បញ្ចូលវត្ថុ" ធីកប្រអប់ធីក "បង្កើតពីឯកសារ" ហើយបន្ទាប់មកចុចប៊ូតុង "រកមើល" ដើម្បីជ្រើសរើសឯកសារដែលសមរម្យ។ បន្ទាប់ពីជំហានទាំងនេះ ផ្លូវទៅកាន់ឯកសាររបស់អ្នកត្រូវបានសរសេរ។

មានជម្រើសបញ្ចូលពីរ៖

1) ឯករាជ្យ - បន្ទាប់ពីបញ្ចូលវត្ថុមួយ វាត្រូវបានទុក "នៅស្ថានី" នៅក្នុង AutoCAD ។ ហើយនៅពេលដែលអ្នកផ្លាស់ប្តូរឯកសារប្រភព គ្មានការផ្លាស់ប្តូរណាមួយកើតឡើងនៅក្នុងគំនូររបស់អ្នកទេ។

2) ការភ្ជាប់ឯកសារ - ក្នុងករណីនេះទីតាំងរបស់ពួកគេនៅលើកុំព្យូទ័រគួរតែនៅតែមិនផ្លាស់ប្តូរ។ ប្រសិនបើផ្លូវផ្លាស់ប្តូរ ការតភ្ជាប់នឹងបាត់បង់។ ដូច្នេះ វាជាការល្អបំផុតក្នុងការរក្សាទុកឯកសារទាំងនេះក្នុងថតតែមួយ។ ដើម្បីភ្ជាប់ ឯកសារ AutoCADធីកប្រអប់ធីក "ភ្ជាប់" នៅក្នុងប្រអប់ "បញ្ចូលវត្ថុ"(រូបទី 3) ។

អង្ករ។ 3 - ធ្វើការជាមួយវត្ថុ AutoCAD ole ដោយផ្អែកលើឯកសារដែលមានស្រាប់។

បន្ទាប់ពីចុចយល់ព្រម វត្ថុ ole របស់អ្នកត្រូវបានបញ្ចូលទៅក្នុង កន្លែងធ្វើការ AutoCAD ។ ឥឡូវនេះអ្នកអាចធ្វើការជាមួយវាដូចនឹងបុព្វកាល AutoCAD ធម្មតា ឧទាហរណ៍ ប្រើពាក្យបញ្ជាកែសម្រួល។

អង្ករ។ 4 - វត្ថុ AutoCAD Ole ក្នុងទម្រង់ជារូបភាពពី Word ។

ប្រសិនបើអ្នកចុចពីរដងលើវត្ថុ ole នោះ កម្មវិធីដែលវាត្រូវបានបង្កើតដំបូង (ឬរក្សាទុក) នឹងបើក។ ក្នុងឧទាហរណ៍នេះ រូបភាពធម្មតាពី Word ត្រូវបានបញ្ចូល។

អង្ករ។ 5 - ភាពអាចរកបាន មតិកែលម្អអនុញ្ញាតឱ្យអ្នកបើកកម្មវិធីប្រភព (ក្នុងករណីនេះ Word) ។

ការអនុវត្ត Ole នៅក្នុង AutoCAD តាមរយៈក្តារតម្បៀតខ្ទាស់។

Ole AutoCAD: អាថ៌កំបាំងនិងល្បិច។

នៅក្នុងវគ្គសិក្សានេះនៅលើ ឧទាហរណ៍ជាក់ស្តែងធ្វើការជាមួយ Ole-objects នៃ AutoCoad ត្រូវបានពិចារណា។ ទម្រង់វីដេអូនិយាយអំពី៖

ការកំណត់គុណភាពបោះពុម្ពសម្រាប់វត្ថុ ole;

របៀបយកស៊ុមដែលស៊ុមវត្ថុទាំងនេះតាមលំនាំដើម;

អថេរប្រព័ន្ធនៅពេលធ្វើការជាមួយ ole AutoCAD;

ដំណើរការបញ្ច្រាសនៃការបញ្ចូលវត្ថុ ole ពី AutoCAD ទៅក្នុងកម្មវិធីភាគីទីបី។

ជាការប្រសើរណាស់, ដូចដែលអ្នកបានឃើញ, វត្ថុ ole នៅក្នុង AutoCAD គឺជាបច្ចេកវិទ្យាដែលមានប្រយោជន៍ខ្លាំងណាស់! ហើយសំខាន់បំផុតគឺការប្រើគោលការណ៍នេះអនុញ្ញាតឱ្យអ្នកឆ្លើយសំណួរ: "របៀបបញ្ចូលរូបភាពទៅក្នុង AutoCAD ដោយគ្មានតំណភ្ជាប់?" ឥឡូវនេះ អ្នកអាចបង្កប់និមិត្តសញ្ញាក្រុមហ៊ុនរបស់អ្នកដោយសុវត្ថិភាពនៅលើគំនូរ ឬផ្ទៃខាងក្រោយគម្រោង ហើយកុំខ្លាចថាអ្នកប្រើប្រាស់ផ្សេងទៀតនឹងមិនបង្ហាញវត្ថុក្រាហ្វិកទាំងនេះទេ។

សមាសធាតុ TOleContainer អនុញ្ញាតឱ្យអ្នកដាក់ឯកសារ OLE នៅលើផ្ទៃនៃទម្រង់មួយ។ លក្ខណសម្បត្តិដែលប្រើជាទូទៅបំផុតនៃសមាសភាគនេះគឺ AutoActivate ដែលបញ្ជាក់ពីរបៀបដែលឯកសារ OLE ត្រូវបានធ្វើឱ្យសកម្ម រដ្ឋ ដែលបញ្ជាក់ពីស្ថានភាពរបស់ធុង OLE និង OleClassName ដែលបញ្ជាក់ឈ្មោះថ្នាក់ (CLSID) នៃវត្ថុ OLE ដែលមាននៅក្នុងកុងតឺន័រ . ប្រើជាទូទៅបំផុត វិធីសាស្រ្តដូចខាងក្រោមនៃសមាសភាគនេះ:

Ш InsertObjectDialog - បង្ហាញប្រអប់វត្ថុស្តង់ដារសម្រាប់ជ្រើសរើសប្រភេទឯកសារ ឬផ្ទុកវាពីឯកសារ។ w CreateObject - បង្កើតវត្ថុ OLE; I CreateObjectFromFile - បង្កើតវត្ថុ OLE ដោយផ្អែកលើឯកសារដែលមានស្រាប់ដែលមានឯកសារ OLE ហើយដាក់វានៅក្នុងធុង OLE ។

នៅក្នុង DestroyObject - បំផ្លាញវត្ថុដែលមាននៅក្នុងធុង OLE ។

ចូរយើងបង្កើតកម្មវិធីសាមញ្ញមួយដែលបង្ហាញពីការប្រើប្រាស់សមាសធាតុ TOleContainer ។ ចំពោះគោលបំណងនេះយើងនឹងដាក់សមាសធាតុ TPanel នៅលើទម្រង់ជាមួយ តម្រឹមទ្រព្យសម្បត្តិស្មើនឹង alClient នៅលើវា - សមាសភាគ TOleContainer និងម៉ឺនុយមេ (អ្នកអាចបង្កើតវត្ថុថ្មី និងធាតុចេញនៅក្នុងវា)។ បន្ទះ និងម៉ឺនុយគឺចាំបាច់ដើម្បីបង្ហាញរបារឧបករណ៍ និងម៉ឺនុយនៃម៉ាស៊ីនមេ OLE ដែលបម្រើវត្ថុដែលបង្ហាញនៅក្នុងសមាសភាគ TOleContainer ។ ប្រសិនបើទម្រង់ដែលមានសមាសធាតុ TOleContainer មានម៉ឺនុយ នោះម៉ឺនុយម៉ាស៊ីនមេនឹងត្រូវបានភ្ជាប់ទៅម៉ឺនុយកម្មវិធីដោយយោងតាមច្បាប់នៃការរួមបញ្ចូលគ្នានៃម៉ឺនុយវីនដូ។ ប្រសិនបើសមាសធាតុ TOleContainer ត្រូវបានដាក់នៅលើសមាសភាគ TPanel នោះវានឹងបង្ហាញរបារឧបករណ៍ម៉ាស៊ីនមេ (រូបភាព 5.1) ។

អង្ករ។ ៥.១. ទម្រង់ជាមួយសមាសធាតុ TOleContainer

តោះបង្កើតកម្មវិធីដោះស្រាយព្រឹត្តិការណ៍ដែលទាក់ទងនឹងការជ្រើសរើសធាតុម៉ឺនុយវត្ថុថ្មី៖

នីតិវិធី TForml.NewlClick(អ្នកផ្ញើ៖ TObject); ចាប់ផ្តើម 01eContai nerl.InsertObjectDi alog: end:

ដោយបើកដំណើរការកម្មវិធី ហើយចុចលើប៊ូតុងនោះ យើងទទួលបានប្រអប់បញ្ចូលវត្ថុ (រូបភាព 5.2)។


អង្ករ។ ៥.២. បញ្ចូលប្រអប់ប្រអប់វត្ថុ

បញ្ជីដែលបានផ្តល់ក្នុងប្រអប់នេះរាយបញ្ជីម៉ាស៊ីនមេឯកសារ OEE ទាំងអស់ដែលបានចុះឈ្មោះ កុំព្យូទ័រនេះ។. អ្នកអាចជ្រើសរើសមួយក្នុងចំណោមពួកគេ (ឧទាហរណ៍ Microsoft Excel Worksheet) ។ ឥឡូវនេះបន្ទាប់ពី ចុចពីរដងនៅលើសមាសភាគ TOleContainer សមាសភាគ TPanel នឹងមានបន្ទះ ឧបករណ៍ Microsoft Excel និងម៉ឺនុយមេនៃកម្មវិធីនេះ និងធុង OLE ខ្លួនឯង - ថ្មី។ សៀវភៅការងារ Excel (រូបភាព 5.3) ។


អង្ករ។ ៥.៣. វត្ថុសកម្មនៅក្នុងធុង OLE

ប្រសិនបើប្រភេទនៃវត្ថុដែលត្រូវបង្ហាញនៅក្នុងធុង OLE ត្រូវបានដឹងជាមុន អ្នកអាចប្រើវិធីសាស្ត្រ CreateObject នៃសមាសភាគ TOleContainer៖

នីតិវិធី TForml.NewExcelworksheetlClick(អ្នកផ្ញើ៖ TObject)។ ចាប់ផ្តើម 01eContainerl.CreateObjectC"Excel.Sheet"។ False) : end;

ប៉ារ៉ាម៉ែត្រទីពីរនៃវិធីសាស្ត្រនេះបញ្ជាក់ថាតើត្រូវបង្ហាញរូបតំណាងនៅក្នុងធុង OLE ដែរឬទេ។

ការយកចិត្តទុកដាក់ -

ទោះបីជាប្រអប់បញ្ចូលវត្ថុមានតែឈ្មោះម៉ាស៊ីនមេឯកសារ OLE ក៏ដោយ ជាគោលការណ៍ម៉ាស៊ីនមេ COM ណាដែលមានចំណុចប្រទាក់អ្នកប្រើអាចត្រូវបានបង្ហាញនៅក្នុងសមាសធាតុបែបនេះ ជាពិសេសធាតុជាច្រើន ការគ្រប់គ្រង ActiveX. ក្នុងករណីដែលចាំបាច់ត្រូវបង្ហាញក្នុង OLE-copyspace ចំណុចប្រទាក់អ្នកប្រើម៉ាស៊ីនមេ COM ដែលមិនមែនជាម៉ាស៊ីនមេឯកសារ OLE គួរតែបញ្ជាក់ CLSID របស់វាជាប៉ារ៉ាម៉ែត្រដំបូងនៃវិធីសាស្ត្រ CreateObject

តោះកែប្រែកម្មវិធីដោយបន្ថែមធាតុម៉ឺនុយពីរបីទៀត (រូបភាព 5.4)។ តោះបង្កើតកម្មវិធីដោះស្រាយព្រឹត្តិការណ៍ដែលត្រូវគ្នា៖

នីតិវិធី TForml.ShowPropertieslClickCSender: TObject); ចាប់ផ្តើមប្រសិនបើ 01 eContainerl.01eObjectInterface<>nil បន្ទាប់មក 01eContai nerl.ObjectProperti esDi alog else ShowMessage("OleContainer គឺទទេ"); បញ្ចប់; នីតិវិធី TForml.PastespeciallClick(អ្នកផ្ញើ៖ TObject)។ ចាប់ផ្តើម 01eContai nerl.PasteSpeci alDialog: បញ្ចប់

អង្ករ។ ៥.៤. ម៉ឺនុយនៃកម្មវិធីដែលប្រើសមាសភាគ TOIeContainer

តោះចងក្រងកម្មវិធី ហើយបន្ថែមវត្ថុមួយចំនួនទៅធុង OLE នៅពេលដំណើរការ។ ដោយជ្រើសរើសពាក្យបញ្ជា Action Show Properties នៃកម្មវិធីរបស់យើង យើងទទួលបានប្រអប់ស្តង់ដារដែលពិពណ៌នាអំពីលក្ខណៈសម្បត្តិរបស់វត្ថុ OLE (រូបភាព 5.5)។


អង្ករ។ ៥.៥. ប្រអប់​ពិពណ៌នា​អំពី​លក្ខណៈ​សម្បត្តិ​របស់​វត្ថុ

ដោយបានដាក់ទិន្នន័យមួយចំនួននៅលើក្តារតម្បៀតខ្ទាស់ សូមជ្រើសរើសពាក្យបញ្ជា Action PasteSpecial នៃកម្មវិធីរបស់យើង ហើយទទួលបានប្រអប់មួយ ការបញ្ចូលពិសេសវត្ថុពី Paste ក្ដារតម្បៀតខ្ទាស់ពិសេស (រូបភាព 5.6) ។


អង្ករ។ ៥.៦. បិទភ្ជាប់ប្រអប់ពិសេស

ដោយបានជ្រើសរើសប្រភេទវត្ថុដែលត្រូវបញ្ចូលក្នុងបញ្ជីដែលបានស្នើ យើងអាចដាក់វានៅក្នុងធុង OBE (រូបភាព 5.7)។


អង្ករ។ ៥.៧. លទ្ធផលនៃការបិទភ្ជាប់វត្ថុមួយពីក្តារតម្បៀតខ្ទាស់