Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему компилируется? [D7]


Cobalt ©   (2013-01-17 11:16:00) 

uses  ... Grids...

  TStringGridEx = class(TStringGrid)
 private
   fSelectStarted: boolean;
   function CalcSelection(const ACol, ARow: integer): boolean;
   procedure SetSelectStarted(const Value: boolean);
   procedure DrawSelectStarted;
 protected
   property SelectStarted: boolean read fSelectStarted write SetSelectStarted;
   procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
     AState: TGridDrawState); override;
   procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
     X, Y: Integer); override;
   procedure KeyDown(var Key: Word; Shift: TShiftState); override;
 end;

  TStringGrid = class(TStringGridEx);

 TfrmReserveInfo = class(TForm)
   pnlTop: TPanel;
   cbTimeStep: TComboBox;
   lblTimeStep: TLabel;
   sgReserveInfo: TStringGrid;

Я ожидал увидеть ошибку типа "Идентификатор уже объявлен"


sniknik   (2013-01-17 12:08:00) [1]

> В одном модуле
кстати да.
можешь после где нибудь нарваться на ошибку "не совпадение типов TStringGrid и TStringGrid"... просто объявленных в разных модулях.


icWasya   (2013-01-17 11:35:00) [2]

В одном модуле создать класс в тем же именем действительно невозможно. А так - в первой строке ссылка на класс Grids.TStringGrid, а во второй - объявление нового класса с именем TStringGrid.


sniknik   (2013-01-17 11:21:00) [3]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо