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: 1440
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. 2025 )