4.5. OPERAŢIUNI DE INTRARE-IEŞIRE
În categoria operaţiunilor de intrare / ieşire (I/O) se înscriu următoarele:
-
schimbul de informaţii cu utilizatorul: acesta se poate desfăşura prin intermediul unor casete de dialog predefinite (InputBox, MsgBox) sau prin intermediul unor controale definite de dezvoltatorul proiectului VBA.
-
schimbul de informaţii cu fişiere şi/sau baze de date: acesta se realizează prin intermediul unor instrucţiuni dedicate acestor operaţii.
4.5.1. Dialogul standard cu utilizatorul Funcţia InputBox
Apelul funcţiei InputBox afişează o casetă de dialog care conţine un mesaj, două butoane (OK şi Cancel) şi o zonă text în care se poate tasta un răspuns (de tip String, chiar dacă se transmite o valoare numerică). Textul introdus este transmis ca valoare a funcţiei la acţionarea butonului OK sau Enter, iar acţionarea butonului Cancel (ca şi închiderea dialogului ca fereastră) transmite un şir de lungime zero, indiferent de valoarea zonei text.
Sintaxa funcţiei este:
InputBox(prompt[, title] [, default] [, xpos] [, ypos])
unde:
prompt este expresia String cu mesajul afişat în caseta de dialog (max.1024 caractere). Mesajul poate fi aranjat pe mai multe linii prin combinaţii de caractere Chr(13) – carriage return, Chr(10) – linefeed, Chr(13)&Chr(10) – CR+LF.
title este expresia de tip String cu titlul ferestrei dialogului. Dacă este omis se va folosi titlul aplicaţiei.
default este expresia de tip String, opţională, conţinând textul afişat iniţial în zona text rezervată utilizatorului. Textul este, în lipsa modificării lui, retransmis ca răspuns (acţionând butonul OK).
xpos este expresia numerică specificând coordonata orizontală a colţului stânga sus al casetei. În lipsa argumentului, caseta de dialog este centrată orizontal.
ypos este expresia numerică specificând coordonata verticală a colţului stânga sus al casetei. În lipsa argumentului, caseta de dialog este poziţionată la aproximativ o treime de ecran.
Dacă valoarea funcţiei nu este atribuită (sau utilizată într-o alta expresie) este evident că se pierde, fără semnalarea vreunei erori.
Funcţia MsgBox
Un dialog mai simplu decât InputBox este realizat prin forma predefinită afişată de funcţia MsgBox. Se afişează un mesaj într-o casetă de dialog şi se asteaptă ca utilizatorul să acţioneze unul dintre butoanele existente (numărul şi tipul lor este fixat la proiectarea aplicaţiei). Funcţia returnează o valoare întreagă, indicând astfel care buton a fost acţionat. Sintaxa este:
MsgBox(prompt[, buttons] [, title])
unde:
prompt este textul mesajului (asemenea lui InputBox)
buttons este o expresie numerică egală cu suma valorilor care specifică numărul, tipul şi atributele butoanelor. Aici se fixează şi modalitatea ferestrei (Vezi constantele predefinite din tabelul care urmeaza). Valoarea implicită este 0.
title identice cu argumentele similare descrise la InputBox.
Constantele recomandate pentru formarea argumentului buttons sunt:
Constanta
|
Valoare
|
Descriere
|
OKOnly
|
0
|
Numai butonul OK
|
OKCancel
|
1
|
OK şi Cancel
|
AbortRetryIgnore
|
2
|
Abort, Retry şi Ignore
|
YesNoCancel
|
3
|
Yes, No şi Cancel
|
YesNo
|
4
|
Yes şi No
|
RetryCancel
|
5
|
Retry şi Cancel
|
Critical
|
16
|
Icoana de Critical Message
|
Question
|
32
|
Icoana de Warning Query
|
Exclamation
|
48
|
Icoana Warning Message
|
Information
|
64
|
Icoana de Information Message
|
DefaultButton1
|
0
|
Primul buton este cel implicit (echivalent cu Enter)
|
DefaultButton2
|
256
|
Al doilea buton este cel implicit
|
DefaultButton3
|
512
|
Al treilea buton este cel implicit
|
DefaultButton4
|
768
|
Al patrulea buton este cel implicit
|
ApplicationModal
|
0
|
Application modal: aplicaţia curentă este oprită până când raspunde utilizatorul
|
SystemModal
|
4096
|
System modal: toate aplicaţiile sunt oprite până când utilizatorul răspunde la dialog
|
MsgBoxSetForeground
|
65536
|
Aduce fereastra in prim-plan
|
MsgBoxRight
|
524288
|
Textul este aliniat la dreapta
|
MsgBoxRtlReading
|
1048567
|
Textul va aparea de la dreapta la stanga, conform regulilor de citire ale sistemelor evreiesti si arabe.
|
Pentru utilizarea constantelor in cadrul argumentului buttons, vor fi precedate de MsgBoxStyle, de ex: MsgBoxStyle.YesNoCancel
Valorile 0-5 descriu butoanele, 16,32,48 şi 64 descriu stilul icoanei afişate, 0, 256 şi 512 determină butonul implicit, iar ultimul grup (0 şi 4096) determină modalitatea casetei de dialog. La formarea argumentului Buttons se va aduna doar câte un număr din fiecare grup.
Dostları ilə paylaş: |