![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему компилируется? [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]без упреждающего объявления типов было бы затруднительно делать ссылки на самого себя... например. а это распространенная практика.