Я подклассифицировал элемент управления в порядке, чтобы добавить несколько полей, которые мне нужны, но теперь, когда я создаю его во время выполнения, я получаю Access Violation
. К сожалению, это нарушение прав доступа не происходит в том месте, где я создаю элемент управления, и даже те, которые я создаю с включенными всеми параметрами отладки (включая "Build with debug DCU" ), трассировка стека не помогает мне вообще
В попытке воспроизвести ошибку я попытался создать консольное приложение, но, видимо, эта ошибка появляется только в приложении Forms, и только если мой элемент управления фактически отображается в форме!
Ниже приведены шаги по воспроизведению ошибки. Создайте новое приложение VCL Forms, отпустите одну кнопку, дважды щелкните, чтобы создать обработчик OnClick, и напишите это:
type TWinControl<T,K,W> = class(TWinControl);
procedure TForm3.Button1Click(Sender: TObject);
begin
with TWinControl<TWinControl, TWinControl, TWinControl>.Create(Self) do
begin
Parent := Self;
end;
end;
Это последовательно генерирует нарушение доступа, каждый раз, когда я пытался. Только тестировал это на Delphi 2010, поскольку это единственная версия, которую я получил на этом компьютере.
Вопросы:
- Это известная ошибка в Delphi Generics?
- Есть ли обходной путь для этого?
Изменить
Здесь ссылка на отчет QC: http://qc.embarcadero.com/wc/qcmain.aspx?d=112101