Скачиваний:
19
Добавлен:
01.05.2014
Размер:
41.69 Кб
Скачать
я2ЋЎ¬Ґ­ ¤ ­­л¬Ё ў вҐе­®«®ЈЁЁ OLE

OLE пў«пҐвбп бв®«м Ў®«ми®© ®Ў« бвмо вҐе­®«®ЈЁЁ, зв® Ў®«миҐ
­Ґ Ё¬ҐҐв пў­®Ј® ®в­®иҐ­Ёп Є бўп§лў ­Ёо Ё ў­Ґ¤аҐ­Ёо ®ЎкҐЄв®ў.
‚¬Ґбв® нв®Ј® ®­® бўп§лў Ґвбп б ЈагЇЇ®© вҐе­®«®ЈЁ©, ўЄ«оз ойЁе ў
ᥡп бўп§лў ­ЁҐ Ё ў­Ґ¤аҐ­ЁҐ ®ЎкҐЄв®ў, Ћ‘•, бвагЄвгаЁа®ў ­­го
Ї ¬пвм,  ўв®¬ вЁ§ жЁо Ё вҐе­®«®ЈЁо ЇҐаҐв бЄЁў ­Ёп. ‚ᥠнвЁ
вҐе­®«®ЈЁЁ Ў §Ёаговбп ­  Їа®Ја ¬¬­®© вҐе­®«®ЈЁЁ, ­ §ў ­­®©
Component Object Model Ё«Ё COM.

—в® в Є®Ґ вҐе­®«®ЈЁп OLE? ќв® ­ Ў®а ®ЎкҐЄв®ў, Ї®бв஥­­ле
Ї®ўҐае ®ЎкҐЄв­®© ¬®¤Ґ«Ё ‘ЋЊ, Є®в®а п ¤®ЇгбЄ Ґв Є®¬¬г­ЁЄ жЁо ў
室Ґ Їа®жҐбб . Ѓ®«ми п з бвм вҐе­®«®ЈЁЁ бўп§ ­  б Ї®«г祭ЁҐ¬
­ҐбЄ®«мЄЁе ЇаЁ«®¦Ґ­Ё©, Їа®жҐбб®ў, ¬ иЁ­ Ё«Ё ®ЇҐа жЁ®­­ле бЁб⥬,
®Ўй ойЁебп ¤агЈ б ¤агЈ®¬.

OLE - нв® ­Ґ Їа®бв® вҐе­®«®ЈЁп ®Ў¬Ґ­  ¤ ­­л¬Ё ¬Ґ¦¤г ЇаЁ«®¦Ґ-
­Ёп¬Ё, OLE пў«пҐвбп п¤а®¬ ᮢ६Ґ­­®© Є®­жҐЇжЁЁ ¤®Єг¬Ґ­в®-®аЁҐ­-
вЁа®ў ­­®© б।л. Џ®н⮬㠤 ў ©вҐ ­  вҐе­®«®ЈЁо OLE Ї®б¬®ваЁ¬ Ў®-
«ҐҐ иЁа®Є®, 祬 Їа®бв® ­  бЇ®б®Ў ®Ў¬Ґ­  ¤ ­­л¬Ё.

я1Џ®­пвЁҐ ¤®Єг¬Ґ­в®-®аЁҐ­вЁа®ў ­­®© б।л

Џ®«м§®ў вҐ«п¬ з бв® ­Ґ®Ўе®¤Ё¬® б®ў¬Ґбв­®Ґ ЁбЇ®«м§®ў ­ЁҐ
ЇаЁ«®¦Ґ­Ё©. Ќ ЇаЁ¬Ґа, ў ⥪бв ­Ґ®Ўе®¤Ё¬® ўЄ«озЁвм Є авЁ­Єг. Љ Є
н⮠ᤥ« вм, Ґб«Ё । Єв®а, ў Є®в®а®¬ ⥪бв ᮧ¤ Ґвбп, ­Ґ
ЇаҐ¤­ §­ зҐ­ ¤«п аЁб®ў ­Ёп Є авЁ­®Є,   Є авЁ­ЄЁ ¬®¦­® ᮧ¤ ў вм ў
б®ўҐа襭­® ¤агЈ®¬ ЇаЁ«®¦Ґ­ЁЁ. ’ Є ў®в Є®­жҐЇжЁп
¤®Єг¬Ґ­в®-®аЁҐ­вЁа®ў ­­®© баҐ¤л ЇаҐ¤­ §­ зҐ­  ¤«п нд䥪⨢­®Ј®
ў§ Ё¬®¤Ґ©бвўЁп а §«Ёз­ле ЇаЁ«®¦Ґ­Ё©.
Џ® ¤®Єг¬Ґ­в®¬ Ї®­Ё¬ Ґвбп ­Ґ в®«мЄ® ⥪бв,   «оЎ®© д ©«,
Ї®¤Ј®в®ў«Ґ­­л© Ї®«м§®ў вҐ«Ґ¬.
„®Єг¬Ґ­в®-®аЁҐ­вЁа®ў ­­ п а Ў®в  - нв® а Ў®в  б ­ Ў®а®¬
ЇаЁ«®¦Ґ­Ё©, Є ¦¤®Ґ Ё§ Є®в®але ўлЇ®«­пҐв ®в¤Ґ«м­лҐ дг­ЄжЁЁ,   ­Ґ
а Ў®в  б ®¤­Ё¬ ®Ја®¬­л¬ ЇаЁ«®¦Ґ­ЁҐ¬, ўлЇ®«­пойЁ¬ ўбҐ дг­ЄжЁЁ. ‘
нв®© в®зЄЁ §аҐ­Ёп ¬®¦­® бзЁв вм, зв® ¤®Єг¬Ґ­в®-®аЁҐ­вЁа®ў ­­ п
б।  - нв® ҐйҐ ®¤Ё­  бЇҐЄв бвагЄвгаЁ§ жЁЁ Їа®Ја ¬¬­®Ј®
®ЎҐбЇҐзҐ­Ёп.
‚ ¦­®, зв® ў ¤-® Ї®¤е®¤Ґ ­  ЇҐаў®Ґ ¬Ґбв® ўл室Ёв ¤®Єг¬Ґ­в,  
­Ґ ᮧ¤ ўиҐҐ ҐЈ® ЇаЁ«®¦Ґ­ЁҐ Ё«Ё ап¤ ЇаЁ«®¦Ґ­Ё©. „®Єг¬Ґ­в -
ЇҐаўЁзҐ­, ЇаЁ«®¦Ґ­ЁҐ - ўв®аЁз­®.
‘«Ґ¤гойЁҐ вҐе­®«®ЈЁЁ бгйҐбвўгов ¤«п ®аЈ ­Ё§ жЁЁ ¤-® а Ў®вл.
1) OLE дЁа¬л Microsoft;
2) OpenDoc - ўбҐ, Єа®¬Ґ Microsoft, в.Ґ. Apple, IBM, Novell,
Oracle, Xerox;
3) CORBA - Common Object Request Broker Architecture ЋЎй п
ЂаеЁвҐЄвга  Џ®б।­ЁЄ  ‡ Їа®б®ў ¬Ґ¦¤г ЋЎкҐЄв ¬Ё - IBM, HP, DEC,
Sun.
Њл Ўг¤Ґ¬ а бб¬ ваЁў вм вҐе­®«®ЈЁо OLE.

‚ „Ћ‘ ваг¤­® Ўл«® ᮧ¤ вм ¤®Єг¬Ґ­в - ⥪бв б аЁбг­Є ¬Ё. „Ґ«®
ў ⮬, зв® д®а¬ вл ¤ ­­ле ў ЇаЁ«®¦Ґ­Ёпе „Ћ‘ бгйҐб⢥­­® а §«Ёз­л.
Ља®¬Ґ в®Ј®, Ї®бЄ®«мЄг „Ћ‘ Ё§­ з «м­® Їа®ҐЄвЁа®ў « бм Є Є
®¤­®§ ¤ з­ п б। , ­Ґ Ўл«® ­Ґ®Ўе®¤Ё¬®бвЁ ў§ Ё¬®¤Ґ©бвўЁп ¬Ґ¦¤г
ЇаЁ«®¦Ґ­Ёп¬Ё.
Џ®ЇлвЄЁ гбва ­Ёвм нв®в ­Ґ¤®бв в®Є ЇаЁўҐ«Ё Є ᮧ¤ ­Ёо
Ё­вҐЈаЁа®ў ­­ле Ї ЄҐв®ў, ­ ЇаЁ¬Ґа, Framework. ќв® ЇаЁ¬Ґа вЁЇЁз­®©
®ЇҐа жЁ®­­®© б।л, Єбв вЁ бЄ § вм. ‚ ­Ґ¬ ¬®¦­® Ўл«® ¬­®Ј®Ґ
¤Ґ« вм, ­Ґ ўле®¤п Ё§ Ї ЄҐв  - ᮧ¤ вм ⥪бв, ўҐбвЁ Ў §г ¤ ­­ле,
а Ў®в вм б д ©« ¬Ё, ЇҐз в вм. Ќ® ўбҐ а ў­®, ®в¤Ґ«м­лҐ Є®¬Ї®­Ґ­вл
Ї ЄҐв  Ўл«Ё е㦥, 祬 б ¬®бв®п⥫м­лҐ ЇаЁ«®¦Ґ­Ёп, ўлЇ®«­пойЁҐ
ᮮ⢥вбвўгойЁҐ дг­ЄжЁЁ. ‘Є §лў « бм, ўЁ¤Ё¬®, Єў «ЁдЁЄ жЁп
г§Є®бЇҐжЁ «Ё§Ёа®ў ­­ле а §а Ў®взЁЄ®ў.

‘«Ґ¤гойЁ¬ и Ј®¬ ­  ЇгвЁ ¤-® а Ў®вл пў«пҐвбп Ї®­пвЁҐ
Clipboard. Windows Є Є ¬­®Ј®§ ¤ з­ п б।  ба §г ¦Ґ
Їа®ҐЄвЁа®ў « бм б ўлб®Є®нд䥪⨢­л¬Ё б।бвў ¬Ё ®Ў¬Ґ­  ¤ ­­л¬Ё
¬Ґ¦¤г ЇаЁ«®¦Ґ­Ёп¬Ё. „®бв®Ё­бвў® Clipboard б®бв®Ёв ў ⮬, зв®
Ёб祧«  Їа®Ў«Ґ¬  ЇаҐ®Ўа §®ў ­Ёп ¤ ­­ле ЇаЁ ЇҐаҐ¤ зҐ Ёе Ё§ ®¤­®Ј®
ЇаЁ«®¦Ґ­Ёп ў ¤агЈ®Ґ. ЏаҐ®Ўа §®ў ­ЁҐ Їа®Ёб室Ёв ­Ґ§ ¬Ґв­® ¤«п
Ї®«м§®ў вҐ«п ­  ®б­®ўҐ ап¤  гбв ­®ў«Ґ­­ле бв ­¤ ав®ў. ЏаЁ«®¦Ґ­ЁҐ
 ўв®¬ вЁзҐбЄЁ Є®­ва®«ЁагҐв ­ «ЁзЁҐ ¤ ­­ле ў ЎгдҐаҐ: ¤ ­­лҐ Ґбвм -
дг­ЄжЁп Paste -  ЄвЁў­ , ¤ ­­ле ­Ґв - дг­ЄжЁп Paste - Ї ббЁў­ .

ЪДДДДДДДДДДДДДДДДДДДДДДДДДї
Copy і‚Ё§г «м­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐі Paste
ЪДДДДДДДґ да Ј¬Ґ­в  ГДДї
і АДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
ЪДДДДДДДДБДДДДДДДДДДДї ЪДДДДДДДДДБДДДДДДДДДї
і ЏаЁ«®¦Ґ­ЁҐ-Ёбв®з­ЁЄі іЏаЁ«®¦Ґ­ЁҐ-ЇаЁҐ¬­ЁЄі
і ЪДДДДДДДДДДї і і ЪДДДДДДДДДДДДДДДїі
і і ”а Ј¬Ґ­в і і і і ‚Ё§г «м­®Ґ іі
і АДДДДДДДДДДЩ і і і ЇаҐ¤бв ў«Ґ­ЁҐ іі
і і і і да Ј¬Ґ­в  іі
і і і АДДДДДДДДДДДДДДДЩі
АДДДДДДДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДЩ

ЌҐ¤®бв вЄ®¬ пў«пҐвбп ­Ґў®§¬®¦­®бвм ­ Є®Ї«Ґ­Ёп ¤ ­­ле; ЇаЁ
Ї®пў«Ґ­ЁЁ ­®ў®Ј® Ў«®Є  ¤ ­­ле, бв алҐ вҐаповбп,   в Є¦Ґ
®Ја ­ЁзҐ­­®бвм а §¬Ґа  Ў«®Є , в.Є. Clipboard - нв® ЎгдҐа ў Ћ‡“.

‘«Ґ¤гойЁ¬ и Ј®¬ а §ўЁвЁп вҐе­®«®ЈЁЁ ®Ў¬Ґ­  ¤ ­­л¬Ё бв « 
вҐе­®«®ЈЁп DDE. ”а Ј¬Ґ­в, Є®в®ал© ¬л е®вЁ¬ ЇҐаҐ­ҐбвЁ ў ¤агЈ®Ґ
ЇаЁ«®¦Ґ­ЁҐ, ¤®«¦Ґ­ Ўлвм з бвмо д ©« , Є®в®ал© ­ §лў Ґвбп
¤®Єг¬Ґ­в®¬-Ёбв®з­ЁЄ®¬. ”а Ј¬Ґ­в Ї®¬Ґй Ґвбп ў Clipboard Є®¬ ­¤®©
Copy,   бзЁвлў Ґвбп ­Ґ Є®¬ ­¤®© Paste, a Є®¬ ­¤®© Paste Link.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДї
Copy і‚Ё§г «м­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐі Paste Link
ЪДДДДД>Дґ да Ј¬Ґ­в  ГД>ї
і АДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
ЪДДДДДДДДБДДДДДДДДДДДї ЪДДДДДДДДДБДДДДДДДДДї
і ЏаЁ«®¦Ґ­ЁҐ-Ёбв®з­ЁЄі іЏаЁ«®¦Ґ­ЁҐ-ЇаЁҐ¬­ЁЄі
і ЪДДДДДДДДДДї і і ЪДДДДДДДДДДДДДДДїі
і і ”а Ј¬Ґ­в і і і і ‚Ё§г «м­®Ґ іі
і АДДДДДДДДДДЩ і і і ЇаҐ¤бв ў«Ґ­ЁҐ іі
і і і і да Ј¬Ґ­в  іі
і і і АДДДДДДДДДДДДДДДЩі
АДДДДДДДДВДДДДДДДДДДДЩ АДДДДДДДДДВДДДДДДДДДЩ
^ ббл«Є  ­  ®аЁЈЁ­ « і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

’ҐЇҐам «оЎлҐ Ё§¬Ґ­Ґ­Ёп ў да Ј¬Ґ­вҐ ¤®Єг¬Ґ­в -Ёбв®з­ЁЄ  Ўг¤гв
®ва ¦ вмбп ­  да Ј¬Ґ­вҐ, Ї®¬ҐйҐ­­®¬ ў ЇаЁ«®¦Ґ­ЁҐ-ЇаЁҐ¬­ЁЄ. ’.®.
да Ј¬Ґ­в б®еа ­Ё« бўп§м б ®аЁЈЁ­ «®¬, ў ¤®Єг¬Ґ­вҐ, Єг¤  ўбв ў«Ґ­
да Ј¬Ґ­в Ґбвм ббл«Є  ­  ®аЁЈЁ­ «. ЏаЁ н⮬ бўп§м б®еа ­пҐвбп Ё
Ї®б«Ґ § ЄалвЁп ЇаЁ«®¦Ґ­Ё©.


’Ґе­®«®ЈЁп DDE ­Ґ Ї®«гзЁ«  иЁа®Є®Ј® а бЇа®бва ­Ґ­Ёп.
Џ®«м§®ў вҐ«Ё з йҐ ЁбЇ®«м§гов ®Ўлз­л© Clipboard. „«п Їа®Ја ¬¬Ёбв®ў
Їа®в®Є®«л DDE ⮦Ґ ®зҐ­м б«®¦­л. ‚л нв® ўЁ¤Ґ«Ё. DDE 楫Ґб®®Ўа §­®
ЁбЇ®«м§®ў вм ¤«п ®Ў¬Ґ­  ¤®бв в®з­® Їа®бвл¬Ё бвагЄвга ¬Ё ¤ ­­ле,  
Ё¬Ґ­­®, ⥪бв®ўл¬Ё бва®Є ¬Ё. „«п Ў®«ҐҐ б«®¦­ле бвагЄвга Ё Ўл«
ᮧ¤ ­ Їа®в®Є®« OLE.

— бв® Їа®Ё§ў®¤Ёвбп ба ў­Ґ­ЁҐ Їа®в®Є®«®ў DDE Ё OLE Ё
бЇа иЁў Ґвбп, Є®Ј¤  Є Є®© Їа®в®Є®« ­Ґ®Ўе®¤Ё¬® ЇаЁ¬Ґ­пвм. Џа®в®Є®«
DDE 楫Ґб®®Ўа §­® ЁбЇ®«м§®ў вм ¤«п ®Ў¬Ґ­  Їа®бвл¬Ё вЁЇ ¬Ё ¤ ­­ле,
­ ЇаЁ¬Ґа, ⥪бв®ўл¬Ё бва®Є ¬Ё, ў в® ўаҐ¬п Є Є Їа®в®Є®« OLE
бЇ®б®ЎҐ­ Ї®¤¤Ґа¦Ёў вм ®Ў¬Ґ­ бгйҐб⢥­­® Ў®«ҐҐ б«®¦­®©
Ё­д®а¬ жЁҐ©, в Є®© Є Є §ўгЄЁ, Ё§®Ўа ¦Ґ­Ёп.

я1ЏаЁ­жЁЇл OLE

‚ OLE Ї®­пвЁҐ ®ЎкҐЄв  Ё¬ҐҐв б«Ґ¤гойЁ© б¬лб«: ®ЎкҐЄв - нв®
б®ў®ЄгЇ­®бвм ваҐе ўЁ¤®ў ¤ ­­ле:
1) б®Ўб⢥­­лҐ ¤ ­­лҐ ў ⮬ ў­гв७­Ґ¬ д®а¬ вҐ, ў Є®в®а®¬ Ёе
ᮧ¤ «® ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа;
2) ¤ ­­лҐ ¤«п ўЁ§г «м­®Ј® ЇаҐ¤бв ў«Ґ­Ёп;
3) б«г¦ҐЎ­ п Ё­д®а¬ жЁп ® Їа®Ја ¬¬Ґ-бҐаўҐаҐ.
’.®. OLE-®ЎкҐЄв - нв® ¤ ­­лҐ, а §¤Ґ«пҐ¬лҐ ¤ўг¬п
ЇаЁ«®¦Ґ­Ёп¬Ё. ЏаЁ«®¦Ґ­ЁҐ-Є«ЁҐ­в в®«мЄ® ®в®Ўа ¦ Ґв ¤ ­­лҐ (2).
„«п ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в  Ї®пўЁ«бп вҐа¬Ё­ - OLE-Є®­вҐ©­Ґа - нв®
ЇаЁ«®¦Ґ­ЁҐ, Є®в®а®Ґ ¬®¦Ґв ᮤҐа¦ вм ®ЎкҐЄв. OLE-бҐаўҐа - нв®
ЇаЁ«®¦Ґ­ЁҐ, Є®в®а®Ґ ¬®¦Ґв ᮧ¤ ў вм Ё । ЄвЁа®ў вм ®ЎкҐЄв.
Џ®пўЁ«®бм Ї®­пвЁҐ "б®бв ў­®© ¤®Єг¬Ґ­в" Є Є ¤®Єг¬Ґ­в,
ᮤҐа¦ йЁ© а §«Ёз­лҐ вЁЇл ¤ ­­ле, ®д®а¬«Ґ­­лҐ Є Є ®ЎкҐЄвл.

„«п Ї®«м§®ў вҐ«Ґ© ®б­®ў­л¬ ­®ў®ўўҐ¤Ґ­ЁҐ¬ бв «  ў®§¬®¦­®бвм
 ЄвЁўЁ§ жЁЁ ЇаЁ«®¦Ґ­Ёп, ᮧ¤ ўиҐЈ® ®ЎкҐЄв, Ё§ ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в ,
ў Є®в®а®¬ ®ЎкҐЄв ­ е®¤Ёвбп. ‚ Ї®«Ґ ®ЎкҐЄв  ­ ¤® ᤥ« вм ¤ў®©­®©
饫祪 «Ґў®© Є­®ЇЄ®© ¬лиЁ. ‡ Јаг§Ёвбп бҐаўҐа Ё Ґ¬г Ўг¤Ґв ЇҐаҐ¤ ­
®ЎкҐЄв.
ЏаЁ н⮬ Ї®­пвЁҐ ­ е®¦¤Ґ­Ёп ®ЎкҐЄв  ў ЇаЁ«®¦Ґ­ЁЁ-Є«ЁҐ­вҐ
¬®¦Ґв ЇаЁ®ЎаҐв вм ¤ў®пЄЁ© б¬лб«.

‚ аЁ ­в 1. ‚­Ґ¤аҐ­ЁҐ ®ЎкҐЄв . ‘¬лб« ў­Ґ¤аҐ­Ёп б®бв®Ёв ў ⮬,
зв® ўбҐ ваЁ ўЁ¤  ¤ ­­ле ®ЎкҐЄв  Є®ЇЁаговбп ў б®бв ў­®© ¤®Єг¬Ґ­в.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іЪДДДДДДДДДДДїЪДДДДДДДДДДДДДїЪДДДДДДДДДДїі
Copy іі‘®Ўб⢥­­лҐіі ‚Ё§г «м­®Ґ іі‘«г¦ҐЎ­ п іі Insert
ЪДДД>ґі ¤ ­­лҐ ііЇаҐ¤бв ў«Ґ­ЁҐііЁ­д®а¬ жЁпіГД>ї object
і іАДДДДДДДДДДДЩАДДДДДДДДДДДДДЩАДДДДДДДДДДЩі і
і і ЋЎкҐЄв і і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
ЪДДДБДДДДї ЪДДДБДДДДї
і ‘ҐаўҐа і і Љ«ЁҐ­в і
іЪДДДДДДїі іЪДДДДДДїі
ііЋЎкҐЄвіі ііЋЎкҐЄвіі
іАДДДДДДЩі іАДДДДДДЩі
АДДДДДДДДЩ АДДДДДДДДЩ

„®бв®Ё­бвў® ¤ ­­®Ј® ¬Ґв®¤  б®бв®Ёв ў § Є®­зҐ­­®бвЁ д ©« 
б®бв ў­®Ј® ¤®Єг¬Ґ­в . ‚бҐ, зв® ­г¦­®, Ґбвм ў ­Ґ¬ б ¬®¬. ќв® ў ¦­®
ў б«гз Ґ ў®§¬®¦­®Ј® ЇҐаҐ­ҐбҐ­Ёп ¤®Єг¬Ґ­в  ­  ¤агЈго дЁ§ЁзҐбЄго
¬ иЁ­г.
ЌҐ¤®бв в®Є б®бв®Ёв ў ⮬, зв® ўҐ«ЁЄ а §¬Ґа д ©«  б®бв ў­®Ј®
¤®Єг¬Ґ­в . …б«Ё Ґбвм ­ҐбЄ®«мЄ® б®бв ў­ле ¤®Єг¬Ґ­в®ў б ¤ ­­л¬
®ЎкҐЄв®¬, в® ®­Ё бЄ®ЇЁа®ў ­л ў Є ¦¤®¬ Ё§ б®бв ў­ле ¤®Єг¬Ґ­в®ў.

‚ аЁ ­в 2. ‘ўп§лў ­ЁҐ ®ЎкҐЄв . ‚ н⮬ б«гз Ґ ўв®а п Є®ЇЁп
®ЎкҐЄв  ­Ґ ᮧ¤ Ґвбп. „®Єг¬Ґ­в-Є«ЁҐ­в ᮤҐа¦Ёв в®«мЄ® ¤ ­­лҐ ¤«п
ўЁ§г «м­®Ј® ЇаҐ¤бв ў«Ґ­Ёп Ё ббл«Єг ­  ¤®Єг¬Ґ­в-бҐаўҐа, ᮤҐа¦ йЁ©
®ЎкҐЄв. ‘бл«Є  - Ї®«­л© Їгвм Є ®ЎкҐЄвг.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іЪДДДДДДДДДДДДДїЪДДДДДДДДДДїі
Copy іі ‚Ё§г «м­®Ґ іі‘бл«Є  ­  іі Paste
ЪДДД>ґіЇаҐ¤бв ў«.(1)іі®ЎкҐЄв (2)іГД>ї Link
і іАДДДДДДДДДДДДДЩАДДДДДДДДДДЩі і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
ЪДДДБДДДДї ЪДДДБДДДДї
і ‘ҐаўҐа і і Љ«ЁҐ­в і
іЪДДДДДДїі іЪДДДДДДїі
ііЋЎкҐЄвіі іі(1)(2)іі
іАДДДДДДЩі іАДДДДДДЩі
АДДДДДДДДЩ АДДДДДДДДЩ

‘ўп§лў ­ЁҐ нЄ®­®¬Ёв ¬Ґбв® ­  ¤ЁбЄҐ, ®б®ЎҐ­­®, Є®Ј¤  ®¤Ё­
®ЎкҐЄв пў«пҐвбп Ёбв®з­ЁЄ®¬ ¤«п ¬­®ЈЁе Є«ЁҐ­в®ў, ­® ЇаЁ ЇҐаҐ­®бҐ
­  ¤агЈго ¬ иЁ­г ¤®Єг¬Ґ­в -Є«ЁҐ­в  ­Ґ®Ўе®¤Ё¬® ®вб«Ґ¤Ёвм, зв®Ўл
ўбҐ ¤®Єг¬Ґ­вл-бҐаўҐал ⮦Ґ Ўл«Ё ЇҐаҐ­ҐбҐ­л.

€бв®аЁзҐбЄЁ Їа®в®Є®« OLE бгйҐбвўгҐв ў ¤ўге ўҐабЁпе - OLE 1.0
Ё OLE 2.0. ‘Ґ©з б, ҐбвҐб⢥­­®, ЇаҐ¤Ї®з⥭ЁҐ ®в¤ Ґвбп OLE 2.0.
OLE 1.0 Ї®«­®бвмо ॠ«Ё§®ў ­ б।бвў ¬Ё DDE Ё ®Ў« ¤ Ґв
б«Ґ¤гойЁ¬ ­Ґг¤®Ўбвў®¬. ЏаЁ  ЄвЁўЁ§ жЁЁ ®ЎкҐЄв  ў
¤®Єг¬Ґ­вҐ-Є«ЁҐ­вҐ, § Јаг¦ Ґвбп ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа Ё Ґ¬г ЇҐаҐ¤ Ґвбп
®ЎкҐЄв ¤«п । ЄвЁа®ў ­Ёп. ќв® е®а®и®, ­® Ї«®е® в®, зв®
ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа § Јаг¦ Ґвбп ў ®в¤Ґ«м­®¬ ®Є­Ґ Ё ЇаЁ
। ЄвЁа®ў ­ЁЁ ®ЎкҐЄв  ­Ґ ўЁ¤­® ®Єа㦥­Ёп, ᮤҐа¦ йҐЈ®бп ў
¤®Єг¬Ґ­вҐ-Є«ЁҐ­вҐ. ЌҐ¤®бв вЄЁ, бўп§ ­­лҐ б нвЁ¬ гбва ­Ґ­л ў ­®ў®©
ўҐабЁЁ OLE - OLE 2.0.

я1• а ЄвҐаЁбвЁЄ  вҐе­®«®ЈЁЁ OLE 2.0

1) Ќ®ў п ўҐабЁп OLE - OLE 2.0 ॠ«Ё§гҐв Є®­жҐЇжЁо
ўЁ§г «м­®Ј® । ЄвЁа®ў ­Ёп - । ЄвЁа®ў ­Ёп ­  ¬ҐбвҐ.
ЏаЁ«®¦Ґ­ЁҐ-бҐаўҐа § ЇгбЄ Ґвбп ЇаЁ  ЄвЁўЁ§ жЁЁ ®ЎкҐЄв , ­® ®­® Є Є
Ўл § ЇгбЄ Ґвбп ў ®Є­Ґ ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в . ЏаЁ«®¦Ґ­ЁҐ-Є«ЁҐ­в Є Є
Ўл ЇаҐўа й Ґвбп ў ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа. Ѓл«® ЇаЁ«®¦Ґ­ЁҐ-Є«ЁҐ­в,  
бв «® ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа. ‚ бва®Єг ¬Ґ­о ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в 
ўбва Ёў овбп Ї®§ЁжЁЁ ¬Ґ­о ЇаЁ«®¦Ґ­Ёп-бҐаўҐа , ­Ґ®Ўе®¤Ё¬лҐ ¤«п
। ЄвЁа®ў ­Ёп,  ­ «®ЈЁз­® б®Ј« б®ў ­­® Є®а४вЁаговбп Ё Ї ­Ґ«Ё
Ё­бва㬥­в®ў. Ђ Ї®«Ґ ¤®Єг¬Ґ­в -Є«ЁҐ­в  б ўЁ§г «м­л¬
ЇаҐ¤бв ў«Ґ­ЁҐ¬ а §«Ёз­ле ®ЎкҐЄв®ў ­Ґ Ёб祧 Ґв.

2) „агЈЁ¬ ­®ўиҐбвў®¬ ў ЋL… 2.0 пў«пҐвбп ў®§¬®¦­®бвм
ЇаЁ«®¦Ґ­Ёп ЇаҐ¤®бв ўЁвм ап¤ бў®Ёе дг­ЄжЁ© (­ ЇаЁ¬Ґа, Їа®ўҐаЄг
®ад®Ја дЁЁ) ¤«п ¤®бвгЇ  Ё§ ¤агЈЁе ЇаЁ«®¦Ґ­Ё© - OLE-Automation.
Њ®¤г«м, ўлЇ®«­пойЁ© ­г¦­го дг­ЄжЁо, ®д®а¬«пҐвбп ў ўЁ¤Ґ ®ЎкҐЄв 
ЋL… Ё ЇҐаҐ¤ Ґвбп ў ¤агЈ®Ґ ЇаЁ«®¦Ґ­ЁҐ.

Ђўв®¬ вЁ§ жЁп OLE ЇаҐ¤®бв ў«пҐв ў®§¬®¦­®бвЁ Ї® гЇа ў«Ґ­Ёо
®ЎкҐЄв ¬Ё, Є®в®алҐ а §¬Ґй овбп ў ¤агЈЁе ЇаЁ«®¦Ґ­Ёпе Ё«Ё ў DLL.
Ћ­  а Ў®в Ґв ­Ґ в®«мЄ® ў­Ґ Ја ­Ёж ЇаЁ«®¦Ґ­Ё©, ­® Ё ў­Ґ
Ја ­Ёж п§лЄ®ў Ё, ў Ўг¤г饬, ў­Ґ Ја ­Ёж ®в¤Ґ«м­®© ¬ иЁ­л.
Ђўв®¬ вЁ§ жЁп ўЄ«оз Ґв ў бҐЎп ‘…ђ‚…ђ›  ўв®¬ вЁ§ жЁЁ Ё
Љ‹€…Ќ’Ћ‚  ўв®¬ вЁ§ жЁЁ.
‘ҐаўҐа ®ЎҐбЇҐзЁў Ґв ў®§¬®¦­®бвЁ,   Є«ЁҐ­в Ї®«гз Ґв Є ­Ё¬
¤®бвгЇ. ‘ҐаўҐал ¤Ґ«пвбп ­  бҐаўҐал ў­гв७­Ґ© ®Ўа Ў®вЄЁ Ё ­ 
«®Є «м­лҐ бҐаўҐал. ‘ҐаўҐа ў­гв७­Ґ© ®Ўа Ў®вЄЁ - нв® DLL,
§ Јаг¦ Ґ¬ п ў  ¤аҐб­®Ґ Їа®бва ­бвў® Їа®Ја ¬¬л Є«ЁҐ­в . ‹®Є «м­лҐ
бҐаўҐал - нв®  ўв®­®¬­лҐ Їа®Ја ¬¬л.

я1Џа®бв®© Є«ЁҐ­в  ўв®¬ вЁ§ жЁЁ OLE

‘«Ґ¤гойЁ© ЇаЁ¬Ґа ®ЎҐбЇҐзЁў Ґв ¤®бвгЇ Ё§ ЇаЁ«®¦Ґ­Ёп Delphi
Є дг­ЄжЁп¬ Word.

Var
V : Variant;
Begin
V := CreateOleObject('Word.Basic');
V.FileNew('Normal');
V.Insert('Hello from Delphi!');
V.FileSaveAs('C:\SAMPLE.DOC');
End;

ќв®в Є®¤ ᮧ¤ Ґв ¤®Єг¬Ґ­в Word, ўбв ў«пҐв ў ­ҐЈ® бва®Єг Ё
б®еа ­пҐв ҐЈ®. ‚­Ґи­Ґ ўбҐ ®зҐ­м Їа®бв®, ­® §  ў­Ґи­Ґ© Їа®бв®в®©
бЄалв® ¬­®¦Ґбвў® б«®¦­Ґ©иЁе ¤Ґ©бвўЁ©.
‘«Ґ¤гҐв ®Ўа вЁвм ў­Ё¬ ­ЁҐ ­  вЁЇ ¤ ­­ле Variant Ё ­ 
¬Ґв®¤л FileNew, Insert, FileSaveAs, Є®в®алҐ пў«повбп ­Ґ
Їа®жҐ¤га ¬Ё Delphi,   ¬Ґв®¤ ¬Ё Word.
Љ Є ®бгйҐбвў«пҐвбп § ЇгбЄ Word. „«п нв®Ј® ®Їпвм вॡгҐвбп
॥бва.
Џ® б«®ў ¬ 'Word Basic' ў ॥бвॠ­ е®¤Ёвбп §­ зҐ­ЁҐ
бЇҐжЁ «м­®Ј® Ё¤Ґ­вЁдЁЄ в®а  CLSID. Џ® ­Ґ¬г ў н⮬ ¦Ґ ॥бваҐ
­ е®¤Ёвбп бва®Є  ЇаЁ¬Ґа­® б«Ґ¤го饣® ўЁ¤ : ‘:\WINWORD\WINWORD.EXE
/Automation. Џ® Є«озг /Automation Word ў®§ўа й Ґв ббл«Єг ­ 
®ЎкҐЄв  ўв®¬ вЁ§ жЁЁ, Ї®б«Ґ 祣® ®Є §лў овбп ¤®бвгЇ­л¬Ё ҐЈ®
¬Ґв®¤л.

я1Џа®бвлҐ бҐаўҐал  ўв®¬ вЁ§ жЁЁ OLE

‚ ЇаЁ«®¦Ґ­ЁЁ - бҐаўҐаҐ  ўв®¬ вЁ§ жЁЁ ¤®«¦Ґ­ Ўлвм ¬®¤г«м,
ᮤҐа¦ йЁ© б«Ґ¤го饥 ®Ўкпў«Ґ­ЁҐ:

Const
AutoClassInfo : TAutoClassInfo = (
AutoClass : TMyAuto; // €¬п Є« бб  ®ЎкҐЄв   ўв®¬ вЁ§ жЁЁ
ProgID : 'AutoProj.MyAuto'; // €¬п ЇаЁ«®¦Ґ­Ёп.€¬п ¬®¤г«п
ClassID : '{12345678-1234-1234-123456789ABC}';
Description : 'Sam';
Instancing : acMultiInstance);

Љ«о祢묨 н«Ґ¬Ґ­в ¬Ё пў«повбп ProgID Ё ClassID, Є®в®алҐ
Ї®Ї ¤ ов ў ॥бва (ॣЁбва жЁ®­­го Ў §г ¤ ­­ле) ЇаЁ ॣЁбва жЁЁ,
Є®в®а п ўлЇ®«­пҐвбп ЇаЁ § ЇгбЄҐ ЇаЁ«®¦Ґ­Ёп б Є«о祬 /regserver.
ClassID - б«гз ©­®Ґ зЁб«®,   зв®Ўл ­Ґ ббл« вмбп ­  в Є®Ґ б«®¦­®Ґ
зЁб«® ЁбЇ®«м§гҐвбп ProgID.


Instancing Ї®§ў®«пҐв ®аЈ ­Ё§®ў вм бҐаўҐа б ¤®бвгЇ®¬ Є
­Ґ¬г «ЁЎ® ­ҐбЄ®«мЄЁе Є«ЁҐ­в®ў ®¤­®ўаҐ¬Ґ­­®, «ЁЎ® ®¤­®Ј®, «ЁЎ®
ў­гв७­Ё© бҐаўҐа.

“б«гЈЁ, ЇаҐ¤®бв ў«пҐ¬лҐ бҐаўҐа®¬, ॠ«Ё§говбп ¬Ґв®¤ ¬Ё,
Ї®¬Ґй Ґ¬л¬Ё ў а §¤Ґ« Automated ®Ўкпў«Ґ­Ёп Є« бб :

TMyAuto = Class(TAutoObject)
Private
{Private declarations}
Automated
Procedure ShowDialog;
End {TMyAuto};

Procedure TMyAuto.ShowDialog;
Begin
ShowMessage('Hello!');
End {TMyAuto.ShowDialog};

Џа®жҐ¤га  ShowDialog ⥯Ґам ¤®бвгЇ­  Ё§ ЇаЁ«®¦Ґ­Ё©
Є«ЁҐ­в®ў, ўлЇ®«­пойЁе б«Ґ¤гойЁҐ ¤Ґ©бвўЁп:

Var
V : Variant;
Begin
V := CreateOleObject('AutoProj.MyAuto');
V.ShowDialog;
End;

3) џ¤а®¬ ЋL… 2.0 бв « бЇ®б®Ў еа ­Ґ­Ёп ¤ ­­ле ў б®бв ў­®¬
¤®Єг¬Ґ­вҐ. ‘®бв ў­®© ¤®Єг¬Ґ­в ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ­ Ў®а 
еа ­Ё«Ёй, ў Є ¦¤®¬ Ё§ Є®в®але ¬®¦Ґв ᮤҐа¦ вмбп ®ЎкҐЄв, ᮧ¤ ­­л©
ЇаЁ«®¦Ґ­ЁҐ¬-бҐаўҐа®¬. ‘ ¬® ЇаЁ«®¦Ґ­ЁҐ-Є«ЁҐ­в ­Ґ §­ Ґв бЇ®б®Ў 
еа ­Ґ­Ёп ®ЎкҐЄв , ᮧ¤ ­­®Ј® ¤агЈЁ¬ ЇаЁ«®¦Ґ­ЁҐ¬. Џ®н⮬㠯аЁ
б®еа ­Ґ­ЁЁ ¤®Єг¬Ґ­в  Є«ЁҐ­в Є Є Ўл "Їа®бЁв" бҐаўҐа б®еа ­Ёвм бў®Ё
®ЎкҐЄвл,   б ¬ ЇаҐ¤®бв ў«пҐв еа ­Ё«Ёй  ¤«п нв®Ј®. ЏаЁ н⮬ ®Ўй п
бвагЄвга  ®ЎкҐЄв  Ґ¤Ё­  ¤«п ўбҐе ЇаЁ«®¦Ґ­Ё©, Ї®¤¤Ґа¦Ёў ойЁе
Їа®в®Є®« ЋLE, Ё ўлЈ«п¤Ёв в Є Є Є Ўл«® Ї®Є § ­® а ­ҐҐ.

‘вагЄвгаЁа®ў ­­ п Ї ¬пвм - нв® ­®ў п вҐе­ЁЄ  ¤«п § ЇЁбЁ
®ЎкҐЄв®ў Ё«Ё ¤ ­­ле ­  ¤ЁбЄ. ќв  вҐе­ЁЄ  ®ЎҐбЇҐзЁў Ґв ўбҐ гб«гЈЁ,
Є®в®алҐ бгйҐбвўгов ў бв ­¤ ав­®¬ д ©«®ў®¬ ўў®¤Ґ/ўлў®¤Ґ. Њ®¦­®
§ ЇЁблў вм д ©«л ­  ¤ЁбЄ, ¬®¦­® ᮧ¤ ў вм Є в «®ЈЁ Ё Ї®¤Є в «®ЈЁ.
Ћв«ЁзЁҐ бвагЄвгаЁа®ў ­­®© Ї ¬пвЁ ®в бв ­¤ ав­®Ј® д ©«®ў®Ј®
ўў®¤ /ўлў®¤  § Є«оз Ґвбп ў ⮬, зв® Є ¦¤л© ­ Ў®а Є в «®Ј®ў Ё
д ©«®ў бвагЄвгаЁа®ў ­­®© Ї ¬пвЁ а §¬Ґй Ґвбп ў­гваЁ Ґ¤Ё­®Ј®
Ў®«ми®Ј® д ©« , Ї®¤®Ў­® ⮬г, Є Є ­ Ў®а в Ў«Ёж InterBase
а §¬Ґй Ґвбп ў­гваЁ Ґ¤Ё­®Ј® д ©«  GDB.
” ©« бвагЄвгаЁа®ў ­­®© Ї ¬пвЁ ­ §лў Ґвбп б®бв ў­л¬
д ©«®¬. Љ в «®ЈЁ ў­гваЁ нвЁе б®бв ў­ле д ©«®ў ­ §лў овбп
Ї®в®Є ¬Ё.
Ќ ЇаЁ¬Ґа, ўбҐ DOC-д ©«л ў ¤Ґ©б⢨⥫쭮бвЁ пў«повбп
д ©« ¬Ё бвагЄвгаЁа®ў ­­®© Ї ¬пвЁ.
‚®§¬®¦­® бвагЄвгаЁа®ў ­­ п Ї ¬пвм Ўг¤Ґв бв ­¤ ав­®©
д®а¬®© д ©«®ў®Ј® ўў®¤ /ўлў®¤  ў Ўг¤гйЁе Ћ‘.

я1ђ Ў®в  б® бвагЄвгаЁа®ў ­­®© Ї ¬пвмо

‘®бв ў­®© д ©« ᮧ¤ Ґвбп ўл§®ў®¬ дг­ЄжЁЁ
StgCreateDocFile, Є®в®а п ў®§ўа й Ґв ббл«Єг ­  Ё­вҐа䥩б­л©
®ЎкҐЄв IStorage. ќв®в ўл§®ў Є Є Ўл ᮧ¤ Ґв ­®ўл© зЁбвл© ¦ҐбвЄЁ©
¤ЁбЄ.

Ћб­®ў­лҐ ¬Ґв®¤л а Ў®вл б ®ЎкҐЄв®¬ IStorage:
CreateStream;
OpenStream;
CreateStorage;
OpenStorage;
€ ¤а.

„«п Ї®«г祭Ёп Ї®в®Є  ўл§лў Ґвбп ¬Ґв®¤ нв®Ј® ®ЎкҐЄв 
CreateStream, Є®в®ал© ў®§ўа й Ґв ббл«Єг ­  Ї®в®Є вЁЇ  IStream.
ќв®в ўл§®ў Є Є Ўл ᮧ¤ Ґв ­®ўл© д ©« ­  ¤ЁбЄҐ.
‚ Ї®в®Є ¬®¦­® ЇЁб вм ¤ ­­лҐ ¬Ґв®¤®¬ Write. —Ёв вм ¤ ­­лҐ
Ё§ Ї®в®Є  ¬®¦­® ¬Ґв®¤®¬ Read.

Ћб­®ў­лҐ ¬Ґв®¤л а Ў®вл б ®ЎкҐЄв®¬ IStream:
Read;
Write;
Seek;
€ ¤а.

‚ Є®­жҐ а Ў®вл б Ї®в®Є®¬ Ё Ї ¬пвмо Ёе ­ ¤® ®бў®Ў®¤Ёвм
¬Ґв®¤ ¬Ё Release.

‘гйҐбвўгҐв ¬­®¦Ґбвў® ०Ё¬®ў а Ў®вл б® бвагЄвгаЁа®ў ­­®©
Ї ¬пвмо, ®ЇаҐ¤Ґ«пҐ¬ле Є®­бв ­в ¬Ё, ЇҐаҐ¤ ў Ґ¬л¬Ё ў ўл§®ўл
StgCreateDocFile Ё CreateStream. ‚ з бв­®бвЁ ў®§¬®¦Ґ­ ०Ё¬ б
ва ­§ ЄжЁп¬Ё, ЇаЁ Є®в®а®¬ ¬®¦­® ®в¬Ґ­Ёвм १г«мв вл.

‘вагЄвгаЁа®ў ­­ п Ї ¬пвм - нв® ®зҐ­м § ¬ ­зЁў п бЁб⥬ ,
Є®Ј¤  вॡгҐвбп еа ­Ёвм ®зҐ­м ¬­®Ј® д ©«®ў. ќв  бЁб⥬  Ї®§ў®«пҐв
ўбҐ Ёе бЇапв вм ў­гваЁ ®¤­®Ј® д ©« .

4) „®Ї®«­ЁвҐ«м­лҐ ў®§¬®¦­®бвЁ OLE 2.0:

1) ђ §ўЁвЁҐ ¬Ґв®¤  Drag-and-Drop ¤«п ЇҐаҐ¬ҐйҐ­Ёп «оЎле
®ЎкҐЄв®ў ў­гваЁ «оЎле ®Є®­,   ­Ґ в®«мЄ® д ©«®ў Ё§ File Manager;
2) ‚®§¬®¦­®бвм ᮧ¤ ­Ёп ў«®¦Ґ­­ле ®ЎкҐЄв®ў;
3) ‚®§¬®¦­®бвм з бвЁз­®Ј® ­ бва Ёў ­Ёп бўп§Ґ© ЇаЁ
ЇҐаҐ¬ҐйҐ­ЁЁ ¤®Єг¬Ґ­в®ў Ё§ Є в «®Ј  ў Є в «®Ј;
4) ‚®§¬®¦­®бвм ўлЎ®а  бЇ®б®Ў  ў­Ґ¤аҐ­Ёп ®ЎкҐЄв  ў
§ ўЁбЁ¬®бвЁ ®в 楫Ё, зв® Ї®§ў®«пҐв нЄ®­®¬Ёвм Ї ¬пвм, ­ ЇаЁ¬Ґа,
¬®¦­® ў­Ґ¤аЁвм в Ў«Ёжг Ё§ Excel ў Word Є Є в Ў«Ёжг (¤«п  ЄвЁў­®Ј®
। ЄвЁа®ў ­Ёп),   ¬®¦­® - в®«мЄ® Є Є ЎЁв®ўл© ®Ўа § (в®«мЄ® ¤«п
®в®Ўа ¦Ґ­Ёп).

5) ‚­гв७­ЁҐ ¬Ґе ­Ё§¬л OLE 2.0

OLE 2.0 - нв® ­ Ў®а Ё­вҐа䥩ᮢ, Ї®§ў®«пойЁе Є«ЁҐ­вг Ё
бҐаўҐаг ®Ў¬Ґ­Ёў вмбп ¤ ­­л¬Ё. Џа®в®Є®« ®Ў¬Ґ­  ­ §лў Ґвбп UTD -
Uniform Data Transfer (“­ЁдЁжЁа®ў ­­ п ЇҐаҐ¤ з  ¤ ­­ле). UTD -
нв® а биЁаҐ­ЁҐ Їа®в®Є®«  ®Ў¬Ґ­  зҐаҐ§ Clipboard,
ЇаҐ¤гб¬ ваЁў о饥 ¬Ґе ­Ё§¬л 㢥¤®¬«Ґ­Ёп ®Ў Ё§¬Ґ­Ґ­ЁЁ ¤ ­­ле Ё
ЇҐаҐЈ®ў®ал ® д®а¬ в е.
ЏаЁ н⮬ ­Ґв ®Ја ­ЁзҐ­Ё© ­  а §¬Ґа ¤ ­­ле, в.Є. ¬®¦­®
ЇҐаҐ¤ ў вм Ё зҐаҐ§ ¤ЁбЄ, Ё«Ё Ї®«м§®ў вмбп ЇҐаҐ¤ зҐ© ббл«ЄЁ,   ­Ґ
б ¬Ёе ¤ ­­ле.
‘ ¬®Ґ ў ¦­®Ґ ў ¬Ґе ­Ё§¬ е OLE 2.0 - нв® ®вЄ § ®в Їа®в®Є®« 
DDE, ®б­®ў ­­®Ј® ­  ¬Ґе ­Ё§¬Ґ ЇҐаҐ¤ зЁ б®®ЎйҐ­Ё©, ў Ї®«м§г
Їа®в®Є®«  COM - Component Object Model, ®б­®ў ­­®Ј® ­  ¬Ґе ­Ё§¬Ґ
г¤ «Ґ­­ле Їа®жҐ¤га­ле ўл§®ў®ў - RPC Remote Procedure Call. COM -
нв® Їа®в®Є®« ­Ё§Є®Ј® га®ў­п OLE, ЇаҐ¤гб¬ ваЁў ойЁ© ­ Ў®а
бв ­¤ ав®ў ¤«п ॠ«Ё§ жЁЁ ®ЎкҐЄв®ў, бЇ®б®Ўл Є®¬¬г­ЁЄ жЁЁ ®ЎкҐЄв®ў
¤агЈ б ¤агЈ®¬ Ё ­ Ў®а дг­ЄжЁ© API.

‘ЋЊ - нв® вҐе­®«®ЈЁп, Є®в®а п «Ґ¦Ёв Ї®¤ OLE, ­® б ¬  ­Ґ
пў«пҐвбп з бвмо OLE.
‘ЋЊ - нв® бЇ®б®Ў ॠ«Ё§ жЁЁ ®ЎкҐЄв®ў ­  га®ў­Ґ Ћ‘. ќв®
®§­ з Ґв, зв® ®ЎкҐЄвл ‘ЋЊ ¬®Јгв Ўлвм Ё­вҐЈаЁа®ў ­л ў б ¬г Ћ‘ Ё
¤Ґ©бвў®ў вм ў Є зҐб⢥ ҐбвҐб⢥­­®Ј® ҐҐ а биЁаҐ­Ёп.
…б«Ё ®ЎкҐЄвл ‘ЋЊ а бЇ®« Ј овбп ў DLL, в® ®­Ё бв ­®ўпвбп
¤®бвгЇ­л¬Ё Ё§ а §«Ёз­ле п§лЄ®ў, в ЄЁ¬ ®Ўа §®¬ ®ЎкҐЄвл ‘ЋЊ
а §а Ў влў овбп ¤«п ЇаҐ®¤®«Ґ­Ёп Ја ­Ёж ¬Ґ¦¤г Їа®Ја ¬¬ ¬Ё,
п§лЄ ¬Ё, ®ЇҐа жЁ®­­л¬Ё бЁб⥬ ¬Ё Ё ¬ иЁ­ ¬Ё.
Љ®­Єг७в­л¬Ё вҐе­®«®ЈЁп¬Ё пў«повбп CORBA Ё SOM.

я1‘®§¤ ­ЁҐ DLL бҐаўҐа 

ЋЎкҐЄвл ‘ЋЊ ¬®Јгв а §¬Ґй вмбп «ЁЎ® ў DLL, «ЁЎ® ў
ЁбЇ®«­пҐ¬ле ¬®¤г«пе, Ё«Ё, б® ўаҐ¬Ґ­Ґ¬, ­  г¤ «Ґ­­ле ¬ иЁ­ е.
Љ®Ј¤  ®­Ё а §¬ҐйҐ­л ў DLL, в® Ё§ўҐбв­л Ї®¤ Ё¬Ґ­Ґ¬ бҐаўҐа®ў
ў­гв७­Ґ© ®Ўа Ў®вЄЁ. ЏаЁ а §¬ҐйҐ­ЁЁ ў­гваЁ ЁбЇ®«­пҐ¬®Ј® ¬®¤г«п,
Ёе ­ §лў в «®Є «м­л¬Ё бҐаўҐа ¬Ё. ЏаЁ а §¬ҐйҐ­ЁЁ ­  г¤ «Ґ­­®©
¬ иЁ­Ґ Ёе ­ §лў ов а бЇаҐ¤Ґ«Ґ­­л¬Ё ®ЎкҐЄв ¬Ё.

‚§ Ё¬®бўп§м га®ў­Ґ© ЇаҐ¤бв ў«Ґ­  ­Ё¦Ґ:

ЪДДДДДДДДДДДДДДДДДДДДДДДДДї
і‚Ё§г «м­®Ґ । ЄвЁа®ў ­ЁҐі
АДДДДДДДДДДДДДВДДДДДДДДДДДЩ
ЪДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДї
ЪДДДДБДДДДДї ЪДДДДБДДДДї ЪДДДДБДДДДї
і‘ўп§лў ­ЁҐі іDrag&Dropі і‚­Ґ¤аҐ­ЁҐі
АДДДДВДДДДДЩ АДДДДВДДДДЩ АДДДДВДДДДЩ
АДДДДДї і ЪДДДДЩ
ЪДДБДДДДДДДДДБДДДДДДДДДБї
і Uniform Data Transfer і
АДДДДДДДДДДДДВДДДДДДДДДДЩ
ЪДДДДДДДДДДДДДДБДДДДДДДДДДДДї
і‘вагЄвгаЁа®ў ­­лҐ еа ­Ё«Ёй і
АДДДДДДДДДДДДДДВДДДДДДДДДДДДЩ
ЪДДДДДДДДДДДДБДДДДДДДДДДї
іComponent Object Model і
АДДДДДДДДДДДДДДДДДДДДДДДЩ

6) ЏҐабЇҐЄвЁўл OLE

- OLE Ё§ б।бвў  ®Ў¬Ґ­  ¤ ­­л¬Ё ЇаҐўа вЁ«®бм ў б।бвў®
ў§ Ё¬®¤Ґ©бвўЁп ЇаЁ«®¦Ґ­Ё© Ё еа ­Ґ­Ёп ¤ ­­ле;
- ‚ Windows 95 OLE - нв® п¤а® ®ЎкҐЄв­®-®аЁҐ­вЁа®ў ­­®Ј®
Ї®«м§®ў вҐ«мбЄ®Ј® Ё­вҐа䥩б ;
- ‚ Windows NT OLE, ®б­®ў ­­ п ­  RPC, Ўг¤Ґв бҐвҐў®©
вҐе­®«®ЈЁҐ© OLE 3.0, Ї®§ў®«по饩 Є«ЁҐ­вг Ё бҐаўҐаг ­ е®¤Ёвмбп ­ 
а §­ле дЁ§ЁзҐбЄЁе ¬ иЁ­ е.

7) ЌҐ¤®бв вЄЁ OLE

- з१ўлз ©­® б«®¦­ п вҐе­®«®ЈЁп ¤«п а §а Ў®взЁЄ®ў;
- ­ҐЄ®в®а п ­Ґб®Ј« б®ў ­­®бвм ў Ё­вҐа䥩б е а §­ле
ЇаЁ«®¦Ґ­Ё©;
- ­ҐЄ®в®а®Ґ а б宦¤Ґ­ЁҐ ў Ї®­пвЁпе "®ЎкҐЄв " ў OLE Ё ЋЋЏ;
- ­Ґ­ блв­®бвм ў ®в­®иҐ­ЁЁ  ЇЇ а в­ле аҐбгаб®ў;
- ваг¤­®бвЁ ЇҐаҐў®¤  ­  бҐвҐўго вҐе­®«®ЈЁо, бўп§ ­­лҐ б
Ё§­ з «м­®© ®аЁҐ­вЁа®ў ­­®бвмо Їа®в®Є®«  UTD ­  ®¤Ё­®з­го ¬ иЁ­г,
Ё б®бв®пйЁҐ ў Ў®«миЁе ®ЎкҐ¬ е ЇҐаҐ¤ ў Ґ¬ле ¤ ­­ле.

я1’Ґе­®«®ЈЁп Їа®ҐЄвЁа®ў ­Ёп OLE-Є®­вҐ©­Ґа 

Љ Є 㦥 Ўл«® бЄ § ­®, а §а Ў®вЄ  ЇаЁ«®¦Ґ­Ёп, Ї®¤¤Ґа¦Ёў о饣®
Їа®в®Є®« OLE, пў«пҐвбп з१ўлз ©­® б«®¦­®© § ¤ зҐ©. ‘«®¦­®бвм
Ї®ўли Ґвбп, Ґб«Ё ®вбгвбвўгов ў­пв­лҐ ®ЇЁб ­Ёп нв®Ј® Їа®в®Є®« .
„«п в®Ј®, зв®Ўл Ё¬Ґвм ЇаҐ¤бв ў«Ґ­ЁҐ ® е а ЄвҐаҐ § ¤ з,
ў®§­ЁЄ ойЁе ЇаЁ ᮧ¤ ­ЁЁ OLE-ЇаЁ«®¦Ґ­Ёп, а бᬮваЁ¬ нв Їл ҐЈ®
ᮧ¤ ­Ёп ­  ЇаЁ¬ҐаҐ ᮧ¤ ­Ёп OLE-Є®­вҐ©­Ґа  ў Delphi. Delphi б
ҐЈ® б।бвў ¬Ё ўЁ§г «м­®Ј® Їа®ҐЄвЁа®ў ­Ёп Ё ­ Ў®а®¬ Ј®в®ўле
Є®¬Ї®­Ґ­в®ў ¤ Ґв ў®§¬®¦­®бвм е®вп Ўл ®Ў®§аҐвм нв Їл ᮧ¤ ­Ёп
OLE-ЇаЁ«®¦Ґ­Ёп.

1. ’аҐега®ў­Ґў п  ¤аҐб жЁп OLE-®ЎкҐЄв 

‚бЇ®¬­Ё¬ ваҐега®ў­Ґўго  ¤аҐб жЁо ¤ ­­ле ў Їа®в®Є®«Ґ DDE. ‚
OLE в Є¦Ґ Ї®¤¤Ґа¦Ёў Ґвбп ваҐега®ў­Ґў п  ¤аҐб жЁп ®ЎкҐЄв®ў
б«Ґ¤го饣® ўЁ¤ :
1. Љ« бб OLE-®ЎкҐЄв  ®ЇаҐ¤Ґ«пҐв ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа, Є®в®а®Ґ
ᮧ¤ «® OLE-®ЎкҐЄв. Љ« бб ¤®«¦Ґ­ Ўлвм ®ЇаҐ¤Ґ«Ґ­ Є Є ¤«п
бўп§ ­­®Ј®, в Є Ё ¤«п ўбв஥­­®Ј® ®ЎкҐЄв .
2. „®Єг¬Ґ­в OLE-®ЎкҐЄв  ®ЇаҐ¤Ґ«пҐв д ©«-Ёбв®з­ЁЄ, Є®в®ал©
ᮤҐа¦Ёв ¤ ­­лҐ ¤«п ®ЎкҐЄв . „®Єг¬Ґ­в ¤®«¦Ґ­ Ўлвм ®ЇаҐ¤Ґ«Ґ­
®Ўп§ вҐ«м­® в®«мЄ® ¤«п бўп§ ­­®Ј® ®ЎкҐЄв .
3. ќ«Ґ¬Ґ­в (item) OLE-®ЎкҐЄв  ®ЇаҐ¤Ґ«пҐв, Є Є п з бвм
OLE-¤®Єг¬Ґ­в  ᮤҐа¦Ёв ¤ ­­лҐ ¤«п бўп§лў ­Ёп Ё«Ё ўбва Ёў ­Ёп.
ќ«Ґ¬Ґ­в ЁбЇ®«м§гҐвбп Ґб«Ё ­Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм ¬Ґ­миго з бвм
¤ ­­ле, 祬 жҐ«л© д ©« ¤®Єг¬Ґ­в .

2. ЋЎй п е а ЄвҐаЁбвЁЄ  вҐе­®«®ЈЁЁ ᮧ¤ ­Ёп OLE-Є«ЁҐ­в 

‘гвм ᮧ¤ ­Ёп ЇаЁ«®¦Ґ­Ёп OLE-Є«ЁҐ­в  б®бв®Ёв ў ¤®Ў ў«Ґ­ЁЁ ў
д®а¬г - Ј« ў­®Ґ ®Є­® ЇаЁ«®¦Ґ­Ёп, бЇҐжЁ «м­®Ј® ­ҐўЁ§г «м­®Ј®
Є®¬Ї®­Ґ­в  TOLEContainer, ЎҐаг饣® ­  бҐЎп ўбҐ дг­ЄжЁЁ Ї®
§ Јаг§ЄҐ Ё б®еа ­Ґ­Ёо ®ЎкҐЄв®ў,   в Є¦Ґ Ї®¤¤Ґа¦Ёў о饣®
ў­гв७­ЁҐ Їа®в®Є®«л OLE, Є®в®алҐ ­ЁЈ¤Ґ ­Ґ ¤®Єг¬Ґ­вЁа®ў ­л, Ё
Ї®н⮬г б«®¦­л ¤«п Ё§г祭Ёп. €¬Ґ­­® Ї®н⮬㠭 и а ббЄ § ЈаҐиЁв
⥭¤Ґ­жЁҐ© Є ®ЇЁб вҐ«м­®¬г га®ў­о а бᬮв७Ёп OLE.

Ља вЄ® Ё¤Ґп ўлЈ«п¤Ёв б«Ґ¤гойЁ¬ ®Ўа §®¬. Џ®бв஥­ЁҐ OLE
ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в  бўп§ ­® б Ї®¬ҐйҐ­ЁҐ¬ Є®¬Ї®­Ґ­в  OleContainer
­  д®а¬г. Џ®¬ҐйҐ­ЁҐ ­®ў®Ј® ®ЎкҐЄв  бўп§ ­® б ўл§®ў®¬ ¬Ґв®¤ 
InsertObjectDialog,   бзЁвлў ­ЁҐ ®ЎкҐЄв  Ё§ Clipboard - б ўл§®ў®¬
¬Ґв®¤  PasteSpecialDialog.
ЌҐ«м§п Їа®бв® ўбв ўЁвм «оЎ®© д ©« ў Є®­вҐ©­Ґа. ‚бв ўЁвм
¬®¦­® в®«мЄ® д ©«, Є®в®ал© бўп§лў Ґвбп бЁб⥬®© б бҐаўҐа®¬ OLE.
ЏаЁ Ё­бв ««пжЁЁ ЇаЁ«®¦Ґ­ЁҐ, ®Ў« ¤ о饥 ў®§¬®¦­®бвп¬Ё бҐаўҐа 
ॣЁбваЁагҐвбп ў ђҐҐбвॠбЁб⥬л.
„Ґ©бвўЁп, Є®в®алҐ ¬®Јгв ўлЇ®«­Ґ­л б ®ЎкҐЄв®¬ OLE,
®ЇЁблў овбп ў ђҐҐбвॠў а §¤Ґ«Ґ VERB. Ќ ЇаЁ¬Ґа, ¤«п ®ЎкҐЄв 
mplayer в ЄЁ¬Ё ¤Ґ©бвўп¬Ё пў«повбп: Edit, Play, Open.
ќвЁ ¤Ґ©бвўЁп еа ­пвбп ў бў®©б⢥ ObjectVerbs Є®­вҐ©­Ґа .

€в Є, нв®в Є®¬Ї®­Ґ­в Ї®¬Ґй Ґвбп ў д®а¬г. „«п § Јаг§ЄЁ
Є®¬Ї®­Ґ­в  ®ЎкҐЄв®¬ бгйҐбвўгов бЇҐжЁ «м­лҐ дг­ЄжЁЁ, ўл§®ў Є®в®але
б®Їа®ў®¦¤ Ґвбп ®вЄалвЁҐ¬ ᮮ⢥вбвўго饣® ¤Ё «®Ј®ў®Ј® ®Є­ .
ќвЁ дг­ЄжЁЁ аҐи ов б«Ґ¤гойЁҐ § ¤ зЁ Ї® § Јаг§ЄҐ:
- ᮧ¤ ­ЁҐ ­®ў®Ј® ®ЎкҐЄв ;
- з⥭ЁҐ ®ЎкҐЄв  Ё§ Clipboard;
- ЇҐаҐв бЄЁў ­ЁҐ ®ЎкҐЄв  Ё§ бҐаўҐа .
‡ Јаг§Є  Є®¬Ї®­Ґ­в  б Ї®¬®ймо ®¤­®Ј® Ё§ ЇҐаҐзЁб«Ґ­­ле
ў аЁ ­в®ў б®Їа®ў®¦¤ Ґвбп гбв ­®ўЄ®© в ЄЁе бў®©бвў Є®¬Ї®­Ґ­в  Є Є
Љ« бб, „®Єг¬Ґ­в Ё ќ«Ґ¬Ґ­в.

‘гйҐбвўгҐв ¤ў  ў аЁ ­в  ­ бва®©ЄЁ бў®©бвў Є®¬Ї®­Ґ­в  - ­ 
нв ЇҐ Їа®ҐЄвЁа®ў ­Ёп ЇаЁ«®¦Ґ­Ёп Ё ­  нв ЇҐ ўлЇ®«­Ґ­Ёп.

Ќ  нв ЇҐ Їа®ҐЄвЁа®ў ­Ёп, ­ е®¤пбм ў б।Ґ а §а Ў®вЄЁ Delphi,
 ЄвЁўЁ§ жЁп бў®©бвў Љ« бб, „®Єг¬Ґ­в Ё ќ«Ґ¬Ґ­в ЇаЁў®¤Ёв Є ®вЄалвЁо
¤Ё «®Ј®ўле ®Є®­, ў Є®в®але ЇаҐ¤« Ј Ґвбп ўлЎа вм вЁЇ OLE-®ЎкҐЄв  -
­®ўл© Ё«Ё бгйҐбвўгойЁ©,   в Є¦Ґ Є« бб, ¤®Єг¬Ґ­в Ё н«Ґ¬Ґ­в.
Ќ  нв ЇҐ ўлЇ®«­Ґ­Ёп ЇаЁ«®¦Ґ­Ёп Ї®¤е®¤пйЁҐ дг­ЄжЁЁ ўл§лў овбп
Їг⥬  ЄвЁўЁ§ жЁЁ ᮮ⢥вбвўгойЁе Їг­Єв®ў ¬Ґ­о.

ЏаЁ ўлЎ®аҐ ЋЉ ў ᮮ⢥вбвўго饬 ¤Ё «®Ј®ў®¬ ®Є­Ґ ўл§лў Ґвбп
ЇаЁ«®¦Ґ­ЁҐ-бҐаўҐа, ў Є®в®а®¬ ᮧ¤ Ґвбп ­®ўл© ®ЎкҐЄв, Ё«Ё Є®в®а®¬г
ЇҐаҐ¤ Ґвбп бгйҐбвўгойЁ© ¤®Єг¬Ґ­в-Ёбв®з­ЁЄ, ў § ўЁбЁ¬®бвЁ ®в
ўлЎа ­­ле ®ЇжЁ© ў ¤Ё «®Ј®ў®¬ ®Є­Ґ. Џ®б«Ґ । ЄвЁа®ў ­Ёп ®ЎкҐЄв 
¬®¦­® ўл©вЁ Ё§ бҐаўҐа ,   ў Є®¬Ї®­Ґ­вҐ-Є®­вҐ©­ҐаҐ
ЇаЁ«®¦Ґ­Ёп-Є«ЁҐ­в  ®Є ¦Ґвбп б®еа ­Ґ­л¬ ®в। ЄвЁа®ў ­­л© ®ЎкҐЄв.

я23. ЊҐв®¤ЁЄ  ᮧ¤ ­Ёп ЇаЁ«®¦Ґ­Ёп б OLE-Є®­вҐ©­Ґа®¬

ЊҐв®¤ЁЄ  ᮧ¤ ­Ёп ЇаЁ«®¦Ґ­Ёп б OLE-Є®­вҐ©­Ґа®¬ ўЄ«оз Ґв ў
ᥡп б«Ґ¤гойЁҐ нв Їл.
1. ‘®§¤ ­ЁҐ д®а¬л б MDI - ¬­®Ј®¤®Єг¬Ґ­в­л¬ Ё­вҐа䥩ᮬ.
2. ђ §а Ў®вЄ  Їа®жҐ¤гал ўбв ўЄЁ ®ЎкҐЄв®ў.
3. ђ §а Ў®вЄ  Їа®жҐ¤гал ЇҐаҐ­®б  ®ЎкҐЄв®ў Ё§ Clipboard.
4. ђ §а Ў®вЄ  Їа®жҐ¤гал ЇҐаҐв бЄЁў ­Ёп ®ЎкҐЄв®ў.
5. ђ §а Ў®вЄ  Їа®жҐ¤га Ї®¤¤Ґа¦ЄЁ еа ­Ґ­Ёп ®ЎкҐЄв®ў ў д ©« е.

я11. ‘®§¤ ­ЁҐ д®а¬л б MDI - ¬­®Ј®¤®Єг¬Ґ­в­л¬ Ё­вҐа䥩ᮬ

Њ­®Ј®¤®Єг¬Ґ­в­л© Ё­вҐа䥩б - нв® б।бвў®, Ї®§ў®«по饥 ў
ЇаЁ«®¦Ґ­ЁЁ ®вЄалў вм ¬­®Ј® ¤®Єг¬Ґ­в®ў-д ©«®ў, Є ¦¤л© б бў®Ґ¬
®Є­Ґ. ЋЄ­ , Є®в®алҐ ¤®Ў ў«повбп ў ЇаЁ«®¦Ґ­ЁҐ ЇаЁ ®вЄалвЁЁ Є ¦¤®Ј®
¤®Єг¬Ґ­в , ­ §лў овбп ¤®зҐа­Ё¬Ё.
‘®§¤ ­ЁҐ MDI-ЇаЁ«®¦Ґ­Ёп - Їа®бв п § ¤ з  ¤«п Delphi.
„®бв в®з­® бў®©бвўг FormStyle Ј« ў­®Ј® ®Є­  ЇаЁ«®¦Ґ­Ёп ЇаЁ¤ вм
§­ зҐ­ЁҐ fsMDIForm, § вҐ¬ ¤®Ў ўЁвм ­®ўго д®а¬г ў ЇаЁ«®¦Ґ­ЁҐ,
бў®©бвўг FormStyle Є®в®а®© ЇаЁ¤ вм §­ зҐ­ЁҐ fsMDIChild.
‚ ¤®зҐа­оо д®а¬г ­Ґ®Ўе®¤Ё¬® ¤®Ў ўЁвм Є®¬Ї®­Ґ­в TOleConteiner.
„ ¤Ё¬ б«Ґ¤гойЁҐ Ё¬Ґ­  ўўҐ¤Ґ­­л¬ ®ЎкҐЄв ¬:
- Ј« ў­®© д®а¬Ґ - OLEFrameForm : TOLEFrameForm;
- ¤®зҐа­Ґ© д®а¬Ґ - OLEObjectForm : TOLEObjectForm;
- OLE-Є®­вҐ©­Ґаг - OleContainer : TOLEContainer.

ђ §а Ў®вЄ  ¬Ґ­о ЇаЁ«®¦Ґ­Ёп

ЋЎкҐЄв­®-®аЁҐ­вЁа®ў ­­®Ґ ЇаЁ«®¦Ґ­ЁҐ, ­ зЁ­ п б Turbo Vision
DOS, а Ў®в Ґв б«Ґ¤гойЁ¬ ®Ўа §®¬. ‘®§¤ Ґвбп ¬Ґ­о ЇаЁ«®¦Ґ­Ёп, Є
Ї®§ЁжЁп¬ Є®в®а®Ј® "ЇаЁўп§лў овбп" Їа®жҐ¤гал. ЏаЁ ўлЎ®аҐ
­Ґ®Ўе®¤Ё¬®© Ї®§ЁжЁЁ ¬Ґ­о ўл§лў Ґвбп ᮮ⢥вбвўгой п Їа®жҐ¤га .
‚ ­ иҐ¬ б«гз Ґ ¬Ґ­о ЇаЁ«®¦Ґ­Ёп ¬®¦Ґв Ї®¤ўҐаЈ­гвмбп
ва ­бд®а¬ жЁЁ Їг⥬ ¤Ё­ ¬ЁзҐбЄ®Ј® ¤®Ў ў«Ґ­Ёп ў ­ҐЈ® Ї®§ЁжЁ©.
‚®-ЇҐаўле, ®­® ва ­бд®а¬ЁагҐвбп ЇаЁ ®вЄалвЁЁ ¤®зҐа­ҐЈ® ®Є­ .
‚®-ўв®але, ®­® ва ­бд®а¬ЁагҐвбп ЇаЁ  ЄвЁўЁ§ жЁЁ бҐаўҐа ,
Ї®¤¤Ґа¦Ёў о饣® OLE 2.0.

Џ®§ЁжЁЁ, ў Є®в®алҐ ў­Ґ¤аповбп ­®ўлҐ н«Ґ¬Ґ­вл ¬Ґ­о ¤®зҐа­Ёе
®Є®­ Ё бҐаўҐа , ®ЇаҐ¤Ґ«повбп бў®©бвў®¬ ¬Ґ­о GroupIndex. ќ«Ґ¬Ґ­вл

бв а®Ј® ¬Ґ­о ¬®Јгв Ўлвм "§ вҐавл",   ¬®Јгв Ўлвм б¤ўЁ­гвл. …б«Ё
ЈагЇЇ®ўлҐ Ё­¤ҐЄбл б®ўЇ ¤ ов, в® н«Ґ¬Ґ­вл ¬Ґ­о бҐаўҐа  § ¬Ґй ов
ᮮ⢥вбвўгойЁҐ н«Ґ¬Ґ­вл ¬Ґ­о Є®­вҐ©­Ґа . ќ«Ґ¬Ґ­вл ¬Ґ­о б
Ў®«миЁ¬Ё Ё­¤ҐЄб ¬Ё а §¬Ґй овбп Їа ўҐҐ ў бва®ЄҐ ¬Ґ­о.

ЊҐ­о Ј« ў­®Ј® ®Є­ : File
New
Open
c GroupIndex = 0.

ЊҐ­о ¤®зҐа­Ёе ®Є®­: File Edit Object
New Insert Deactivate
Open Paste
Save
б GroupIndex = 0, 1, 2 ᮮ⢥вб⢥­­®.

ђҐ ЄжЁп ­  ўлЎ®а н«Ґ¬Ґ­в  ¬Ґ­о File|New ®ЇЁблў Ґвбп
б«Ґ¤гойЁ¬Ё ¬Ґв®¤ ¬Ё:

function TOLEFrameForm.CreateChild: TOLEObjectForm;
begin
CreateChild := TOLEObjectForm.Create(Self);
end;
procedure TOLEFrameForm.New1Click(Sender: TObject);
begin
CreateChild
end;
ђҐ ЄжЁЁ ­  ўлЎ®а ¤агЈЁе н«Ґ¬Ґ­в®ў ¬Ґ­о - ­Ё¦Ґ.

я12. ђ §а Ў®вЄ  Їа®жҐ¤гал ўбв ўЄЁ ®ЎкҐЄв®ў

‚бв ўЁвм ®ЎкҐЄв ¬®¦­®, ўлЎа ў Їг­Єв ¬Ґ­о Edit|Insert. ‚
Є зҐб⢥ ॠЄжЁЁ ­  ўлЎ®а ᮧ¤ ¤Ё¬ б«Ґ¤гойго Їа®жҐ¤гаг:

procedure TOLEObjectForm.InsertObject1Click(Sender: TObject);
var
Info: Pointer;
begin
if InsertOLEObjectDlg(OLEFrameForm, 0, Info) then

InitializeOLEObject(Info);
end;

ЏаЁ ўл§®ўҐ нв®© Їа®жҐ¤гал ўлЇ®«­пҐвбп бЇҐжЁ «м­ п ¤Ё «®Ј®ў п
дг­ЄжЁп:

function InsertOLEObjectDlg(Form:TForm;HelpContext:THelpContext;
Var PInitInfo:Pointer).

ќв  дг­ЄжЁп ®вЄалў Ґв бЇҐжЁ «м­®Ґ ¤Ё «®Ј®ў®Ґ ®Є­®,
Ї®§ў®«по饥 ўлЎа вм вЁЇ OLE-®ЎкҐЄв  ¤«п ўбв ўЄЁ, ­ ЇаЁ¬Ґа, Audio
Recorder, Bitmap Image, Video Clip, Wave Sound Ё в.¤.
‘ ¬®Ґ ў ¦­®Ґ - нв® в®, зв® ў б«гз Ґ ўлЎ®а  вЁЇ  ®ЎкҐЄв ,
дг­ЄжЁп ᮧ¤ Ґв бвагЄвгаг ¤ ­­ле ¤«п Ё­ЁжЁ «Ё§ жЁЁ OLE-Є®­вҐ©­Ґа 
Ё ў®§ўа й Ґв гЄ § вҐ«м ­  нвг бвагЄвгаг ў ЇҐаҐ¬Ґ­­®© Info. ќв 
бвагЄвга  ­Ґ ¤®Єг¬Ґ­вЁа®ў ­ .
€­ЁжЁ «Ё§ жЁп OLE-Є®­вҐ©­Ґа  Їа®Ёб室Ёв, Є®Ј¤  гЄ § вҐ«м ­ 
®ЇЁб ­­го бвагЄвгаг ЇҐаҐ¤ Ґвбп бў®©бвўг PInitInfo Є®¬Ї®­Ґ­в 
OLE-Є®­вҐ©­Ґа .

‚ ­ иҐ¬ ЇаЁ¬ҐаҐ нв® Їа®Ёбў®¤Ёвбп б Ї®¬®ймо Їа®жҐ¤гал
IntializeOLEObject, Є®в®а п Ё¬ҐҐв б«Ґ¤го饥 ®ЇЁб ­ЁҐ:

procedure TOLEObjectForm.InitializeOLEObject(Info: Pointer);
begin
OLEContainer.PInitInfo := Info;
ReleaseOLEInitInfo(Info) {®бў®Ў®¦¤Ґ­ЁҐ Ї ¬пвЁ}
end;

ЏаЁ Ё­ЁжЁ «Ё§ жЁЁ гбв ­ ў«Ёў овбп бў®©бвў  Є®¬Ї®­Ґ­в 
OLE-Є®­вҐ©­Ґа  ObjClass, ObjDoc, ObjItem ў ᮮ⢥вбвўЁҐ б
б®бв®п­ЁҐ¬ ¤Ё «®Ј®ў®Ј® ®Є­  ўбв ўЄЁ ®ЎкҐЄв .

ЏаЁ Ё­ЁжЁ «Ё§ жЁЁ OLE-Є®­вҐ©­Ґа   ЄвЁўЁ§ЁагҐвбп OLE-бҐаўҐа Ё
ЎҐаҐв ­  ᥡп гЇа ў«Ґ­ЁҐ, Ґб«Ё ®ЎкҐв 㦥 бгйҐбвў®ў «, в® ®­
ЇҐаҐ¤ Ґвбп ў бҐаўҐа. Џ®«м§®ў вҐ«м ⥯Ґам ¬®¦Ґв । ЄвЁа®ў вм
®ЎкҐЄв Є Є е®зҐв.

Џ®б«Ґ § ўҐа襭Ёп а Ў®вл б ®ЎкҐЄв®¬, ҐЈ® ­Ґ®Ўе®¤Ё¬®
¤Ґ ЄвЁўЁа®ў вм. „Ґ ЄвЁўЁ§ жЁп Їа®Ё§ў®¤Ёвбп б¤ўЁЈ®¬ д®Єгб  Є
¤агЈЁ¬ ®ЎкҐЄв ¬ ЇаЁ«®¦Ґ­Ёп. ‚ ®ЎйҐ¬ б«гз Ґ ¤«п ¤Ґ ЄвЁў жЁЁ
®ЎкҐЄв , ­Ґ®Ўе®¤Ё¬® гбв ­®ўЁвм бў®©бвў® Active OLE-Є®­вҐ©­Ґа  ў
б®бв®п­ЁҐ False. ‚ ЇаЁ¬ҐаҐ нв® ¤Ґ« Ґв б«Ґ¤гой п Їа®жҐ¤га ,
ўл§лў Ґ¬ п Ё§ ¬Ґ­о Object|Deactivate:

procedure TOLEObjectForm.Deactivate1Click(Sender: TObject);
begin
OLEContainer.Active := False
end;

я13. ђ §а Ў®вЄ  Їа®жҐ¤гал ЇҐаҐ­®б  ®ЎкҐЄв®ў Ё§ Clipboard

ЌҐЄ®в®алҐ OLE-бҐаўҐал Ї®§ў®«пов Ї®«м§®ў вҐ«о Є®ЇЁа®ў вм
OLE-®ЎкҐЄвл ў Clipboard. ’®Ј¤  ЇаЁ«®¦Ґ­ЁҐ OLE-Є®­вҐ©­Ґа Ё¬ҐҐв
ў®§¬®¦­®бвм Ї®«гзЁвм Ё§ Clipboard-  нв®в ®ЎкҐЄв.
„«п нв®Ј® ­Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм бЇҐжЁ «м­го дг­ЄжЁо,
®вЄалў ойго ЇаЁ ўл§®ўҐ бЇҐжЁ «м­®Ґ ¤Ё «®Ј®ў®Ґ ®Є­® ўбв ўЄЁ
®ЎкҐЄв®ў Ё Ё¬Ґойго б«Ґ¤го饥 ®ЇЁб ­ЁҐ:

Function PasteSpecialDlg(Form : TForm;
Const Fmt : Array of BOLEFormat;
HelpContext : THelpContext;
Var Format : Word;
Var Handle : THandle;
Var PInitInfo : Pinter) : Boolean;
Ј¤Ґ Form - д®а¬ , ў« ¤Ґой п OLE-Є®­вҐ©­Ґа®¬;
Fmt - ¬ ббЁў § аҐЈЁбваЁа®ў ­­ле д®а¬ в®ў ®ЎкҐЄв®ў;
HelpContext - ббл«Є  ­  а §¤Ґ« Є®­вҐЄбв­®© Ї®¬®йЁ;
Format - ўлЎа ­­л© вЁЇ д®а¬ в  ¤ ­­ле ў Clipboard;
Handle - ббл«Є  ­  ¤ ­­лҐ ў Clipboard-Ґ;
PInitInfo - гЄ § вҐ«м ­  бвагЄвгаг ¤ ­­ле ¤«п Ё­ЁжЁ «Ё§ жЁЁ
OLE-Є®­вҐ©­Ґа .

ђ бᬮваЁ¬ Ў®«ҐҐ Ї®¤а®Ў­® ¬ ббЁў § аҐЈЁбваЁа®ў ­­ле д®а¬ в®ў
OLE-®ЎкҐЄв®ў.

ђ §¬Ґа­®бвм нв®Ј® ¬ ббЁў  ®ЇаҐ¤Ґ«пҐвбп Є®«ЁзҐбвў®¬ д®а¬ в®ў
Clipboard- , Є®в®алҐ ¤®«¦­л ў®бЇаЁ­Ё¬ вмбп OLE-Є®­вҐ©­Ґа®¬. ‚
­ иҐ¬ б«гз Ґ ¬л Ї« ­Ёа㥬, зв®Ўл Є®­вҐ©­Ґа ў®бЇаЁ­Ё¬ « ¤ў 
д®а¬ в  - бўп§ ­­лҐ ®ЎкҐЄвл Ё ўбв஥­­лҐ ®ЎкҐЄвл, Ї®н⮬㠬 ббЁў
д®а¬ в®ў, ЇҐаҐ¤ ў Ґ¬л© дг­ЄжЁЁ PasteSpecialDlg, ¬®¦Ґв Ё¬Ґвм
б«Ґ¤гойЁ© ўЁ¤:
Fmts : Array[0..1] Of BOLEFormat.

’ЁЇ BOLEFormat Ё¬ҐҐв б«Ґ¤гойго бвагЄвгаг:
Type
BOLEFormat = Record
fmtId : Word; {Ё¤Ґ­вЁдЁЄ в®а д®а¬ в }
fmtName : Array[0..31] Of Char; {Ё¬п вЁЇ  ®ЎкҐЄв ,
Є®в®а®Ґ д®а¬ЁагҐв бҐаўҐа, ­ ЇаЁ¬Ґа, 'Paintbrush Picture Object' Ё
Є®в®а®Ґ Ї®пў«пҐвбп ў бЇЁбЄҐ ў®§¬®¦­ле вЁЇ®ў ®ЎкҐЄв®ў ў ¤Ё «®Ј®ў®¬
®Є­Ґ}
fmtResultName : Array[0..31] Of Char; {१г«мвЁаго饥 Ё¬п
вЁЇ  ®ЎкҐЄв , Ї®пў«по饥бп ў Ї®«Ґ १г«мвЁаго饣® Ё¬Ґ­Ё ў
¤Ё «®Ј®ў®¬ ®Є­Ґ}
fmtIsLinkable : Boolean; {true - ¤«п бўп§ ­­®Ј® ®ЎкҐЄв ;
false - ¤«п ўбв஥­­®Ј®}
fmtMedium : BOLEMeduium; {зЁб«Ґ­­ п Є®­бв ­в  ¤«п
®ЇаҐ¤Ґ«Ґ­Ёп вЁЇ  ¤ ­­ле ®ЎкҐЄв , ¬.Ў. BOLE_MED_STREAM - ¤«п
бўп§ ­­®Ј® ®ЎкҐЄв  Ё«Ё BOLE_MED_STORAGE - ¤«п ўбв஥­­®Ј®
®ЎкҐЄв . „«п ўлзЁб«Ґ­Ёп ЁбЇ®«м§гҐвбп дг­ЄжЁп BOLEMediumCalc}
End {BOLEFormat};

ќвЁ д®а¬ вл ¤®«¦­л Ўлвм § аҐЈЁбваЁа®ў ­л ў Clipboard-Ґ.
ђҐЈЁбва жЁп д®а¬ в®ў б®бв®Ёв ў ўл§®ўҐ бЇҐжЁ «м­®© дг­ЄжЁЁ,
Є®в®а®© ЇҐаҐ¤ Ґвбп бва®Є  б ­ §ў ­ЁҐ¬ д®а¬ в ,   ў®§ўа й Ґвбп
Ё¤Ґ­вЁдЁЄ в®а § аҐЈЁбваЁа®ў ­­®Ј® д®а¬ в . ЏаЁ¬Ґал ўл§®ў  дг­ЄжЁЁ
ॣЁбва жЁЁ ЇаҐ¤бв ў«Ґ­ ­Ё¦Ґ:

FLinkClipFmt := RegisterClipboardFormat('Link Source');
FEmbedClipFmt := RegisterClipboardFormat('Embedded Object');
Ј¤Ґ FLinkClipFmt Ё FEmbedClipFmt - ЇҐаҐ¬Ґ­­лҐ вЁЇ  Word, ў
Є®в®алҐ ў®§ўа й овбп Ё¤Ґ­вЁдЁЄ в®ал д®а¬ в®ў Ї®б«Ґ
ॣЁбва жЁЁ.

Џ®б«Ґ ॣЁбва жЁЁ ­Ґ®Ўе®¤Ё¬® § Ї®«­Ёвм ¬ ббЁў д®а¬ в®ў.

ђҐЈЁбва жЁп д®а¬ в®ў Ё § Ї®«­Ґ­ЁҐ ¬ ббЁў  д®а¬ в®ў ¤®«¦­л
Ўлвм Їа®Ё§ўҐ¤Ґ­л ­  ­ з «м­®¬ нв ЇҐ а Ў®вл ЇаЁ«®¦Ґ­Ёп-Є®­вҐ©­Ґа .
Џ®н⮬г нвЁ ¤Ґ©бвўЁп ¬®Јгв Ўлвм Ї®¬ҐйҐ­л ў Їа®жҐ¤гаг, ўл§лў Ґ¬го
ЇаЁ ᮧ¤ ­ЁЁ Ј« ў­®© д®а¬л, ­ ЇаЁ¬Ґа:

procedure TOLEFrameForm.FormCreate(Sender:TObject)
begin
FLinkClipFmt := RegisterClipboardFormat('Link Source');
FEmbedClipFmt := RegisterClipboardFormat('Embedded Object');
Fmts[0].fmtId := FEmbedClipFmt;
Fmts[0].fmtMedium := BOLEMediumCalc(FEmbedClipFmt);
Fmts[0].fmtIsLinkable := False;
StrPCopy(Fmts[0].fmtName,'%s');
StrPCopy(Fmts[0].fmtResultName,'%s');
Fmts[0].fmtId := FLinkClipFmt;
Fmts[0].fmtMedium := BOLEMediumCalc(FLinkClipFmt);
Fmts[0].fmtIsLinkable := True;
StrPCopy(Fmts[0].fmtName,'%s');
StrPCopy(Fmts[0].fmtResultName,'%s');
end;

Џ®б«Ґ ॣЁбва жЁЁ д®а¬ в®ў Ё § Ї®«­Ґ­Ёп ¬ ббЁў , ®ЇЁблў ойҐ-
Ј® д®а¬ вл, ў®§¬®¦­® ®бгйҐбвў«Ґ­ЁҐ ўбв ўЄЁ ®ЎкҐЄв  Ё§ Clipboard.
„«п нв®Ј® Ё§ Їг­Єв  ¬Ґ­о Edit|Paste ¬®¦­® ўл§лў вм б«Ґ¤гойго Їа®-
楤гаг:

procedure TOLEObjectForm.PasteSpecial1Click(Sender: TObject);
var
ClipFmt : Word;
DataHand : THandle;
Info : Pointer;
begin
if PasteSpecialEnabled(Self, OLEFrameForm.Fmts) then begin
if PasteSpecialDlg(Self, OLEFrameForm.Fmts, 0,
ClipFmt, DataHand, Info) then begin
InitializeOLEObject(Info);
end;
end;
end;
‡¤Ґбм дг­ЄжЁп PasteSpecialEnabled б­ з «  Їа®ўҐапҐв, Ґбвм «Ё
ў Clipboard-Ґ ®¤Ё­ Ё§ д®а¬ в®ў, ®ЇаҐ¤Ґ«Ґ­­ле ў Fmts - ¬ ббЁўҐ, Ё
в®«мЄ® ў б«гз Ґ ­ «ЁзЁп в Є®Ј® д®а¬ в , ўл§лў Ґвбп дг­ЄжЁп Pas-
teSpecialDlg, Є®в®а п в Є¦Ґ ў®§ўа й Ґв гЄ § вҐ«м ­  бвагЄвгаг
¤ ­­ле ¤«п Ё­ЁжЁ «Ё§ жЁЁ OLE-Є®­вҐ©­Ґа .

я14. ђ §а Ў®вЄ  Їа®жҐ¤гал ЇҐаҐв бЄЁў ­Ёп ®ЎкҐЄв®ў

ЏҐаҐв бЄЁў ­ЁҐ OLE-®ЎкҐЄв  Ё§ бҐаўҐа  Ё ®ЇгбЄ ­ЁҐ ҐЈ® ў
OLE-Є®­вҐ©­Ґа - нв® ­ ЁЎ®«ҐҐ бўп§ вм Ё«Ё ўбва®Ёвм ®ЎкҐЄв. ‚ н⮬
б«гз Ґ ­Ґв ­Ґ®Ўе®¤Ё¬®бвЁ ўл§лў вм бЇҐжЁ «м­лҐ ¤Ё «®Ј®ўлҐ дг­ЄжЁЁ
ᮧ¤ ­Ёп ­®ў®Ј® ®ЎкҐЄв  Ё«Ё з⥭Ёп ®ЎкҐЄв  Ё§ Clipboard- .

—в®Ўл д®а¬  Ё¬Ґ«  ў®§¬®¦­®бвм ЇаЁ­пвм ЇҐаҐв бЄЁў Ґ¬л© Ё§
бҐаўҐа  ®ЎкҐЄв, ®­  ¤®«¦­  Ўлвм § аҐЈЁбваЁа®ў ­  ў б।Ґ Є Є "¬Ё-
иҐ­м ¤«п ЇҐаҐв бЄЁў ­Ёп". ќв® ¤Ґ« Ґвбп ўл§®ў®¬ бЇҐжЁ «м­®© дг­Є-
жЁЁ б«Ґ¤го饣® ўЁ¤ :

procedure RegisterFormAsOleDropTarget(Form : TForm;
Const Fmts : Array Of BOLEFormat);

ќв®в ўл§®ў 楫Ґб®®Ўа §­® ўЄ«озЁвм ў Їа®жҐ¤гаг
TOLEFrameForm.FormCreate.

Љ®Ј¤  ®ЎкҐЄв ЇҐаҐв бЄЁў Ґвбп ­  д®а¬г, Ё¬ҐҐв ¬Ґбв® б®ЎлвЁҐ
OnDragDrop. ”®а¬  ЇаЁ«®¦Ґ­Ёп Ё¬ҐҐв ®Ўа Ў®взЁЄ нв®Ј® б®ЎлвЁп
FormDragDrop. Џа®жҐ¤га -®Ўа Ў®взЁЄ Ё¬ҐҐв Ї а ¬Ґва Source, ў
Є®в®а®¬ Ґ© ЇҐаҐ¤ Ґвбп ЇҐаҐв бЄЁў Ґ¬л© ®ЎкҐЄв Є Є ­ б«Ґ¤­ЁЄ Є« бб 
TOLEDropNotify. ќв®в Є« бб Ё¬ҐҐв бў®©бвў® PInitInfo,
ᮮ⢥вбвўго饥 бў®©бвўг PInitInfo OLE-Є®­вҐ©­Ґа . Џ®н⮬㠤«п
Ё­ЁжЁ «Ё§ жЁЁ Є®­вҐ©­Ґа  ЇаЁ ЇҐаҐв бЄЁў ­ЁЁ ¤®бв в®з­® ЇаЁбў®Ёвм
Ї®«о Є®­вҐ©­Ґа  PInitInfo §­ зҐ­ЁҐ Ї®«п PInitInfo ЇҐаҐ¤ ў Ґ¬®Ј®
Ї а ¬Ґва  Є Є ­ б«Ґ¤­ЁЄ  TOLEDropNotify. ќв® ¤Ґ« Ґв б«Ґ¤гой п
Їа®жҐ¤га :

procedure TOLEFrameForm.FormDragDrop(Sender, Source: TObject;
X, Y: Integer);
var
NewChild : TOLEObjectForm;
begin
if Source is TOLEDropNotify then begin
NewChild := CreateChild;
with Source as TOLEDropNotify do begin
NewChild.OLEContainer.PInitInfo := PInitInfo;
end {with};
end;
end;

Ћбў®Ў®¦¤ вм Ї ¬пвм, ўл¤Ґ«Ґ­­го Ї®¤ InitInfo, ў н⮬ б«гз Ґ
­Ґв ­Ґ®Ўе®¤Ё¬®бвЁ, в.Є. Delphi ЎҐаҐв нв® ­  ᥡп.

я15. ђ §а Ў®вЄ  Їа®жҐ¤га Ї®¤¤Ґа¦ЄЁ еа ­Ґ­Ёп ®ЎкҐЄв®ў ў д ©« е

”г­ЄжЁЁ б®еа ­Ґ­Ёп OLE-®ЎкҐЄв®ў ў д ©« е Ё ў®ббв ­®ў«Ґ­Ёп Ёе
Ё§ д ©«®ў Delphi в Є¦Ґ ЎҐаҐв ­  ᥡп.
„«п б®еа ­Ґ­Ёп OLE-®ЎкҐЄв  ў д ©«Ґ ­Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм
¬Ґв®¤ SaveToFile Є®¬Ї®­Ґ­в  OLE-Є®­вҐ©­Ґа . „«п гЄ § ­Ёп Ё¬Ґ­Ё
д ©« , ў Є®в®а®¬ ­г¦­® б®еа ­Ёвм ®ЎкҐЄв, ¬®¦­®
ЁбЇ®«м§®ў вм Є®¬Ї®­Ґ­в TSaveDialog, ®ЎҐбЇҐзЁў ойЁ© ®вЄалвЁҐ
бв ­¤ ав­®Ј® ¤Ё «®Ј®ў®Ј® ®Є­  б®еа ­Ґ­Ёп д ©« .
Џа®жҐ¤га , ўл§лў Ґ¬ п Ё§ Їг­Єв  ¬Ґ­о File|Save, ¬®¦Ґв
ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:

procedure TOLEObjectForm.SaveAsClick(Sender: TObject);
begin
if SaveAsDialog.Execute then
OLEContainer.SaveToFile(SaveAsDialog.FileName);
end;

„«п § Јаг§ЄЁ OLE-®ЎкҐЄв  Ё§ д ©« , ­Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм
¬Ґв®¤ LoadFromFile Є®¬Ї®­Ґ­в  OLE-Є®­вҐ©­Ґа . „«п гЄ § ­Ёп Ё¬Ґ­Ё
д ©« , Ё§ Є®в®а®Ј® вॡгҐвбп § Јаг§Ёвм ®ЎкҐЄв, ¬®¦­® ЁбЇ®«м§®ў вм
Є®¬Ї®­Ґ­в TOpenDialog, ®ЎҐбЇҐзЁў ойЁ© ®вЄалвЁҐ бв ­¤ ав­®Ј®
¤Ё «®Ј®ў®Ј® ®Є­  ®вЄалвЁп д ©« .
Џа®жҐ¤га , ўл§лў Ґ¬ п Ё§ Їг­Єв  ¬Ґ­о File|Open, ¬®¦Ґв
ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:

procedure TOLEFrameForm.OpenClick(Sender: TObject);
Var
NewChild: TOLEObjectForm;
begin
if OpenDialog.Execute then begin
NewChild := CreateChild;
NewChild.OLEContainer.LoadFromFile(OpenDialog.FileName);
end;
end;

я2‚лў®¤л

1. Љ ¦¤л© OLE-®ЎкҐЄв ¤®«¦Ґ­ еа ­Ёвмбп ў б®Ўб⢥­­®¬
OLE-Є®­вҐ©­ҐаҐ. ЂЄвЁўЁ§ жЁп OLE-бҐаўҐа  Їа®Ё§ў®¤Ёвбп ¤ў®©­л¬
饫窮¬ «Ґў®© Є« ўЁиЁ ¬лиЁ, Є®Ј¤  Єгаб®а ¬лиЁ ­ е®¤Ёвбп ў Ї«®й ¤Ё
Є®­вҐ©­Ґа .
„«п гЇа ў«Ґ­Ёп Ї®§ЁжЁп¬Ё ¬Ґ­о бҐаўҐа  Ё Є«ЁҐ­в , ­Ґ®Ўе®¤Ё¬®
Ї®«м§®ў вмбп §­ зҐ­Ёп¬Ё бў®©бвў  GroupIndex Є®¬Ї®­Ґ­в®ў ¬Ґ­о.

2. ‚бв ўЄ  ®ЎкҐЄв®ў Їа®Ё§ў®¤Ёвбп б Ї®¬®ймо бЇҐжЁ «м­®©
¤Ё «®Ј®ў®© дг­ЄжЁЁ InsertOLEObjectDlg, ў®§ўа й о饩 Ё­д®а¬ жЁо
¤«п Ё­ЁжЁ «Ё§ жЁЁ Є®­вҐ©­Ґа  ¬Ґв®¤®¬ InitializeOLEObject.

3. „«п ®ЎҐбЇҐзҐ­Ёп ў®§¬®¦­®бвЁ з⥭Ёп OLE-®ЎкҐЄв®ў Ё§
Clipboard- , ­Ґ®Ўе®¤Ё¬® § аҐЈЁбваЁа®ў вм д®а¬ вл OLE-®ЎкҐЄв®ў б
Ї®¬®ймо дг­ЄжЁЁ RegisterClipboardFormat, Ё бд®а¬Ёа®ў вм ¬ ббЁўл,
®ЇЁблў ойЁҐ нвЁ д®а¬ вл.
‡ вҐ¬ ­Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм дг­ЄжЁо PasteSpecialDlg,
ў®§ўа й ойго Ё­д®а¬ жЁо ¤«п Ё­ЁжЁ «Ё§ жЁЁ OLE-Є®­вҐ©­Ґа .

4. „«п ЇҐаҐв бЄЁў ­Ёп ®ЎкҐЄв®ў ¬Ґв®¤®¬ Drag&Drop, ­Ґ®Ўе®¤Ё¬®
д®а¬г § аҐЈЁбваЁа®ў вм Є Є ¬ЁиҐ­м ¤«п ЇҐаҐв бЄЁў ­Ёп б Ї®¬®ймо
¬Ґв®¤  RegisterFormAsOLEDropTarget.
‚ ®Ўа Ў®взЁЄҐ б®ЎлвЁ© OnDragDrop ­Ґ®Ўе®¤Ё¬® Ёбв®з­ЁЄ б®ЎлвЁп
а бб¬ ваЁў вм Є Є ­ б«Ґ¤­ЁЄ  Є« бб  TOLEDropNotify, Ё¬Ґо饣®
бвагЄвгаг ¤ ­­ле ¤«п Ё­ЁжЁ «Ё§ жЁЁ OLE-Є®­вҐ©­Ґа .

5. „«п а Ў®вл б д ©« ¬Ё ®ЎкҐЄв®ў б«Ґ¤гҐв ЁбЇ®«м§®ў вм ¬Ґв®¤л
Є®¬Ї®­Ґ­в  OLE-Є®­вҐ©­Ґа  LoadFromFile Ё SaveToFile.
Соседние файлы в папке Операционные среды АСОИУ