Delphi 10.2 - Не удается разрешить имя устройства «Элементы управления» и «Диалоги» - PullRequest
0 голосов
/ 20 сентября 2018

Я получаю серию ошибок типа Undeclared Indentifier.Например: необъявленный идентификатор «MessageDlg» в строке 1300.

Дело в том, что Delphi не распознает классы «Controls» и «Dialogs».

Но я объявлен в предложениях использования:

    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;

Кто-то знает, что может происходить?

Заранее спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

Я обнаружил, что происходит ...

Мне нужно было объявить элементы управления и диалоги с помощью vcl.Я не знаю почему, потому что в других проектах нет необходимости делать это.

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

И для ошибки: необъявленный идентификатор '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;

Смотрите также эту ссылку: http://delphiprogrammingdiary.blogspot.com/2015/12/e2003-undeclared-identifier.html?_sm_au_=iVVBsnZBF232BDHF

Терпение - великая добродетель!:)

...