Я работаю с динамическим созданием нескольких различных типов элементов управления и сохранением их в списке в фоновом режиме.Два таких элемента управления - это TEdit и TLabel.Все эти элементы управления являются подэлементами элемента управления TPanel.
Ну, я случайно перепутал TEdit с TLabel при чтении из TPanel.Controls (получил их по неправильным индексам) при записи в TEdit.Text иTLabel.Caption свойства.Каким-то образом это даже не вызвало никаких исключений.
Он делает что-то вроде TLabel(SomeEditControl).Caption:= 'This is a label control';
и TEdit(SomeLabelControl).Text:= 'This is an edit control';
И помещает данные TEdit.Text в свойство TLabel.Caption, а данные TLabel.Caption в свойство TEdit.Text.Я озадачен тем, что это не вызвало исключения ... Единственное, что я могу догадаться, это то, что свойства TEdit.Text и TLabel.Caption просто так используют один и тот же адрес памяти между классами элементов управления.
Почему бы не дать нарушение доступа?