Описание тега class-helpers

Расширяет существующие классы / записи в Delphi без использования наследования. Помощники классов также предоставляют более широкую область действия компилятору при разрешении идентификаторов. Синтаксис был введен в Delphi 2005.
1 ответ

Как получить доступ к закрытому методу TStreamReader.FillBuffer в Delphi 10.1 Berlin?

Как получить доступ к закрытому методу TStreamReader.FillBuffer в Delphi 10.1 Berlin, мы делали это с помощником класса до 10.1 - но предлагаемое решение не работает: uses System.Rtti; procedure TForm1.FormCreate(Sender: TObject); begin Assert(Assig…
17 июн '16 в 06:13
3 ответа

Как получить доступ к приватному полю из помощника класса в Delphi 10.1 Berlin?

Я хотел бы использовать jpegex Габриэля Корнеану, помощника класса для jpeg.TJPEGImage. Читая это и это, я узнал, что помимо Delphi Seattle вы не можете больше получать доступ к закрытым полям, как это делает jpegex (FData в приведенном ниже примере…
20 май '16 в 16:11
3 ответа

Как инкапсулировать разные классы в одном классе, поддерживая их уникальные методы? (множественное наследование в Delphi?)

В настоящее время я переписываю бесплатный обучающий симулятор цифровых схем, чтобы добавить инерционность его функциям. Моя проблема в том, как отправлять события в исходные классы, добавляя к ним предварительную разработку. У меня есть что-то врод…
02 мар '10 в 11:49
1 ответ

Расширение класса из другого модуля

Мы можем расширить любой класс так: TColumn = class(FMX.Grid.TColumn) private FId: Integer; public property Id: Integer read FId write FId; end; И это прекрасно работает в нашем собственном устройстве, но если мы попробуем это (Grid: TGrid в форме):…
17 апр '17 в 07:16
1 ответ

Как я могу использовать TExtendedHelper для литералов?

С System.SysUtils.TShortIntHelper (и другие) я могу написать: output := 5.ToString(); отформатировать номер 5 как string, Как хорошо, есть System.SysUtls.TExtendedHelper, но я не могу скомпилировать: output := (5.0).ToString(); E2018: требуется запи…
18 мар '17 в 23:54
1 ответ

Как добавить свойство в TTabSheet, чтобы его можно было использовать во время разработки с TPageControl

Я хотел бы добавить "MyProperty" в TTabSheet и работать с ним во время разработки. Однако, если я сделаю его подклассом, я боюсь, что мне понадобится также подкласс TPageControl, так как он внутренне создает / управляет TTabSheets. Я считаю, что для…
20 апр '16 в 14:30
2 ответа

Как использовать помощников класса для доступа к строгим закрытым членам класса?

Это дополнительный вопрос к: Как скрыть защищенную процедуру объекта? (Я немного нечеткий в отношении всей концепции помощника класса) Предположим, у меня есть такой класс: type TShy = class(TObject) strict private procedure TopSecret; private proce…
23 фев '12 в 09:42
2 ответа

Как получить доступ к значению класса var, используя адрес класса и смещение переменной?

Мне нужно получить доступ к строгому закрытому значению класса var, используя его экземпляр и смещение переменной. пока пробовал это, проверьте этот пример класса type TFoo=class strict private class var Foo: Integer; public constructor Create; end;…
18 дек '11 в 21:12
3 ответа

Можно ли использовать два помощника записи для строкового типа?

Я создал этот помощник, чтобы добавить еще несколько функций string тип: type AStringHelper = record helper for string function Invert: string; overload; function InvertMe: string; overload; end; Но когда я использую его в своем коде, TStringHelper …
27 июл '13 в 15:56
10 ответов

Нужно ли использовать помощники классов при разработке нового кода?

Delphi 8 представила Class Helpers для целей сопоставления VCL/RTL с иерархией объектов.NET. Они позволяют внедрять методы в существующий класс, не переопределяя класс и не изменяя оригинал. Более поздние версии Delphi обнаружили улучшенные помощник…
10 дек '08 в 02:31
1 ответ

Помощник класса в C++ Builder

Мне интересно, есть ли функция с именем Class Helper даже для C++ Builder. Моя среда: RadStudio XE4, обновление 1. Я нашел объяснение Delphi в RadStudio XE4 здесь Я искал похожую страницу для C++ Builder здесь, но не нашел информации для Class Helpe…
22 окт '14 в 00:37
1 ответ

Delphi Class Helper RTTI GetMethod

Допустим, у меня есть образец помощника класса TSampleClassHelper = class helper for TSampleClass public procedure SomeHelper; end; Я делаю следующее: var obj :TSampleClass; begin obj:=TSampleClass.Create; obj.SomeHelper; end; и это работает как ожи…
21 июн '13 в 19:57
3 ответа

Есть ли способ узнать, создается ли объект или уничтожается внутри помощника класса?

У меня есть несколько помощников классов для компонентов для создания подкомпонентов, таких как всплывающие меню, для доступа к этим подкомпонентам во время выполнения, я создаю Singleton TDictionary. Мой вопрос: как мне узнать, что компонент-владел…
01 авг '12 в 18:42
1 ответ

Класс и помощники класса

Я новичок в C++ и хочу спросить о помощниках класса. Ну, у меня есть класс, и я, какой класс помощников быть в другом файле. Для этого я должен использовать пространства имен, но затем я не могу #include этот файл несколько раз (из-за переопределени…
16 янв '11 в 11:05
1 ответ

Какова цель `списка предков` в синтаксисе класса helper? Где это задокументировано? Есть ли примеры использования?

Все версии документации, включая самую последнюю, предоставляют следующий синтаксис класса / записи: type identifierName = class|record helper [(ancestor list)] for TypeIdentifierName memberList end; И это только объясняет, что... Список предков не …
20 сен '14 в 16:05
3 ответа

Class Helper для общего класса?

Я использую Delphi 2009. Можно ли написать вспомогательный класс для универсального класса, то есть для TQueue . Очевидное TQueueHelper <T> = class helper of TQueue <T> ... end; не работает и не работает TQueueHelper = class helper of TQ…
21 окт '09 в 11:27
1 ответ

Помощник класса в C++

В Delphi существуют помощники классов, которые могут добавлять методы для определенного класса. Есть ли шаблон дизайна в C++, который может сделать то же самое?
15 июл '15 в 07:24
1 ответ

Как вызвать исходный код класса, когда помощник класса находится в области видимости?

Я провожу модульное тестирование на улучшенной версии быстрой сортировки.(Надеемся) более быстрая версия реализована с использованием: TArrayHelper = class helper for System.Generics.Collections.TArray .... class procedure Sort<T>(var Values: …
15 июн '15 в 11:42
1 ответ

Найти всех помощников классов в Delphi во время выполнения, используя RTTI?

Предлагает ли расширенный RTTI в Delphi 2010 способ перечисления определенных помощников по классам и записям во время выполнения? Насколько я знаю, Delphi не показывает подсказку или предупреждение, когда для класса определено более одного помощник…
10 фев '10 в 18:45
1 ответ

Как я могу вызвать защищенные методы с помощью помощника класса?

Предположим, у нас есть классы с методом, который потенциально очень полезен, но недоступен из-за защищенной области: unit Sealed; interface type TGeneral = class(TObject) { this method is useful, but not available } protected procedure Useful; virt…
18 сен '14 в 16:50