Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




CONTROLUL OLE

Informatica


CONTROLUL OLE

Sistemul Visual Basic permite transferarea si partajarea informatiilor care provin de la diferite aplicatii standard (de exemplu Paint, Sound Recorder, WordPad, Object Packager) si nestandard (de exemplu Word, Excel, Equation Editor si altele). Facilitatea este denumita īnlantuirea si īncapsularea obiectelor (Object Linking and Embedding, presurtat OLE). Daca pe forma aplicatiei se aseaza un control OLE, atunci exista posibilitatea ca !n acest container sa se insereze diferite obiecte, care provin din diferite aplicatii. Obiectul introdus īn container poate fi ulterior modificat, prin apelarea directa a programului care a generat obiectul depus īn container. Astfel, de exemplu, daca īn containerul OLE se introduce un obiect generat cu programul Microsoft Equation, atunci prin efectuarea unui dublu clic asupra obiectului ecuatie se va lansa automat īn executie programul Microsoft Equation, si obiectul de tip ecuatie poate fi modificat prin comenzile editorului de ecuatie. Obiectul preluat de la aplicatia server poate fi īncapsulat sau īnlantuit īn container.



Cānd se īncapsuleaza un obiect īn containerul OLE, se face o copie a informatiilor din aplicatia server si se transfera aceasta copie īn container, īn continuare nu va mai exista nici o legatura spre documentul din care a fost transferata informatia. Deci, cānd se editeaza un obiect īncapsulat, documentul sursa nu va fi īn nici un fel afectat. De exemplu sa presupunem ca īn containerul OLE a fost īncapsulat un desen. Daca se modifica desenul īncapsulat din interiorul aplicatiei Visual Basic, desenul din documentul sursa ramāne nemodificat.

Cānd se īnlantuie un obiect īn containerul OLE, nu este efectuata nici o copiere a informatiilor, ci se creeaza o referinta sau o īnlantuire spre fisierul care contine informatia (fisierul sursa). Astfel, cānd se e 535i87f diteaza un obiect īnlantuit, īn realitate se editeaza informatiile din fisierul sursa. Containerul contine doar o legatura la locatia unde este memorat obiectul sursa.

Controlul OLE este o componenta standard a programului Visual Basic;

simbolul grafic aferent are forma unei iconite. Numarul obiectelor care pot fi īncapsulate sau īnlantuite īntr-un control OLE depinde de numarul de aplicatii instalate pe calculatorul utilizat. La un moment dat īnsa containerul OLE poate contine numai un singur obiect. Aplicatiile de tip OLE pot fi create atāt īn perioada de elaborare a proiectului, cāt si īn timpul executiei.

Pentru a crea o aplicatie de tip OLE īn timpul elaborarii proiectului:

Se aseaza pe forma un control OLE. īn urma acestei actiuni se afiseaza o

fereastra de dialog intitulata Insert Object, specializata īn īncapsularea si īnlantuirea obiectelor.

Fig.pag. 410 sub forma unei ferestre.

2. Daca īn acest moment se executa un clic pe butonul de comanda Cancel, fereastra de dialog va fi īnchisa si nu se creeaza nici un obiect. Aceasta fereastra īnsa oricānd poate fi reafisata. Daca se efectueaza un clic cu butonul drept al mouse-ului pe controlul OLE, atunci se afiseaza un meniu local. Comenzile afisate īn acest meniu depind de starea controlului OLE; ele sunt centralizate īn tabelul urmator:

<tabel>

*Comanda

Poate fi activata īn meniul local daca:

*Insert Object

īntotdeauna activa. Aceasta comanda afiseaza fereastra de dialog Insert Object.

*Paste Special

Masa de montaj contine un obiect valid. Aceasta comanda afiseaza fereastra de dialog Paste Special.

*Delete Embedded Object

*Containerul OLE contine un obiect īncapsulat. Prin alegerea acestei comenzi obiectul respectiv va fi īndepartat din container.

*Delete Link

Containerul OLE contine un obiect īnlantuit. Prin alegerea acestei comenzi obiectul respectiv va fi īndepartat din container.

*Create Link

Proprietatea SourceDoc a controlului OLE este configurata cu un nume valid de fisier. Fisierul respectiv va fi īnlantuit de containerul OLE.

*Create Embedded Object

Proprietatea Class sau proprietatea SourceDoc a controlului OLE este configurata cu un nume valid de fisier. Fisierul respectiv va fi īncapsulat īn containerul OLE.

</tabel>

3. Sa presupunem ca este afisata fereastra de dialog Insert Object. Daca se doreste crearea unui obiect nou, care va fi īncapsulat īn containerul OLE, atunci se va selecta butonul de optiune Create New. Din lista derulanta Object Type se va selecta tipul obiectului care se īncapsuleaza si se va da comanda OK.

4. Īn urma acestei actiuni se lanseaza īn executie aplicatia server. Se creeaza obiectul īncapsulat īn container, de exemplu o ecuatie creata cu ajutorul programului server Microsoft Equation 3.0.

Dupa ce obiectul a fost creat, se revine la aplicatia OLE. Noul obiect creat va fi īncapsulat īn containerul OLE. īn cazul unui obiect ecuatie revenirea īn aplicatia OLE poate fI realizata prin meniul File, comanda Exit and Return.

Daca īn timpul executiei programului OLE se doreste efectuarea unor modificari asupra obiectului din container, atunci se va efectua un dublu clic asupra obiectului, prin care se va lansa īn executie aplicatia server.

Daca se doreste īncapsularea sau īnlantuirea unui obiect creat si salvat anterior cu ajutorul aplicatiei server, atunci la pasul 3 se va alege butonul de optiune Create from File. Fereastra de dialog are aspectul urmator:

Fig.pag. 411 sub forma unei ferestre.

Īn cutia de text File se specifica numele fisierului care urmeaza sa fie īncapsulat sau īnlantuit īn containerul OLE. Selectarea fisierului poate fi realizata si cu ajutorul butonului de comanda Browse, care afiseaza o fereastra de dialog care usureaza alegerea fisierului necesar. Daca nu este selectata cutia de validare Link, atunci obiectul specificat va fi īncapsulat īn container (deci īn momentul īn care se lanseaza īn executie programul OLE, obiectul poate fi activat printr-un dublu clic, prin care se va lansa īn executie programul server care a creat fisierul respectiv). Daca este selectata cutia de validare, atunci obiectul respectiv va fi īnlantuit īn container (deci modificarile efectuate cu programul server īn fisierul īnlantuit vor fi reflectate automat īn containerul OLE).

Daca īn fereastra de dialog Insert Object se selecteaza cutia de validare Display As Icon, atunci obiectul din container va fi afisat sub forma unui simbol grafic, īn acest caz va apare si un buton de comanda etichetat cu Change Icon, care afiseaza o fereastra de dialog, prin care se poate modifica simbolul grafic utilizat.

Uneori se doreste īncapsularea sau īnlantuirea unor obiecte, care au fost copiate anterior pe masa de montaj, īn aceste conditii meniul local al aplicatiei OLE va contine si comanda Paste Special. Prin selectarea acestei comenzi se va afisa o fereastra de dialog care are aspectul urmator:

Fig.pag. 412 sub forma unei ferestre.

Daca se alege butonul de optiune Paste, atunci obiectul depus pe masa de montaj va fi īncapsulat īn containerul OLE. Locatia sursa a obiectului depus pe masa de montaj este afisata īn linia etichetata cu Source. Daca se alege butonul de optiune Paste Link, atunci obiectul respectiv va fi īnlantuit īn containerul OLE.

Sa presupunem ca proprietatea SourceDoc a controlului OLE este configurata cu un nume valid de fisier, de exemplu o imagine: C:\Windows\Arches.bmp. Īn acest caz meniul local aferent containerului OLE va contine si comenzile Create Link si Create Embedded Object, prin care fisierul respectiv poate fi īnlantuit sau īncapsulat īn containerul OLE.

Aplicatiile de tip OLE pot fi create si īn timpul executiei, īn acest caz se vor folosi diferite metode speciale ale controlului OLE, de exemplu InsertObjDlg, PasteSpecialDlg si altele.

Cele mai uzuale metode ale controlului OLE sunt urmatoarele:

<titlu>Metoda InsertObjDlg

Afiseaza fereastra de dialog Insert Object, care permite īncarcarea īn containerul OLE a unui obiect īncapsulat sau īnlantuit. Daca containerul a continut un obiect, vechiul obiect va fi distrus. Metoda se apeleaza printr-o constructie de forma:

OLE1.InsertObjDIg

<titlu>Metoda PasteSpecialDlg

Afiseaza fereastra de dialog Paste Special, prin care utilizatorul poate controla modul īn care un obiect depus pe masa de montaj va fi inserat īntr-un container OLE. Prin aceasta fereastra se poate decide daca

obiectul respectiv va fi īncapsulat sau īnlantuit, si daca va fi sau nu afisat sub forma unui simbol grafic; de asemenea se permite selectarea formatului elementul inserat. Daca containerul a continut un obiect, vechiul obiect va fi distrus. Metoda se apeleaza printr-o constructie de forma:

OLE1 PasteSpecialDlg

<titlu>Metoda Close

Dezactiveaza obiectul din container si termina aplicatia server. Obiectul OLE ramāne īn container. Metoda se aplica numai obiectelor īncapsulate, neavānd nici un efect asupra obiectelor īnlantuite. Aceasta metoda se apeleaza printr-o constructie de forma:

OLE1.Close

<titlu>Metoda Copy

Copiaza obiectul depus īn containerul OLE pe masa de montaj. Pot fi copiate atāt obiecte īnlantuite, cāt si īncapsulate. Aceasta metoda se apeleaza printr-o constructie de forma:

OLE1.Copy

<titlu>Metoda Paste

Insereaza continutul mesei de montaj īn containerul OLE. Aceasta metoda se apeleaza printr-o constructie de forma

OLE1.Paste

<titlu>Metoda Delete

sterge obiectul continut īn containerul OLE si elibereaza memoria asociata obiectului respectiv. Aceasta metoda permite stergerea explicita a obiectului continut īn container; se mentioneaza faptul ca obiectul din container este sters automat īn momentul īn care forma este īnchisa sau īn cazul īn care obiectul din container este īnlocuit cu un obiect nou. Metoda este apelata printr-o constructie de forma:

OLE1.Delete

<titlu>Metoda Update

ncarca (actualizeaza) data curenta a aplicatiei server īn containerul OLE. Metoda este apelata printr-o constructie de forma:

OLE1.Update

<titlu>Metoda CreateEmbed

Creeaza un obiect īncapsulat dintr-un fisier specificat. Aceasta metoda se apeleaza printr-o secventa de forma

OLE1.CreateEmbed DocSursa, Clasa

Argumentul DocSursa (de tip String) specifica numele fisierului din care se creeaza obiectul īncapsulat. Daca nu se specifica un anumit document sursa (pentru ca este vorba de un document nou), atunci acest argument trebuie initializat cu un sir vid (""). Argumentul optional Clasa este numele clasei obiectului īncapsulat (numele aplicatiei server). Acest argument este ignorat īn cazul īn care argumentul DocSursa contine un nume de fisier.

<titlu>Metoda CreateLink

Creeaza īn containerul OLE un obiect īnlantuit dintr-un fisier specificat. Metoda se apeleaza printr-o secventa de forma:

OLEl.CreateLink DocSursa, ElementSursa

Argumentul DocSursa (de tip String) specifica fisierul din care se creeaza obiectul īnlantuit. Argumentul optional ElementSursa (de tip String) desemneaza data din interiorul fisierului din care se creeaza obiectul īnlantuit.

<titlu>Metoda SaveToFile

Salveaza obiectul din containerul OLE īntr-un fisier binar. Metoda se apeleaza printr-o secventa de forma:

OLE1.SaveToFile NrFisier

Argumentul NrFisier este un numar īntreg care desemneaza numarul asociat fisierului binar deschis īn care se salveaza obiectul.

<titlu>Metoda ReadFromFile

īncarca īn containerul OLE un obiect dintr-un fisier care a fost salvat anterior cu metoda SaveToFile. Metoda se apeleaza printr-o secventa de forma:

OLE1.ReadFromFile NrFisier

Argumentul NrFisier este un numar īntreg care desemneaza numarul asociat fisierului binar deschis din care se īncarca obiectul.

<titlu>Metoda DoVerb

Deschide un obiect depus īn containerul OLE īn vederea efectuarii unei operatii (a unui "verb", de exemplu editarea obiectului respectiv). Aceasta metodase apeleaza printr-o secventa de forma:

OLE1.DoVerb Verb

Argumentul Verb este un numar īntreg care specifica natura operatiei care urmeaza sā fie efectuata cu obiectul continut īn containerul OLE.

Daca acest argument nu este specificat, atunci se va executa actiunea implicita aferenta obiectului, de regula activarea lui (verbul implicit al obiectului). Pentru specificarea argumentului Verb pot fi utilizate urmatoarele constante predefinite:

<table>

*Constanta

Valoare

Descriere

*vbOLEPrimary

Actiunea implicita a obiectului.

*vbOLEShow

Activarea obiectului īn vederea editarii lui. Daca aplicatia care a creat obiectul permite activare "pe loc", (īn interiorul containerului OLE, nu īntr-o fereastra separata), atunci obiectul este activat īn interiorul containerului OLE.

*vbOLEOpen

Deschiderea obiectului īntr-o fereastra separata.

*vbOLEHide

La obiectele īncapsulate ascunde aplicatia care a creat obiectul din container.

*vbOLEUIActivate

Daca obiectul permite o activare pe loc, atunci se activeaza obiectul īn interiorul containerului OLE si se afiseaza toate interfetele tip utilizator (de exemplu bare de unelte). Daca obiectul nu permite o activare pe loc, atunci obiectul nu va fi activat si se va declansa o eroare.

*VbOLEJnPlaceActivate

Daca utilizatorul muta focarul īn containerul OLE, atunci se creeaza o fereastra pentru obiectul din container si se pregateste obiectul respectiv īn vederea editarii lui. Daca obiectul nu permite sa fie activat printr-un clic simplu de mouse, atunci se declanseaza o eroare.

</tabel>

Principalele proprietati ale controlului OLE sunt urmatoarele:

<titlu>Proprietatea OLEType (de tip Integer)

Comunica starea obiectului continut īn containerul OLE, Aceasta proprietate poate fi utilizata numai īn executie. Valorile livrate de aceasta proprietate sunt centralizate īn tabelul urmator:

<tabel>

*Constanta

Valoare

Descriere

*vbQLELinked

Containerul OLE contine un obiect īnlantuit.

*vbOLEEmbedded

Containerul OLE contine un obiect īncapsulat.

*vbOLENone

Containerul OLE nu contine nici un obiect.

</tabel>

<titlu>Proprietatea PasteOK (de tip Boolean)

Comunica daca continutul mesei de montaj poate fi inserat īn containerul OLE. Aceasta proprietate poate fi utilizata numai īn executie.

<titlu>Proprietatea AppIsRunning (de tip Boolean)

Se refera la starea aplicatiei server care a creat obiectul din containerul

OLE. Daca valoarea returnata de aceasta proprietate este True, aplicatia server este īn executie, īn caz contrar aplicatia server nu este lansata īn executie. Daca aceasta proprietate este īncarcata cu valoarea True, atunci aplicatia server a obiectului din container va fi lansata īn executie. Daca proprietatea este īncarcata cu valoarea False, aplicatia server va fi īnchisa.

<titlu>Proprietatea SizeMode (de tip Integer)

Se refera la modul de dimensionare a containerului OLE si la modul lui de afisare īn momentul īn care contine un anumit obiect. Valorile posibile ale acestei proprietati sunt urmatoarele:

<tabel>

*Constanta

Valoare

Descriere

*vbOLESizeClip

Decupare. Daca obiectul este mai mare decāt containerul OLE, atunci obiectul va fi trunchiat. Valoare implicita.

*vbOLESizeStretch

Redimensionare elastica. Obiectului este redimensionata astfel īncāt va ocupa īntregul container OLE.

*vbOLESizeAutoSize

Redimensionare automata. Containerul OLE este redimensionat astfel īncāt va afisa īntregul obiect, īnainte de redimensionare este declansat evenimentul Resize, īn procedura atasata evenimentului se poate citi (prin intermediul parametrilor HeightNevt si WidthNew) noua īnaltime si noua latime a containerului).

*vbOLESizeZoom

Efect lentila. Obiectul este redimensionat astfel īncāt sa fie utilizat la maxim spatiul din container, īnsa proportiile originale ale obiectului sunt conservate.

</tabel>

<titlu>Proprietatea AutoActivate (de tip Integer)

Determina modul de activare a obiectului depus īn containerul OLE. Aceasta proprietate poate fi configurata cu ajutorul urmatoarelor constante predefinite:

<tabel>

*Constanta

Valoare

Descriere

*vbOLEActivateManual

Activare manuala. Obiectul din container nu este activat automat. Activarea obiec­tului trebuie realizata prin program, cu ajutorul metodei DoVerb.

*vbOLEActivateGetFocus

Activare prin focar. Daca containerul OLE contine un obiect care permite activarea cu un clic simplu de mouse, aplicatia server este activata īn momentul īn care containerul OLE ajunge īn focar.

*vbOLEActivateDoubleclick

Activare prin dublu clic (valoare implicita). Daca containerul OLE contine un obiect, aplicafia server poate ti activata prin aplicarea unui dublu clic pe container (sau se apasa tasta ENTER īn momentul īn care focarul este īn container).

*vbOLEActivateAuto

Activare automata. Daca containerul OLE contine un obiect, aplicatia server este activata pe baza metodei de activare norma­la (adica fie cānd containerul ajun­ge īn focar, fie cānd se efectueaza un dublu clic pe container).

</tabel>

<titlu>Proprietatea OLETypeAHowed (de tip Integer)

Se refera la tipul obiectului care poate fi continut īn containerul OLE. Valorile posibile ale acestei proprietati sunt urmatoarele:

<tabel>

*Constanta

Valoare

Descriere

*vbOLELinked

Containerul OLE poate contine numai un obiect īnlantuit.

*vbOLEEmbedded

Containerul OLE poate contine numai un obiect īncapsulat.

*vbOLEEither

Containerul OLE poate contine atāt obiecte īnlantuite, cāt si obiecte īncapsulate. Valoare implicita.

</tabel>

<titlu>Proprietatea SourceDoc (de tip String)

Specifica numele unui fisier din care se poate crea, īn perioada de elaborare a proiectului, un obiect īncapsulat sau īnlantuit.

<titlu>Proprietatea Class (de tip String)

Se refera la numele de clasa al obiectului īncapsulat sau īnlantuit īn containerul OLE, adica defineste numele aplicatiei server. Lista numelor de clasa accesibile pe calculatorul utilizat poate fi afisata īn perioada de elaborare a proiec­tului, prin aplicarea unui clic pe butonul cu trei puncte din coloana de valori a proprietatii.

Fig.pag. 417 sub forma unei ferestre.

<titlu>Proprietatea AutoVerbMenu (de tip Boolean)

Stabileste daca se afiseaza sau nu un meniu local, care contine verbele obiectului din container īn mojtfjntul īn care utilizatorul efectueaza un clic cu butonul drept pe containerul OLE. Valoarea implicita a acestei proprietati este True, caz īn care vor fi afisate comenzile permise de obiect.

<titlu>Proprietatea DisplayType (de tip Integer)

Stabileste modul de afisare a obiectului din container. Aceasta proprietate poate fi configurata cu urmatoarele constante predefinite:

<tabel>

*Constanta

Valoare

Descriere

*vbOLEDisplayContent

Continut. Atunci cānd containerul OLE contine un obiect, īn control vor fi afisate datele obiectului. Valoare implicita.

*vbOLEDisplayIcon

Simbol grafic. Atunci cānd containerul OLE contine un obiect, īn control va fi afisat simbolul grafic al obiectului.

</tabel>

<titlu>Proprietatea UpdateOptions (de tip Integer)

Se refera la modul de actualizare a obiectului īnlantuit īn momentul īn care informatia īnlantuita a fost modificata. Aceasta proprietate poate fi configurata cu urmatoarele constante predefinite:

<tabel>

*Constanta

Valoare

Descriere

*vbOLEAutomatic

Obiectul este actualizat automat ori de cāte ori se modifica informatia īnlantuita. Valoare implicita.

*vbOLEFrozen

Obiectul este actualizat īn momentul īn care utilizatorul salveaza informatia īnlantuita īn aplicatia server.

*vbOLEManual

Obiectul este actualizat manual, īn momentul īn care prin program se apeleaza metoda Update.

</tabel>

EXEMPLUL

Forma aplicatiei urmatoare contine trei controale OLE si un buton de comanda. Controalele OLE au urmatoarele nume (proprietatea Name): oleExcel, olePaint si oleWordPad. Aceste controale īn perioada de elaborare a proiectului au fost configurate astfel:

<tabel>

*Proprietate

oleExcel

olePaint

oleWordPad

*AutoActivate

0 - Manual

Double Click

Double Click

*Class

Excel.Sheet.8

PaintPicture

WordPad.Document.

*OLETypeAllowed

Either

Linked

Embedded

Source Doc

c:\windows\leaves.bmp

Butonul de comanda etichetat cu Activare Excel activeaza programul server Excel īntr-o fereastra separata, prin apelarea metodei DoVerb (cu argumentul vbOLEOperi). Fereastra afisata de aplicatie are aspectul urmator:

Fig.pag. 419 sub forma unei ferestre.

Textul sursa al programului este urmatorul:

Option Explicit

Private Sub Command1_Click()

oleExcel.DoVerb vbOLEOpen

End Sub

EXEMPLUL 2:

Forma acestei aplicatii contine un container OLE. Meniul OLE aferent aplicatiei contine patru comenzi: lnsert, Paste Special, Close si Delete. Elementele de meniu corespunzatoare acestor comenzi sunt mnuInsert, mnuPaste, mnuClose si mnuDelete. Comanda Insert afiseaza fereastra de dialog Insert Object, prin care se poate īncapsula sau īnlantui un obiect īn controlul OLE. Comanda Paste Special afiseaza fereastra de dialog cu acelasi nume, prin care se poate insera īn controlul OLE un obiect depus anterior pe masa de montaj. Comanda Close īntrerupe legatura cu aplicatia server. Comanda Delete īndeparteaza obiectul depus īn container. Fereastra afisata de aplicatie poate avea aspectul urmator:

Fig.pag. 420 sub forma unei ferestre.

Textul sursa al programului este urmatorul:

Option Explicit

Private Sub mnuInsert_Click()

On Error GoTo eroare

OLE1.InsertObjDlg

OLE1.DoVerb -2 'Se foloseste o fereastra separata.

Exit Sub

eroare:

MsgBox "Nu s-a inserat nimic", vbExclamation

End Sub

Private Sub mnuPaste_Click

Dim m As String

If OLE1.PasteOK Then

OLE1 PasteSpecialDlg

Else

m = "Continutul zonei Clipboard " &

"nu poate fi inserat īn containerul OLE!"

MsgBox m, vbExclamation

End If

End Sub

Private Sub mnuClose_Click()

If OLE1.OLEType <> vbOLENone Then

OLE1.Close

Else

MsgBox "Containerul OLE nu contine nimic!", vbExclamation

End If

End Sub

Private Sub mnuDelete_Click()

If OLE1.OLEType <> vbOLENone Then

OLE1.Delete

Else

MsgBox "Containerul OLE nu contine nimic!", vbExclamation

End If

End Sub

EXEMPLUL 3:

Forma acestei aplicatii contine un container OLE si un control de tip CommonDialog. Aplicatia este prevazuta cu un meniu. Meniul OLEFile contine urmatoarele comenzi:

OLENew: afiseaza fereastra de dialog Insert Object;

OLESaveAs: salveaza obiectul din container īntr-un fisier binar;

OLEOpen: īncarca containerul cu un obiect salvat anterior cu ajutorul comenzii OLESaveAs;

OLEExit:  termina aplicatia.

Meniul OLEEdit contine urmatoarele comenzi:

OLECopy: copiaza obiectul din container pe masa de montaj;

OLEDelete: sterge obiectul din container;

OLE Paste Special: afiseaza fereastra de dialog Paste Special;

OLEUpdate: actualizeaza obiectul din container.

Elementul de meniu OLEClose īntrerupe legatura cu aplicatia server a obiectului din container.

Fereastra afisata de aplicatie poate avea aspectul urmator:

Fig.pag. 421 sub forma unei ferestre.

Textul sursa al programului este urmatorul:

Option Explicit

Private Sub Form_Load()

On Error Resume Next

OLE1.Move 0, 0

OLE1.Height Me.Height

OLE1.Width

End Sub

Me.Width

Private Sub mnuCloseOLE_Click() 'ComandaOLEClose

If OLEl.OLEType <> vbOLENone Then

OLE1.Close Else

MsgBox "Containerul OLE nu contine nimic"

End If

End Sub

Private Sub mnuCopy_Click() 'OLEEdit/OLECopy

If OLE1.OLEType <> vbOLENone Then

Screen.MousePointer = 11 'cursor clepsidra

If OLEl.AppIsRunning = False Then

OLE1.AppIsRunning True End If OLE1.Copy

Screen.MousePointer = 0 'Cursor implicit.

Else

MsgBox "Containerul OLE nu contine nimic!"

End If

End Sub

Private Sub mnuDelete_Click() 'OLEEdit/OLEDelete

If OLEl.OLEType <> vbOLENone Then

`Test daca containerul OLE contine un obiect valid.

OLE1.Delete 'Se sterge obiectul.

End If

End Sub

Private Sub mnuEdit_Click() 'MENIUL OLEEdit

' Test daca continutul zonei Clipboard poate fi inserat

' īn containerul OLE

If OLEl.PasteOK Then

mnuSpecial.Enabled True  'Se valideaza comanda Paste Special.

Else

mnuSpecial.Enabled = False 'Se inhiba comanda Paste Special,

End If

End Sub

Private Sub mnuExit_Click 'OLEFile/OLEExit

End

End Sub

Private Sub mnuFileNew_Click 'OLEFile/OLENew

On Error GoTo Eroare

OLE1.InsertObjDlg

OLE1.DoVerb -2 'Obiectul este deschis īntr-o fereastra separata.

Exit Sub

Eroare:

MsgBox "Nu s-a inserat nimic" vbExclamation

End Sub

'Fereastra a fost īnchisa cu Cancel.

Private Sub mnuOpen_Click() 'OLEFile/OLEOpen

Dim NrFis As Integer

NrFis FreeFile

CommonDialogl.Filter

"Obiecte inserabile (*.OLE) | .OLE|Orice fisier (*.*)|

CommonDialog1.FilterIndex

On Error Resume Next

CommonDialog1 ShowOpen

If Err Then

Exit Sub

End If

Open CommonDialog1 filename For Binary As NrFis

If Err Then

Exit Sub

End If

Screen.MousePointer 'Cursor = clepsidra

OLE1.ReadFromFile NrFis

If Err Then

If Err Then

MsgBox "Obiect invalid."

Else

MsgBox Error$

End If

End If

OLE1.DoVerb 'Activarea obiectului.

Screen.MousePointer 'Restabilirea cursorului de mouse

Close NrFis

End Sub

Private Sub mnuSave_Click() 'OLEFile/OLESaveAs

Dim NrFis As Integer

NrFis = FreeFile

CommonDialog1.Filter

"Obiecte inserabile (*.OLE)|*.OLE|Orice fisier(*.*)

CommonDialog1.FilterIndex = 1

On Error Resume Next

CommonDialogl.ShowSave

If Err Then

Exit Sub  ' Utilizatorul a ales Cancel.

End If

Open CommonDialogl.filename For Binary As NrFis

If Err Then

MsgBox (Error)

Exit Sub

End If

OLE1.SaveToFile NrFis

If Err Then MsgBox (Error)

Close NrFis

End Sub

Private Sub mnuSpecial_Click() 'OLEEdit/OLEPasteSpecial

If OLE1.PasteOK Then

OLE1 PasteSpecialDlg

Else

MsgBox "Continutul zonei Clipboard nu poate fi_

inserat in containerul OLE"

End If

End Sub

Private Sub mnuDpdate_Click 'OLEEdit/OLEUpdate

If OLE1.OLEType <> vbOLENone Then

Screen.MousePointer = 11 'Cursor clepsidra Hourglass

OLE1.Update

Screen.MousePointer = 0 'Cursor implicit Default

Else

MsgBox "Containerul OLE nu contine nimic"

End If

End Sub

EXEMPLUL 4:

Forma aplicatiei urmatoare contine un container OLE si trei butoane de comanda. Prin actionarea butonului etichetat cu CreateEmbed se apeleaza metoda cu acelasi nume, prin care se īncapsuleaza īn containerul OLE o noua foaie de calcul Excel. Butonul de comanda etichetat cu OLE Close īntrerupe legatura cu aplicatia server. Prin actionarea butonului de comanda eichetat cu CreateLink se apeleaza metoda cu acelasi nume si se īnlantuie un fisier text īn containerul OLE. Fereastra afisata de aplicatie are aspectul urmator:

Fig. Pag 424

Textul sursa al programului este urmatorul:

Option Explicit

Private Sub Form_Load

Forml Caption = "Control container OLE"

End Sub

Private Sub Command1_Click

Dim Clasa As String, DocSursa As String

Clasa = "Excel.Sheet.8"

DocSursa = "" 'Se va īn capsula un obiect nou.

OLE1.CreateEmbed DocSursa, Clasa

End Sub

Private Sub Command2_Click

OLE1.Close

End Sub

Private Sub Command3_Click

Dim DocSursa As String

DocSursa = "C:\Bootlog.txt"

OLE1.CreateLink DocSursa

End Sub


Document Info


Accesari: 1417
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )