Sfaturi pentru cei care programează în vb & vba

Andrey Kolesov, Olga Pavlova

Sfat 204. Cum să desenați un cadru pe un formular fără a utiliza controlul Frame

Funcția DrawEdge, parte a API-ului Win32, vă permite să obțineți efecte foarte interesante. Folosind constantele EDGE_, puteți specifica diferite tipuri de granițe de frontieră, astfel încât acestea să fie înecate sau ridicate deasupra formei. Și constantele BF_ definesc limitele cadrului pe care doriți să le desenați (de exemplu, utilizând BF_BOTTOM, puteți desena doar marginea inferioară a cadrului):







În evenimentul Form_Paint, introduceți următorul cod care spune că doriți să desenați un dreptunghi care este ridicat peste formular:

Sfat 206. Ștergerea tuturor elementelor selectate din listă

Dacă trebuie să ștergeți mai multe elemente din lista care acceptă modul MultiSelect, utilizați următorul program simplu. Să presupunem că avem o casetă listă formată din cinci elemente: Element1, Element2, Element3, Element4 și Element5. Să setăm proprietatea MultiSelect a comenzii ListBox ca Extended sau Simple și apoi să introducem următorul cod:

Am pus pe formular un buton de comandă cu numele "Șterge" și scrie următoarele pentru el:

Acum începeți programul nostru, selectați trei elemente (Element1, Element3 și Element5), apoi faceți clic pe butonul "Ștergeți". Și asta este!

Sfat 207. Cum se face o bară de derulare orizontală într-un control RichTextBox

În mod implicit, când puneți un control RichTextBox pe un formular, VB setează proprietatea RightMargin la 0. Aceasta înseamnă că textul introdus de utilizator se află în întregime în caseta de text. Pentru a afișa o bară orizontală de defilare, trebuie să aveți valoarea proprietății RightMargin mai mare decât lățimea casetei de text. În caz contrar, chiar dacă setați proprietatea ScrollBars ca 1- rtfHorizontală, RichTextBox nu afișează o bară de defilare.

De exemplu, plasați elementul de control al formei RichTextBox având o proprietate 3200. RightMargin Apoi setați lățime ca și 3300 proprietatea scrollbar - ambele 1- rtfHorizontal. Rulați proiectul și începeți să tastați. Când ajungeți la marginea căsuței de text, VB afișează o bară orizontală de defilare.

Sfat 208. Adăugarea unei linii noi în text într-un control TextBox

Uneori este posibil să fie necesar să adăugați informații suplimentare unui text existent într-un control TextBox cu mai multe linii (proprietatea MultiLine este setată la True). Să presupunem că doriți să adăugați o linie de genul: "Update:" plus data curentă. Pentru a face acest lucru, puteți utiliza proprietățile SelStart și SelText. După cum probabil știți deja, proprietatea SelStart returnează sau stabilește începutul selecției, proprietatea SelText este de fapt textul selectat. Dacă textul nu conține nici o selecție, ambele proprietăți returnează un punct de inserție. Prin urmare, pentru a introduce o nouă linie de text într-o casetă text cu mai multe linii, utilizați următorul cod:

Acest cod muta punctul de inserție la sfârșitul oricărui text din controlul Text1 și apoi introduce o nouă linie care conține informații suplimentare.

Sfat 209. Cum se face VB 6.0 să deschidă fereastra de cod în modul "maximizat"

VB 5.0 salvează întotdeauna setările IDE pe care le-ați setat în timpul ultimei sesiuni. Deci, și-a amintit cu care ferestre preferați să lucrați - normal sau "desfășurat". Din păcate, VB 6.0 nu face acest lucru - deschide întotdeauna ferestrele Code și Object în modul normal. Această problemă poate fi rezolvată prin modificări mici în Registrul Windows, astfel încât IDE-ul va deschide aceste ferestre în modul "extins". Cu toate acestea, acestea vor fi întotdeauna extinse la o dimensiune a ecranului - VB 6.0 încă nu pot stoca setările pentru IDE între sesiuni.







Atunci când se lucrează cu registrul, să fie atent, prin urmare, înainte de a începe să-l modifice, face o copie de rezervă, astfel încât să puteți restaura registry în cazul unor defecțiuni.

Deci, pentru a face VB 6.0 pentru a deschide codul fereastra sau obiect în modul „extins“, trebuie să adăugați o nouă valoare MDIMaximized la următoarea cheie de registry: HKEY_CURRENT_USER / Software / Microsoft / Visual Basic / 6.0 / MDIMaximized = „1“ Pentru a face acest lucru în Windows, faceți clic pe butonul Faceți clic pe Start, apoi pe Executare. Tastați RegEdit în caseta de dialog Executare, apoi faceți clic pe OK. Apoi Windows va afișa Registry System în care găsiți folderul VB 6.0. Apoi faceți clic dreapta oriunde în panoul din dreapta și selectați New | String Value din meniul contextual. Introduceți MDIMimprimat ca nume și apăsați pe Enter. Acum faceți clic dreapta pe elementul MDIMaximizată și selectați Modificați din meniul contextual. În cele din urmă, în caseta de dialog Editare șir, tastați 1 ca valoare nouă și faceți clic pe OK. Când faceți acest lucru, Windows va atribui valoarea introdusă elementului MDIMaximizată. Asta e tot! Acum, închideți Registrul și deschideți fereastra Cod sau Obiect în oricare dintre proiectele VB 6.0. IDE-ul va afișa aceste ferestre în modul "maximizat".

În plus față de faptul că puteți declara explicit tipul de variabilă, VB vă permite să faceți acest lucru cu caractere speciale. De exemplu, în loc să utilizați:

puteți scrie pur și simplu:

Iată o listă completă a tipurilor de date și a caracterelor corespunzătoare:

Cu toate acestea, ar trebui să folosiți prudență atunci când utilizați aceste simboluri, deoarece acestea reduc lizibilitatea codului.

Sfat 211. Crearea unui obiect Excel în VB

În Consiliul 197 (ComputerPress 6'99, CD-ROM), am vorbit despre cum să creați un obiect Word în VB. Acum vom arăta cum să efectuați aceeași procedură pentru Excel.

Mai întâi, adăugați o legătură la biblioteca de obiecte Microsoft Excel 8.0 (Project | Referințe) la aplicația VB.

Apoi introduceți următorul cod pentru a crea o instanță de Excel:

În cele din urmă, examinați cu atenție Browserul de obiecte în VB pentru informații despre alte proprietăți și metode ale obiectului Excel.

Sfat 212. Funcția DateDiff se ocupă de date

Aici funcția DateDiff calculează diferența în lunile calendaristice între două date (argumentul "m"). Dacă returnează 0, ambele date sunt în aceeași lună. Pentru a utiliza această funcție în aplicația dvs., puteți utiliza un design software similar:

Sfat 213. Pentru a anula programul, folosiți Ctrl + Pause

La testarea unui program de mediu în VB pentru întreruperea sau accident său poate fi utilizat, respectiv, sau comanda Break End din meniul Run. Cu toate acestea, acestea funcționează numai în momentul așteptării unui eveniment extern pe un formular de dialog. În cazul în care programul efectuează un cod (de exemplu, prelucrarea datelor în ciclul), sau de așteptare pentru utilizator după retragerea casetei de mesaje (Message Box), întreruperea de urgență sau termina cu aceste comenzi va eșua.

Cu toate acestea, pentru a rezolva această problemă este simplă - apăsați combinația de taste Ctrl + Pauză pentru a întrerupe programul de urgență, care traduce imediat aplicația în modul Pauză, și numai apoi utilizați comanda de mediu Continue (difuzate în continuare) sau End (pentru a finaliza).

Sfat 214. Cum să vedeți începutul textului selectat

Cele mai multe casete de dialog pentru procesarea aplicațiilor comerciale profesionale care conțin câmpuri de text după cum urmează. Când utilizatorul merge în câmpul de introducere a textului cu ajutorul tastei Tab sau a tastei de comenzi rapide (combinația Alt cu oricare altă tastă), selectează complet textul conținut în acest câmp. Apoi intră într-un text nou, care înlocuiește conținutul întregului câmp. În același timp, dacă faceți clic pur și simplu pe textul introdus în câmpul de introducere, atunci nu va apărea nicio selecție - numai focalizarea va merge acolo.

Documentația bazei de cunoștințe VB vă spune cum să faceți acest lucru cu API-ul GetKeyState. Cu toate acestea, această tehnică are anumite inconveniente în cazurile în care lungimea textului depășește lățimea câmpului. Utilizatorul vede apoi numai sfârșitul textului selectat, care nu este foarte convenabil, deoarece nu este întotdeauna posibil să se determine ce este în discuție acolo.

Utilizarea funcției GetKeyState împreună cu operatorul și metoda SendKeys textwidth vă permite să creați o soluție hibridă, în cazul în care tasta Tab sau comanda rapidă selectează tot textul în caseta de intrare, dar utilizatorul vede începutul textului, nu la sfârșitul anului.

Mai întâi, descrie funcția API GetKeyState și creează o subrutină SelectWholeText:

Apoi apelați subrutina creată din evenimentul GotFocus din orice câmp de text:

Sfat 215. Cum să citiți numărul de serie al unui disc

Noua bibliotecă Microsoft Scripting Runtime conține o ierarhie a FileSystemObject, care constă din mai multe obiecte care vă permit să obțineți informații despre discuri, foldere și fișiere. De exemplu, puteți obține numărul de serie al unui disc utilizând acest cod:

Și utilizând proprietatea FreeSpace a obiectului Drive, puteți verifica dacă aveți suficient spațiu liber pe disc:

Puteți citi mai multe despre acest lucru în Ajutorul VB în secțiunile Dicționar și FileSystemObject.

Sfat 216. Aplicarea controlului de etichetare ca separator

Pentru a crea o aplicație în stilul Windows Explorer, puteți utiliza controlul de etichetare ca separator între alte două comenzi, cum ar fi ListView și TreeView.

Mai întâi, vom plasa aceste trei componente pe formular, apoi introduceți următorul cod:







Articole similare

Trimiteți-le prietenilor: