Форум программистов, компьютерный форум, киберфорум
dondublon
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Немного о генериках в Delphi

Запись от dondublon размещена 06.03.2013 в 08:08

Еще один пример того, как тупо сделаны генерики в delphi.
Delphi
1
2
3
4
5
6
7
8
9
10
11
 
FDialog.glaInline.OnSetLayer :=
            procedure (ANewLayer: IGridLayer)
            var
                realGridLayer: IGridLayer;
            begin
                realGridLayer := ANewLayer as IGridLayer; // <------- вот!
                FGridSrc := realGridLayer.GetGrid;
                Fgrid4 := FGridSrc as IGrid4;
 
            end;
Я вынужден был отдельно преобразовать ANewLayer к IGridLayer. Хотя и без этого всё прекрасно компилилось.
Но при попытке вызвать метод IGridLayer-а (ANewLayer.GetGrid) вываливалось AV.
Чтобы было понятно:
Delphi
1
2
3
4
glaInline: TLayerAcceptor<IGridLayer>
...
TLayerAcceptor<T: ILayer> = class( ...
    property OnSetLayer: TProc<T> ...
Я даже представляю себе, почему так получается. Что не извиняет.
Размещено в Без категории
Показов 260 Комментарии 0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.