Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'generic'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 2 результата

  1. Добрый день. Хочу узнать как правильно возвращать объекты в функции, что бы не было утечки памяти. Данная проблема на данный момент воспроизводится в проекте TelegaPI. Ниже упрощенный код с проекта для запросов на сервер: function TTelegramBot.API<T>(const Method: String; Parameters: TDictionary<String, TValue>): T; var lHttp: THTTPClient; lHttpResponse: IHTTPResponse; lApiResponse: TtgApiResponse<T>; lURL_TELEG: String; begin lHttp := THTTPClient.Create; try lURL_TELEG := 'https://api.telegram.org/bot' + FToken + '/' + Method; // Преобразовуем параметры в строку, если нужно if Assigned(Parameters) then lHttpResponse := lHttp.Post(lURL_TELEG, ParamsToFormData(Parameters)) else lHttpResponse := lHttp.Get(lURL_TELEG); lApiResponse := TtgApiResponse<T>.FromJSON(lHttpResponse.ContentAsString); Result := lApiResponse.ResultObject; finally FreeAndNil(lHttp); { Ниже утечка памяти. Если расскоментировать - тогда не будет возращаться результат функций } // if Assigned(lApiResponse) then // lApiResponse.Free; end; end; В таком виде не освобождается lApiResponse - в результате утечка памяти. Если раскоментировать 2 последние строки - тогда в результате функции будет пустой объект. Прошу опытных людей в этом плане рассказать что мне нужно подправить. Спасибо.
  2. Как в результат функции установить значение? Ниже набросок функции которая возвращает массив значений с типом переданным пользователем: function TArrayHelper<T>.Generate(const Count: Integer): TArray<T>; var Info: PTypeInfo; I: Integer; AI: TArray<Integer>; begin Info := System.TypeInfo(T); SetLength(Result, Count); // Для дробных if Info.Kind = TTypeKind.tkFloat then for I := Low(Result) to High(Result) do Result[I] := Random; // Для целых if Info.Kind = TTypeKind.tkInteger then for I := Low(Result) to High(Result) do Result[I] := Random(100); end; Вообще такое можно сделать? Или лучше будет(хотя не мне это не очень то и нравится) сделать что бы возвращала функция массив вариантов: function TArrayHelper<T>.Generate(const Count: Integer): TArray<TValue>; Надеюсь суть вопроса понятна.
×
×
  • Создать...