Gadgetisimo » Ghiduri tehnice » Designer vizual pentru MsgBox în LibreOffice Basic

Designer vizual pentru MsgBox în LibreOffice Basic

Ce este și la ce folosește un MsgBox (Message Box)

Dacă ați programat în VBA de la Microsoft sau Basic de la LibreOffice sigur ați avut nevoie de MsgBox. Cu ajutorul lui afișați o mică (și simplă) fereastră prin intermediul căreia transmiteți mesaje utilizatorului și, eventual, codul apelant va continua pe anumite direcții, în funcție de butonul apăsat de utilizator.

Sintaxa generală a MsgBox este următoarea:

MsgBox(MessageText[, DialogCode[, Title]])

unde:

  • MessageText – obligatoriu, conține textul pentru mesajul pe care doriți să-l afișați
  • DialogCode – neobligatoriu, un cod numeric, format din suma a trei coduri unice, acestea fiind funcție de ce butoane dorim să afișăm, ce icoană dorim să apară în stânga mesajului și ce buton vrem să fie cel implicit (adică ce buton se apasă dacă utilizatorul apasă pe tasta Enter). De ce am avea nevoie de un buton implicit? Păi, simplu, dacă avem două butoane Yes și No, iar la Yes urmează să se întâmple ceva ireversibil (sau greu reversibil), degeaba îl întrebăm pe utilizator ”Chiar vrei să ștergi cele 234 de fișiere?” dacă el a adormit pe tasta Enter și nu am ales ca implicit al doilea buton😊Dacă nu completăm nimic, va apare doar butonul OK și nici o icoană.
  • Title – neobligatoriu, este textul titlului ferestrei. Dacă nu completăm nimic, titlul va fi ”LibreOffice” urmat de numărul versiunii LibreOffice

Dacă ne intereseză să vedem și ce buton s-a apăsat, folosim ceva de genul:

RetValue = MsgBox(MessageText[, DialogCode[, Title]])

și în variabila RetValue vom avea un număr întreg, bine stabilit, funcție de butonul apăsat. Sau tasta, pentru că dacă utilizatorul a apăsat butonul X pentru închiderea ferestrei sau tasta Esc, vom știi din faptul că RetValue primește valoarea 0 (zero).

De ce avem nevoie de un Designer pentru MsgBox?

Dacă dorim doar să transmitem un mesaj, să avem doar butonul OK și nu ne interesează ce a apăsat utlizatorul, varianta

MsgBox(“Actualizarea datelor s-a terminat”)

este suficientă. Însă dacă vrem ceva mai complex, Designerul din acest articol este ”un must”, cum zic romglezii 😊

  • ne construim tot codul în mod vizual, din câteva click-uri
  • testăm MsgBox-ul direct în Designer, astfel vom vedea imediat cum arată, fără să părăsim Designer-ul
  • după testare obținem direct și RetValue, numeric și explicit
  • obținem definiția (linia de cod), dar și codul extins (varianta în care tratez diferențiat în funcție de butonul apăsat
  • îmi copiez în Clipboard ce vreau (definiția sau întreg codul extins) și dau Paste în codul meu

Cum folosesc Designer-ului MsgBox?

Fereastra MsgBox Designer
Fereastra MsgBox Designer

Titlu fereastra – aici completez textul care vreau să apară ca titlu al ferestrei

Mesaj – aici completez textul care vreau să apară ca mesaj

Butoane – aleg combinația de butoane dorită. În paranteză am trecut codul care se însumează pentru DialogCode

Icoane – aleg ce icoană vreau să folosesc în ferestră. În paranteză am trecut codul care se însumează pentru DialogCode

Buton implicit – aleg al câtelea buton îl vreau ca implicit. În paranteză am trecut codul care se însumează pentru DialogCode. Aici trebuie să țineți cont de ce am scris în dreapta pe fundal roșu.

Pe măsură ce aleg butoane, icoane sau butoane implicite, la Total se actualizează suma pentru DialogCode.

Actualizeaza codul – la apăsarea acestui buton se vor actualiza Definitia și Codul extins.

Indentare – cu câte caractere Spațiu doresc să se facă indentarea codului extins (rândurile cu Case…)

Testează – la apăsarea butonului va apare un Message Box generat pe baza a ceea ca am ales. Nu e nevoie să actualizez codul în prealabil. După ce închid acest Message Box, la Rezultat va apare valoarea RetValue și explicit butonul apăsat de utilizator.

Cancel – închid Designer-ul. Se poate și cu tasta Esc.

Testare MsgBox generat în Designer
Testare MsgBox generat în Designer
Codul returnat la testarea MsgBox generat în Designer
Codul returnat la testarea MsgBox generat în Designer

Cum instalez și accesez Designer-ul pentru MsgBox în LibreOffice?

  1. Descărcați fișierul acesta. Dezarhivați folderul Utilitare din el.
  2. Rulați LibreOffice. Nu e nevoie să deschideți un fișier anume
  3. Mergeți la meniul Tools – Macros – Organize Dialogs…
  4. Alegeți tab-ul Libraries și la Location alegeti din listă My Macros and Dialogs
  5. Dați pe butonul Import… și mergeți în folderul dezarhivat Utilitare. Alegeți orice fișier cu extensia .xlb din folder și Open. În următoarea fereastră alegeți OK și apoi Close. Biblioteca cu dialogul și codul necesar sunt instalate.
  6. Pentru a accesa rapid, vom adăuga un buton la toolbar-ul din interfața de editare Basic.
    • Mergem la meniul Tools – Macros – Edit Macros… Așa am deschis editorul Basic.
    • Mergem la meniul Tool – Customize…
    • Sus alegem tab-ul Toolbars. În lista Category alegem Macros (aici durează un pic până se încarcă lista de la Available Commands). În lista Available Commands alegem My Macros – Utilitare – GenerareMsgBox – MsgBoxDialog.
    • La Scope trebuie să avem selectat LibreOffice Basic și la Target să fie Standard.
    • Apăsăm pe butonul cu săgeata groasă orientată spre dreapta. Acum am creat butonul pentru lansarea designer-ului. Butonul va fi fără icoană și cu textul MsgBoxDialog.
    • Dacă vrem ceva mai profi, dăm click pe butonul Modify, apoi Rename… și modificăm în Designer MsgBox.
    • Dacă vrem și mai profi, alegem și o icoană pentru buton. Din nou Modify, apoi Change Icon… Eu am ales icoana de pe rândul 42, coloana a 8-a.

Acum, de fiecare dată când aveți nevoie de Designer, apăsați pe buton și aveți cu ce să vă jucați.

Las mai jos și codul, pentru referință.


Până data viitoare,

Happy Coding!

Surse: imagine articol generată cu ChatGPT


Back To Top
Gadgetisimo
Prezentare generală a confidențialității

Acest site folosește cookie-uri pentru a-ți putea oferi cea mai bună experiență în utilizare. Informațiile cookie sunt stocate în navigatorul tău și au rolul de a te recunoaște când te întorci pe site-ul nostru și de a ajuta echipa noastră să înțeleagă care sunt secțiunile site-ului pe care le găsești mai interesante și mai utile.