Funcțiile delphi: descrieri, caracteristici, sfaturi și trucuri

Delphi este un mediu de dezvoltare proprietar (IDE) pentru Pascal pe Windows. Acesta implementează o versiune orientată pe obiecte a limbajului. Mediul de dezvoltare se bazează pe o interfață grafică de utilizator, legată de un editor de cod sursă de funcții Delphi. Limbajul de programare A câștigat popularitate datorită ușurinței de utilizare în dezvoltarea de aplicații grafice și orientate către baze de date.

Array-urile se află în centrul programării

Borland Software Corporation a lansat în 1995 succesorul lui Turbo Pascal, Delphi, un mediu de dezvoltare integrat care utilizează propriul dialect Object Pascal pentru a simplifica aplicațiile Windows. În comparație cu IDE-urile, Delphi dispune de un suport de baze de date fără precedent, creând un mediu multidimensional care permite programatorilor să scrie cod mai rapid și cu mai puține erori ca niciodată înainte.

Limbajul a fost un instrument versatil de dezvoltare a aplicațiilor, incluzând un editor de cod, un designer vizual care suporta dezvoltarea cross-platform, un depanator integrat, un mecanism de control și suport pentru plug-in-uri de la terți. Editorul de cod a oferit noi caracteristici Delphi dezvoltatorilor: analiza erorilor și refactorizarea.

Inițial, matricea dintr-un program Delphi era o matrice statică. Acest lucru a însemnat că dimensiunea sa trebuia să fie cunoscută în momentul scrierii codului.

Array-urile, coloana vertebrală a programării

Versiunea 4 a adăugat o nouă funcție Delphi, array-uri dinamice, care diferă ca dimensiune. Dezvoltatorul nu trebuia să declare o dimensiune atunci când scria codul și putea să o modifice în mod programatic prin crearea unei referințe și fără a aloca efectiv memorie pentru conținut.

În cea mai recentă versiune, înainte de a plasa datele, lungimea este setată cu ajutorul unei proceduri convenabile numite SetLength. Acum că lungimea este stabilită, atribuiți valorile, similar cu modul în care se face acest lucru cu o funcție Delphi de matrice statică. Tablourile dinamice sunt indexate cu zero.

În cazul în care programul trebuie redimensionat, acest lucru este pur și simplu imposibil cu array-uri statice, dar ușor de implementat cu array-uri dinamice. Pentru a face acest lucru, apelați SetLength și utilizați elementele nou alocate în matrice. Odată redimensionate, elementele originale sunt încă acolo și nu se pierde nici o informație.

Matrici statistice și dinamice

Array-urile statice ale funcțiilor Delphi sunt de fapt doar pointeri către o zonă continuă de memorie care a fost alocată pentru a conține cantitatea potrivită de date. Compilatorul efectuează operații matematice pentru a transforma indexul într-un pointer către un singur element din matrice, în timp ce cele dinamice, pe de altă parte, adaugă un nivel de indirectitate.

Static & tablouri dinamice

Un array dinamic este o înregistrare care conține informații despre el, inclusiv dimensiunea, numărul de elemente și un pointer către un array static. Atunci când se apelează SetLength, au loc mai multe procese:

  1. Câmpul "dimensiune" este actualizat.
  2. Noua matrice statică (internă) a funcțiilor Delphi 7 este alocată cu o nouă dimensiune.
  3. Elementele din vechea statică sunt copiate în noua statică.
  4. Pointerul static este schimbat în noul.

Dacă există suficient spațiu în poziția curentă a tabloului static intern spațiu pentru redistribuiți și există o variabilă care face referire la matrice, are loc doar pasul nr. 1. Acest lucru este implementat de fiecare dată când se modifică lungimea sa.

În cazul în care există alte variabile care fac trimitere la același array, vechea variabilă statică nu va fi ștearsă. Ori de câte ori un array dinamic este redimensionat, acesta este copiat, ceea ce înseamnă suprascrierea în memorie. Timpul necesar este proporțional cu dimensiunea, de exemplu, copierea de la 20 de elemente durează mai mult decât de la 10 elemente.

Operatori de șiruri de caractere

Operatori de șiruri de caractere

Ca în orice limbaj de programare, în Delphi variabilele servesc ca și spații de stocare utilizate de către pentru depozitare valori. Variabila care conține o anumită matrice de caractere este declarată ca String. Delphi dispune de o gamă de calitate de operatori de șiruri de caractere, funcții și proceduri.

Înainte de a atribui date String la o variabilă, trebuie să cunoașteți patru tipuri de șiruri de caractere. Funcția Delphi shortstring - Shortstring. Este o matrice numărabilă (ASCII) de caractere, conținând până la 255 de caractere pe șir. Primul octet al acestei matrice stochează lungimea. Acest principiul de funcționare a fost de bază în Delphi 1 (Delphi pe 16 biți) și a creat o variabilă numită small, cu o lungime maximă de 50 de caractere.

Operatori de șiruri de caractere

Atunci când atribuiți o valoare unei variabile Short String, șirul este trunchiat. Mai ales dacă depășește lungimea maximă de acest tip.

Variabilele și tipul lor trebuie declarate înainte de a utiliza. Trebuie să se aleagă un tip de variabilă care va conține variabila:

  1. Integer sunt numere întregi, de exemplu, 42 sau -5.
  2. Simplu sau dublu - utilizat ca tip de virgulă, de exemplu, 3.3.

Operațiile pot fi aplicate variabilelor numerice:

  • suplimentare;
  • scădere;
  • înmulțire;
  • modulus - se poate aplica numai la un număr întreg;
  • char este utilizat pentru a conține un singur caracter, de exemplu, m;
  • string - folosit pentru a conține propoziții, de exemplu Hello world;
  • valori booleene - True și False.

Pentru a combina 2 șiruri de caractere, utilizați operatorul "+". Exemplu: Hello + world va fi implementat ca Hello world.

Variabile și constante

Un parametru reprezintă o informație și face apelul către o funcție Delphi într-o procedură. O variabilă este o bucată de date declarată în cadrul unei funcții și este disponibilă numai în cadrul acesteia. Este o valoare locală, care se modifică în funcție de cerințele dezvoltatorului. Există variabile globale disponibile în dpr și în proiect. Acestea ar trebui să fie utilizate numai în cazuri excepționale.

Atunci când se utilizează o variabilă, aceasta este declarată în toate fișierele în care este utilizată. Numai variabilele transmise ca parametri către funcțiile și procedurile Delphi nu sunt declarate în se aplică. Cuvântul cheie var este folosit pentru a declara. Acestea pot fi declarate în .DPR sau în cadrul procedurilor din dosar .pas.

Componenta TDBGrid de la Delphi este una dintre bijuteriile VCL. Conceput pentru a permite utilizatorului să vizualizeze și să editeze date într-o grilă tabelară, acesta Oferă diferite modalități de configurează modul în care sunt prezentate datele. De exemplu, adăugarea de culori la o grilă de bază de date va îmbunătăți aspectul și va delimita importanța anumitor rânduri sau coloane din baza de date.

Fișiere Delphi

Delphi este format din unități, fișiere sursă asociate și fișe de indexare (formulare) care definesc interfețele grafice. Un tabel cu diversele fișiere care ar putea fi modificate și scopul acestora.

Extensie fișier

Descriere

.DCR

Fișa proiectului

.DFM

Un desen de formular care conține proprietățile componentelor grafice

.dpr

Fișierul de proiect este inima aplicației și reunește toate fișierele diferite care conțin cod (.trece) cu .DPR cu funcția de dată Delphi

.PAS

Fișierul sursă care conține codul aplicației

.bdsproj

Fișier de proiect asociat cu .DPR

.RC

Fișier de resurse Windows

Tabel de fișiere generate după compilare.

Extensie fișier

Descriere

.BPG

Fișier de grup de proiect.

.dcu

Fișier creat în momentul compilării, dar nu este obligatoriu.

.dpk

fișierul sursă al pachetului.

.dof

Fișier de opțiuni de proiect.

.dsk

Preferința IDE.

.RES

Un fișier resursă Windows, care poate conține pictograme, imagini bitmap, sunete.

Funcția Pos

Funcția POS din Delphi returnează un număr întreg care indică poziția primei apariții a unei linii în alta. Acesta este creat după cum urmează. Pos caută prima apariție a unui șir de caractere specificat. Acesta este de obicei oferit în ghilimele simple în sursă. Sursa este o variabilă.

Dacă Pos găsește un șir de caractere, se returnează poziția caracterului în Source și primul caracter din Str, ca valoare întreagă, altfel funcția Delphi returnează 0. String și Source vor fi șiruri de caractere. Funcția Pos de modă veche - cele mai frecvente modul de căutare și se află întotdeauna la începutul.

Funcția Pos actualizată ajută la rezolvarea acestei probleme. Caută șirul de caractere s1 în s2 și returnează poziția acestuia, la fel ca vechiul Pos. De asemenea, puteți specifica o poziție de pornire și o lungime maximă pentru căutare.

Funcția Pos

Importul funcțiilor de bibliotecă

Pentru a importa subrutine de bibliotecă (.DLL) atașați o directivă de forma: externalstringConstant, la sfârșitul antetului funcțiilor și procedurilor, unde string Constant este numele fișierului de bibliotecă între ghilimele. Este posibil să se importe un subprogram cu un nume diferit. Pentru a face acest lucru, numele original este specificat într-o directivă externă:

Externe stringConstant1, namestringConstant2.

În cazul în care primul șir de caractere Constant specifică numele fișierului de bibliotecă, iar al doilea este numele sursei subrutinei. Următoarea instrucțiune importă o funcție din user32.dll. Numele original al funcției este MessageBoxA. În locul numelui se poate folosi un număr pentru a identifica subrutina care urmează să fie importată:

externalstringConstantindexintegerConstant.

unde integerConstant este indicele subrutinei din tabelul de export.

În declarația de import, asigurați-vă că respectați denumirea exactă și majusculele din numele subprogramului. Cu toate acestea, odată ce procedura este importată, nu mai există nicio diferență între cele două.

Un exemplu de creare a unei matrice unidimensionale

Să presupunem că trebuie să generăm 3 matrici unidimensionale pentru 50 de membri software. Prima matrice este numele, a doua matrice este e-mailul, iar a treia matrice este numărul de descărcări.

Oricare dintre ele are indici și cod pentru a susține toate cele 3 liste în mod sincron. Desigur, puteți încerca cu o singură matrice. Acest lucru necesită șiruri de nume și adrese de e-mail și un număr întreg de descărcări.

De exemplu, următoarea declarație organizează un tip de înregistrare numit REMember, care poate fi aplicat în acest caz.

tip de înregistrare cu numele REMember

De fapt, construcția datelor de înregistrare are capacitatea de a amesteca tot felul de tipuri integrate Delphi, inclusiv cele create. Înscrierile condiționează colecții fixe de componente de diferite tipuri. Orice element este similar cu o variabilă de nume și tip.

Tipul de funcție Delphi Member acoperă 3 câmpuri: șir de valori Name, eMail și integer Posts. Odată ce tipul de înregistrare este setat, puteți declara o variabilă Member. Nu alocă memorie pentru Nume, eMail și Mesaje. Pentru a crea în mod practic o fișă de membru, se declară o variabilă.

Un exemplu de creare a unei matrice unidimensionale

Utilizarea componentelor OnMouseOver

Codul pentru evenimentele OnMouseMove se creează cu componenta TDBGrid, astfel încât să poată a fost de a găsi rânduri și coloane de DBGrid (celule) în punctul în care cursorul mouse-ului a fost plasat. Dacă este plasat peste o grilă, se declanșează gestionarul de eveniment OnMouseMove. Apoi, metoda MoveBy a componentei DataSet este utilizată pentru a seta înregistrarea curentă care urmează să fie afișată.

Utilizarea componentelor OnMouseOver

Codul echivalent este utilizat pentru a demonstra unde se află cursorul mouse-ului și pentru a-l schimba atunci când acesta este poziționat deasupra barei de titlu. Pentru setarea corectă a activului sunt necesare intrări "hack" DBGrid și accesați proprietatea protejată Row. Liniile de proprietate ale componentei TCustomDBGrid conțin o referință la rândurile active în acel moment.

Multe componente au proprietăți și metode utile marcate ca invizibile sau protejate de către dezvoltatorii Delphi. Astfel de elemente sunt accesate cu ajutorul unei tehnici simple numite "hacking securizat".

Acest cod selectează înregistrarea afișată în grilă "sub" cursorul atunci când indicatorul mouse-ului trece peste grilă. Nu este necesar să faceți clic pe grilă pentru a modifica o intrare existentă. Evenimentul OnDrawColumnCell este utilizat pentru a gestiona nevoia de grafică personalizată pentru datele din celule.

Skinning aplicații Delphi

Aceste componente schimbă aspectul aplicațiilor prin adăugarea de teme și skin-uri. O modalitate ușoară de a îmbunătăți interfața grafică cu utilizatorul (GUI). VCLSkin - o componentă ușor de utilizat pentru crearea de interfețe grafice de utilizator pentru aplicațiile Delphi. VCLSkin va crea o temă sau un skin pentru el fără a modifica codul sursă.

Biblioteca VCL DynamicSkinForm VCL oferă suport pentru coperți de formulare, meniuri, tooltips și multe controale personalizate standard și non-standard.

У Există multe piei obiecte și efecte pentru aplicații interesante precum WinAmp și iTunes. Un editor special permite utilizatorului să personalizeze piei. SkinAdapter este o componentă DynamicSkinForm care vă permite să creați skin-uri pentru aplicații fără a modifica codul sursă.

SUISkin oferă o aplicație automată de jupuire. Cu acesta, nu este necesară nicio modificare a proiectelor existente. Pur și simplu trageți și fixați o componentă a motorului de skin pe un formular principal și setați câteva proprietăți. Se va ocupa automat de toate formularele și dialogurile. Fișierele Skin pot fi compilate în fișiere EXE. Acestea pot fi activate sau dezactivate cu ușurință în timpul execuției.

Pachetul de dezvoltare App Face UI este o soluție pentru crearea de interfețe grafice vizuale pentru aplicații care pot fi utilizate în VC, VB.Net, Delphi, Visual Basic, C++ Builder și Win32 SDK. Acesta include gestionarea skin-urilor, un instrument vizual de creare a skin-urilor, exemple de cod sursă și un manual tehnic. Biblioteca Appface.dll, este o componentă a kernel-ului și poate gestiona automat toate ferestrele create în aplicația țintă.

Avantajele mediului de programare

Caracteristicile Delphi

Delphi s-a impus cu siguranță în sine unul dintre cele mai robuste medii de programare în schimbare formă și dimensiune. În ciuda a toate acestea, rămâne la fel de flexibil ca și baza de cod din care provine.

Motive pentru care Delphi este utilizat și astăzi:

  1. Sintaxă clară care face codul cât mai ușor de citit posibil.
  2. Un mecanism drag-and-drop pentru implementare, permițând crearea rapidă de software GUI.
  3. Suport pentru baze de date SQL.
  4. Suportă toate API-urile Windows.
  5. O mulțime de-programare orientată pe obiecte.
  6. Compatibil cu C ++.
  7. Mediu VCL extrem de adaptabil.
  8. Necesită o întreținere minimă a aplicației.

La apogeul său, vasta comunitate a dezvoltat o serie de produse de programare de înaltă calitate sub forma unor componente cu proceduri și funcții Delphi, multe dintre acestea fiind complet gratuite și open source. Totul funcționează și astăzi, cu o singură problemă - lipsa de programatori Delphi experimentați.

Articole pe această temă