Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delphi 10.2 - Cannot resolve unit name 'Controls' and 'Dialogs'

I'm getting series of Undeclared Indentifier type error. Like: Undeclared identifier 'MessageDlg' at line 1300.

I thing that is because Delphi doesn't recognise 'Controls' and 'Dialogs' classes.

But i declared in uses clauses:

    uses
    Windows, Messages, SysUtils, Variants, Classes, Controls, Dialogs,
    ADODB, DateUtils, DB, Math, SqlExpr;
    //Cannot resolve unit name 'Controls'
    //Cannot resolve unit name 'Dialogs'
    .
    .
    .
    Procedure Insert_Data_BD();
    var
      j: Integer;
      IDOffer: Integer;
      Hour: String;
      adocOpen: TADOConnection;
      adospSELECT, adospINPUTX, adospINPUTY,
      adospINPUTZ, adospINPUTW, adospOUTPUTR : 
      TADOStoredProc;
      adoQuery: TADOQuery;
      blnUpdate: Boolean;
      strTabela: ShortString;
   begin
      Try
        ShortDateFormat := 'dd/mm/yy'; //Undeclared Identifier 'ShortDateFormat'
        ShortTimeFormat := 'hh:mm:ss'; //Undeclared Identifier 'ShortTimeFormat'
        DateTimeToString(Hour, 't', Time);
        blnUpdate := False;
   .
   .
   .
       MessageDlg('Error', mtInformation, [mbOK], 0); 
       // Undeclared identifier 'MessageDlg' 
       // Undeclared identifier 'mtInformation'
       // Undeclared identifier 'mbOK'
   end;

Someone know what could be happening?

Thanks in advance!

like image 763
Igor Tenório Avatar asked Nov 19 '25 07:11

Igor Tenório


1 Answers

I discovered what was happening...

I needed to declare Controls and Dialogs with vcl. I don't know why, cause in other projects ins't necessary do this.

uses
   Windows, Messages, SysUtils, Variants, Classes, vcl.Controls, vcl.Dialogs,
   ADODB, DateUtils, DB, Math, SqlExpr;

And for the error: Undeclared Identifier 'ShortDateFormat'

 Procedure Insert_Data_BD();
var
  j: Integer;
  IDOffer: Integer;
  Hour: String;
  adocOpen: TADOConnection;
  adospSELECT, adospINPUTX, adospINPUTY,
  adospINPUTZ, adospINPUTW, adospOUTPUTR : 
  TADOStoredProc;
  adoQuery: TADOQuery;
  blnUpdate: Boolean;
  strTabela: ShortString;

  begin
      Try
      //ShortDateFormat := 'dd/mm/yy';     
      //ShortTimeFormat := 'hh:mm:ss';     
        FormatSettings.ShortDateFormat := 'dd/mm/yy';       
        FormatSettings.ShortTimeFormat := 'hh:mm:ss';       
        DateTimeToString(Hour, 't', Time);
        blnUpdate := False;

See this link also: http://delphiprogrammingdiary.blogspot.com/2015/12/e2003-undeclared-identifier.html?_sm_au_=iVVBsnZBF232BDHF

Patience is a great virtue! :)

like image 153
Igor Tenório Avatar answered Nov 22 '25 04:11

Igor Tenório