Programarea este ușor - mesaje de compilator delphi

Există multe mesaje ale compilatorului, mai mult de două sute. În acest articol voi vorbi despre cele mai comune. Și așa, să începem:

<Что-то1> de așteptat dar <Что-то2> găsit. Aceasta este de obicei o eroare de sintaxă. De exemplu, lipsește un salt: există mai multe paranteze deschise decât cele închise. În acest caz, la compilarea programului, calculatorul va raporta: '') 'așteptat, dar'; ' găsit ":







Programarea este ușor - mesaje de compilator delphi

Un alt eveniment obișnuit este așteptat "END", dar "," găsit ". Acest mesaj poate fi emis în cazul în care punctul zecimal al întregului și partea fracționată a fost înlocuit cu o virgulă:

<Имя> nu este un identificator de tip. aceasta <Имя> nu este un nume de tip. Această eroare apare dacă încercați să declarați tipul unei variabile și folosiți un nume pentru numele de tip care a fost deja utilizat pentru altceva. De exemplu, o variabilă a fost deja declarată cu acest nume:

Metoda trebuie să fie virtuală sau dinamică. Metoda abstractă trebuie să fie virtuală sau dinamică. Să vedem de ce nu poate fi obișnuită. Să presupunem că scriem un joc pe calculator. Avem o anumită clasă TUnit, care este concepută pentru a atrage "om mic". El are metode draw și undraw, care desenează și elimină obiectul jocului de pe ecran. Să presupunem că avem o metodă Go care mai întâi numește metoda Undraw, își schimbă coordonatele și începe metoda draw. Am decis să creăm o altă clasă, de exemplu, TAdvancedUnut, care va arăta ușor diferită și trebuie să rescriem din ea metoda de tragere. Metoda Go nu se modifică. Ghici, de trei ori, cum va funcționa metoda go dacă lăsăm așa?

Corect, dacă vom declara metoda draw ca fiind virtuală, metoda go va apela metoda corectă de tragere, iar dacă nu, atunci cea veche, cea implementată de TUnit. Acum, hai să trecem la metode abstracte. Imaginați-vă că TUnit nu este o clasă completă, ci doar un gol. Știm că pentru toți strămoșii săi (sau aproape toți), metoda go va fi aceeași, iar desenul - diferit. În acest caz, putem declara metoda abstractă. Este clar că dacă nu declarăm că este virtual sau dinamic, atunci toți descendenții acestei clase vor fi chemați cu un cod de trasare inexistent.







Ambiguos apel încărcat la <Имя блока>. Compilatorul nu poate selecta în mod unic blocul supraîncărcat. Schimbați parametrul. Acest mesaj de eroare apare atunci când încercați să reîncărcați o procedură sau o funcție cu un astfel de set de parametri atunci când este imposibil să faceți o alegere clară. De exemplu, astfel:

procedura proba (a: integer; b: integer = 0); suprasarcină;
proba procedurii (a: integer; b: boolean = false); suprasarcină;


Dacă încercați să utilizați procedura proba cu un parametru în viitor, veți primi acest mesaj:


Într-adevăr, unde știe computerul despre ce vorbește utilizatorul atunci când se află în proiectare

a omis parametrul în mod implicit6 dacă este b: integer = 0, sau b: boolean = false.

Alocarea la variabila FOR-buclă <Имя>. Atribuirea unei valori parametrului FOR-cycle în corpul bucla. De exemplu, din cauza unei erori, numele i este folosit de două ori într-un ciclu multiplu:

Pentru i: = 1 la n nu Pentru i: = 1 la m face.

Este necesar să se facă astfel:


Nu se poate atribui / citi o proprietate numai pentru citire / scriere. Atribuirea unei valori pentru proprietatea read / only și citirea proprietății write / only nu este permisă. Iată un exemplu de design cu această eroare:

Programarea este ușor - mesaje de compilator delphi


Se aștepta o expresie constantă. În acest loc trebuie să existe o expresie constantă sau constantă, de exemplu, constanta de selecție în structura Casei.

Iată un exemplu al acestei erori:

Expresia constantă încalcă limitele subterane. Ieșiți valoarea constantei din interval. Controlul nu este complet. De exemplu, compilatorul va achiziționa alocarea x: = 4.000.000.000, unde x este de tip integer, dar valoarea lui x va fi înclinată.

Se așteaptă un identificator constant sau de tip. Este necesar un nume de tip sau un tip de tip.

Iată un exemplu de eroare:

În Delphi, tipul textului nu se aplică, este corect să faceți acest lucru:

procedura TForm1.FormCreate (expeditor: TObject);
var MyVar: TextFile;
începe

Nu s-a putut compila unitatea utilizată <Имя>. Compilarea modulului atașat <Имя> este imposibil. În secțiunea utilizări, ați specificat un fișier pe care sistemul nu îl poate compila. Motivele pot fi foarte diferite, de exemplu, există alte erori în acest modul.

Programarea este ușor - mesaje de compilator delphi

Se așteaptă un raport <Что-то> găsit. Lipsește descrierea sau operatorul. Iată un exemplu al acestei erori (cauza ei este cuvântul suplimentar "sfârșit" în construcția "caz"):


Programarea este ușor - mesaje de compilator delphi







Articole similare

Trimiteți-le prietenilor: