UTILIZAREA MESEI DE MONTAJ
Prin masa de montaj sau Clipboard se īntelege o zona de memorie, care poate fi utilizata pentru realizarea unui schimb de informatii īntre diferite aplicatii. Continutul acestei zone poate sa fie un text, o imagine grafica sau atāt text, cāt si imagine grafica; acest continut poate fi vizualizat si prin intermediul utilitarului standard CIiboard Viewer. Pentru a depune diferite informatii īn zona Clipboard, de obicei sunt utilizate comenzile standard Cut si Copy, care sunt specifice tuturor aplicatiilor Windows. Informatia depusa īn Clipboard poate fi inserata la locatia actuala a liniei de inserare, prin intermediul comenzii standard Paste. Aceste comenzi de obicei sunt depuse īn meniul Edit aI aplicatiilor. 919i83j
Īn fiecare moment zona Clipboard poate memora numai o singura transa de informatie: īn momentul trimiterii unei informatii noi īn Clipboard vechea informatie va fi stearsa si īnlociuta cu noua informatie (chiar daca informatiile respective au acelasi tip). Obiectul Clipboard este partajat de toate aplicatiile Windows, deci continutul zonei de memorie atasata mesei de montaj poate fi modificat ori de cāte ori utilizatorul trece dintr-o aplicatie īntr-o alta aplicatie. Accst obiect poate contine simultan mai multe tipuri de date cu conditia ca datele respective sa aiba tipuri diferite. Astfel, de exemplu, cu ajutorul metodei SetData se poate depune pe masa de montaj o imagine bitmap īn formatul vbCFDIB, dupa care cu ajutorul metodei SetText un text īn formatul vbCFText. īn continuare poate fi apelata metoda GetText pentru īncarcarea textului īntr-un anumit obiect, sau metoda GetData pentru īncarcarea imaginii īntr-un alt obiect. Informatia depusa pe masa de montaj este pierduta īn momentul īn care pe masa de montaj se depune (prin program sau cu ajutorul comenzilor din meniul Edit) o noua transa de date īn formatul identic.
Metodele aferente obiectului Clipboard sunt urmatoarele:
<titlu>Metoda Clear
sterge continutul actual al mesei de montaj. Pentru apelarea acestei metode se va utiliza o constructie de forma urmatoare:
Clipboard.Clear
<titlu>Metoda SetText
Depune pe masa de montaj un anumit text (sir de caractere), īntr-un format specificat de utilizator. Pentru apelarea metodei se va utiliza o secventa de forma urmatoare:
Clipboard.SetText Data, Format
Īn aceasta constructie Data desemneaza textul (sirul de caractere) care se depune pe masa de montaj, iar Format este o constanta optionala care specifica formatul īn care se depune textul respectiv. Pentru specificarea formatului pot fi utilizate diferite constante predefinite, centralizate īn tabelul urmator:
<tabel>
*Constanta
Valoare
Descriere
*vbCFText
Text simplu (valoare implicita)
*vbCFlink
&HFFFFBF00
*Informatie de tip conversatie DDE (Dynamic Data Exchange)
*vbCFRTF
&HFFFFBF01
*Text īn formatul RTF (Rich Text Format, *.RTF)
</tabel>
<titlu>Metoda SetData
Depune pe masa de montaj o imagine grafica, īntr-un format specificat de utilizator. Pentru apelarea metodei se va utiliza o secventa de forma urmatoare:
Clipboard.SetData Data, Format
Īn aceasta constructie Data desemneaza imaginea grafica care se depune pe masa de montaj, iar Format este o constanta optionala care specifica formatul īn care se depune imaginea respectiva. Daca argumentul Format nu este specificat, atunci metoda SetData va determina automat formatul grafic utilizat. Pentru specificarea formatului pot fi utilizate diferite constante predefinite, centralizate īn tabelul urmator:
<tabel>
*Constanta
Valoare
Descriere
*vbCFBitmap
Imagine dependenta de echipament (fisier bitmap, *.BMP)
*vbCFMetafile
Metafisier (Windows MetaFile, *.WMF)
*vbCFDlB
Imagine independenta de echipament (Device-independent bitmap, *.DIB)
*vbCFPalette
Paleta de culoare
*vbCFEMetafile
Metafisier extins (Device-independent bitmap, *.D1B)
</tabel>
Argumentul Data poate fi:
valoarea returnata de functia LoadPicture("unitatea, calea completa si numele fisierului grafic");
proprietatea Picture a unei forme, a unui control PictureBox sau a unui control Image.
numele unei variabile de tip Picture.
<titlu>MetodaGetFormat
Permite efectuarea unui test referitor la continutul actual al mesei de montaj. Daca masa de montaj contine un obiect de tip specificat, atunci
metoda va returna valoarea True, īn caz contrar valoarea False. Metoda poate fi apelata printr-o constructie de forma urmatoare:
Dim Valoare As Boolean
Valoare = ClipBoard.GetFormat (Format)
Īn aceasta secventa Format este o constanta care specifica tipul obiectului de pe masa de montaj. Pentru specificarea tipului pot fi utilizate diferite constante predefinite centralizate īn tabelul urmator:
<tabel>
*Constanta
Valoare
Descriere
*vbCFLink
&HFFFFBF00 = -16640
Informatie de tip conversa(ie DDE (Dynamic Data Exchange)
*vbCFText
Text
*vbCFBitmap
Imagine (fisier Bitmap, *.BMP)
*vbCFMetafile
Metafisier (fisier Windows MetaFile, *.WMF)
*vbCFDIB
Imagine independenta de echipament (Device Independent Bitmap, *.DIB)
*vbCFPalette
Paleta de culori
*vbCFEMetafile
Metafisier extins (fisier Extended Meta File, *.EMF)
*vbCFFiles
Lista de fisiere (Microsoft Windows Explorer)
vbCFRTF
&FFFFFBF01 = -16639
Text (fisier īn formatul Rich Text Format, *.RTF)
</tabel>
<titlu>Metoda GetText
Memoreaza textul depus pe masa de montaj īntr-o variabila de tip String. Metoda poate fi apelata printr-o constructie de forma urmatoare:
Dim Sir As String
Sir = Clipboard.GetText (format)
In aceasta constructie Format este o constanta optionala care specifica formatul textului de pe masa de montaj. Daca masa de montaj nu contine un text īn formatul specificat, atunci valoarea returnata de functia GetText va fi un sir vid (""). Pentru specificarea formatului pot fi utilizate diferite constante predefinite, centralizate īn tabelul urmator:
<tabel>
*Constanta
Valoare
Descriere
*vbCFLink
&HBF00
*Informatie de tip conversatie DDE (Dynamic Data Exchange)
vbCFText
Text (valoare implicita)
*vbCFRTF
&HBF01
Text (fisier īn formatul Rich Text Format, *.RTF)
</tabel>
<titlu>Metoda GetData
Memoreaza imaginea depusa pe masa de montaj īntr-o:
proprietate Picture a unei forme sau a unui control PictureBox sau Image;
variabila (de tip Bitmap)
Aceasta metoda poate fi apelata printr-o constructie de forma urmatoare:
obiect.Picture Clipboard.GetData (format)
sau
Dim im As Picture
im = Clipboard.GetData (format)
Īn aceasta constructie obiect este numele unei forme, a unui control PictureBox sau a unui control Image, Format este o constanta optionala care specifica formatul imaginii de pe masa de montaj. Daca Format este 0 sau este omis, metoda GetData va utiliza automat formatul corespunzator. Daca masa de montaj nu contine o imagine īn formatul specificat, atunci functia GetData nu returneaza nimic. Pentru specificarea formatului pot fi utilizate diferite constante predefinite, centralizate īn tabelul urmator:
<tabel>
*Constantii
Valoare
Descriere
*vbCFBitmap
Imagine (Bitmap, fisier *.BMP)
*vbCFMetafile
Metafisier (fisier Windows Meta File, *.WMF)
*vbCFDIB
Imagine independenta de echipament (Device Independent Bitmap, *.DIB)
*vbCFPalette
Paleta de culoare
*vbCFEMetafde
Metafisier extins (fisier Extended Meta File, *.EMF)
</tabel>
EXEMPLUL1:
Scopul aplicatiei urmatoare este ilustrarea utilizarii metodei GetFormat. īn procedura Click atasata formei se testeaza continutul actual al mesei de montaj. Tipul informatiei depuse sau tipurile informatiilor depuse sunt afisate īntr-o fereastra de mesaje. Daca, de exemplu, pe masa de montaj a fost copiat un document Word, care contine texte si imagini grafice, atunci fereastra de informatie va contine:
Fig.pag. 405 sub forma unei ferestre.
Textul sursa al programului este urmatorul:
Option Explicit
Private Sub Form_Click()
Dim Mesaj As String
Mesaj = ""
If Clipboard.GetFormat(vbCFText) Then_
Mesaj = Mesaj & "TXT" & vbCrLf
If Clipboard.GetFormat(vbCFRTF) Then_
Mesaj = Mesaj & "RTF" & vbCrLf
If Clipboard.GetFormat(vbCFLink) Then_
Mesaj = Mesaj & "DDE" & vbCrLf
If Clipboard.GetFormat(vbCFBitmap) Then_
Mesaj = Mesaj & "BMP" & vbCrLf
If Clipboard.GetFormat(vbCFDIB) Then_
Mesaj = Mesaj & "DIB" & vbCrLf
If Clipboard.GetFormat(vbCFMetafile) Then_
Mesaj = Mesaj & "WMF" & vbCrLf
If Clipboard.GetFormat(vbCFPalette) Then_
Mesaj = Mesaj S "PAL" S vbCrLf
If Clipboard.GetFormat(vbCFEMetafile) Then_
Mesaj = Mesaj & "EMF" & vbCrLf
MsgBox Mesaj
End Sub
EXEMPLUL 2:
Urmatoarea aplicatie ilustreaza modul de depunere pe masa de montaj a unui sir de caractere, respectiv modul de cjtire al informatiilor depuse. Forma aplicatiei contine patru controale: doua cutii de text si doua butoane de comanda etichetate cu Spre si Din. Prin aplicarea unui clic pe butonul Spre sirul de caractere introdus īn prima cutie de text este depus pe masa de montaj, īn continuare sirul depus estecopiat īn a doua cutie de text. Daca se alege butonul de comanda Din, atunci sirul selectat de caractere din cutia doua de text este copiat īn prima cutie de text, prin . intermediul mesei de montaj.
Fereastra afisata de aplicatie poate avea aspectul urmator:
Fig.pag. 406 sub forma unei ferestre.
Textul sursa al programului este:
Private Sub Commandl_Click ' Butonul Spre
Clipboard.SetText Text1.Text
Text2.Text Clipboard.GetText(vbCFText)
End Sub
Private Sub Command2_Click () ' Butonul Din
Clipboard.Clear
Clipboard.SetText Text2.SelText
Text1.Text = Clipboard.GetText(vbCFText)
End Sub
Private Sub Form_Load()
Form1.Caption "Clipboard Texte"
End Sub
EXEMPLUL 3:
Forma atasata aplicatiei urmatoare contine doua controale Image, trei butoane de comanda etichetate cu Deschide, Depunere si Preluare si un control CommonDialog pentru afisarea ferestrei standard de dialog specializata īn deschiderea fisierelor grafice de tip *.BMP. Daca se alege butonul de comanda Deschide, atunci se afiseaza fereastra standard de dialog, prin care utilizatorul poate selecta numele unui fisier grafic. Imaginea este depusa īn primul control Image. Daca se alege butonul de comanda Depunere, atunci imaginea din primul control Image este copiata pe masa de montaj. Daca se actioneaza butonul de comanda Preluare, atunci se testeaza formatul informatiei de pe masa de montaj si īn cazul īn care formatul este de tip vbCFBitmap, imaginea de pe masa de montaj este afisata īn cel de-al doilea control Image. īn procedura atasata evenimentului Load pentru forma se efectueaza anumite initializari īn proprietatile controalelor Image. Fereastra afisata de aplicatie poate avea aspectul urmator:
Fig.pag. 407 sub forma unei ferestre.
Textul sursa al programului este urmatorul:
Private Sub Conunandl_Click ' Butonul Depunere
Clipboard.Clear
Clipboard.SetData Imagel.Picture
End Sub
Private Sub Command2_Click ' Butonul Preluare
If Clipboard.GetFormat(vbCFBitmap) Then
Image2.Picture Clipboard.GetData
End If
End Sub
Private Sub Command3_Click ' Butonul Deschide
Dim f As String
On Error GoTo Eroare
CommonDialog1.CancelError True
CommonDialog1.Filter "Bitmap(*.BMP)|*.BMP"
CommonDialog1. ShowOpen
f = CommonDialogl filename
Imagel.Picture LoadPicture(f)
Exit Sub
Eroare:
MsgBox "Nu s-a selectat nimic!", vbExclamation
End Sub
Private Sub Form_Load
Forml.Caption "Clipboard - Imagini"
Image1.Stretch = True 'Imaginile incarcate se adapteaza dupa control
Image2.Stretch True
End Sub
|