Класс delphi - это в основном просто описание, а не сам объект.Вы описываете свойства и методы, которые должен иметь конечный объект. И недостающая часть головоломки заключается в том, что вы действительно не сказали Delphi создать объект из своего класса.
Это делается путем вызова конструктора:
mMyInstance:=TTest.Create;
Конструктор принимает описание класса и создает экземпляр объекта для вас в памяти. Он возвращает указатель на объект, который вы должны хранить в переменной (myInstance в приведенном выше примере) того же типа.
Чтение вашего вопроса, я подозреваю, что вы хотите создать объект «всегда там», немного похожий на объект принтера. Это легко сделать, но точно так же, как и объект принтера - вы должны включить это устройство, прежде чем сможете получить доступ к объекту. Я думаю, что Андерс Э. Андерсен показал, как большинство людей будет инициализировать объект с единичной точки зрения.
Если вы хотите, чтобы объект был доступен с другого устройства, скажем, вашей основной формы или любого другого устройства, сначала добавьте «myunit» в список использования. Затем, чтобы сделать его видимым добавить функцию, например:
function test:ttest;
Begin
result:=obj;
end;
И не забудьте добавить «тест функции: Ttest» в интерфейсной части модуля. Затем вы можете использовать объект из другого устройства, как например:
myUnit.test.get;
Но будьте осторожны! Это довольно старое школьное программирование, и вы рискуете освободить свое подразделение (которое вызывает завершение и тем самым уничтожает ваш объект) до того, как будут выполнены другие блоки. Таким образом, вы рискуете вызвать функцию в объекте, который больше не существует в памяти, что вызывает эффектное нарушение доступа, когда ваша программа закрывается.
Если вы хотите правильно изучить Delphi, перейдите к Delphi Basics и ознакомьтесь с основными принципами. Требуется некоторое время, чтобы выучить новый язык, но вскоре вы получите его.
Удачи вам!
Вы не создаете экземпляр класса в любом месте, поэтому при вызове 'get' нечего использовать. Я хотел бы предложить, как и где его исправить, но вы не опубликовали какой-либо код, демонстрирующий, что он используется как глобальная переменная (или любой другой вид переменной - вы опубликовали определение класса), поэтому я не могу помогите с этой частью. –
Кен прав, вам нужно создать объекты Delphi. В этом отношении они не похожи на объекты C++. –
Пожалуйста, покажите свой код, где вы создаете экземпляр ttest и вызываете метод get(). –