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

Лидеры

  1. xenon54

    xenon54

    Пользователи


    • Баллы

      2

    • Постов

      385


  2. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      1

    • Постов

      2 124


  3. ruslan

    ruslan

    Пользователи


    • Баллы

      1

    • Постов

      160


  4. aleksandrguru

    aleksandrguru

    Пользователи


    • Баллы

      1

    • Постов

      96


Популярный контент

Показан контент с высокой репутацией 12.02.2015 во всех областях

  1. Ярослав может запилить типа маркета компонентов, с удовольствием бы покупал за разумную цену, многие замечал делают так удобно отсортировать все по категориям и выставить за денюжку, и всем хорошо, у людей и смысл был бы писать компоненты, и зарабатывать., и Delphi развивалась бы
    1 балл
  2. Причина По скольку Андроид дает слишком много возможностей для разработчиков, то эта платформа легко подвергается взлому со стороны (например обычное приложение, которое имеет привилегии на чтение конфиденциальной информации, может в фоне скидывать в инет ваши переписки, чаты и тд). Чтобы обезопасить пользователей, вендоры прибегают, как минимум к двум известным мне решениям: Блокирование нестандартных портов Установка антивирусов, блокирующих порты Эта ошибка говорит, что сам девайс на уровне ядра запрещает приложению использовать указанный порт. Ну и как следствие, отладочный сервер, запускаемый с приложением не может использовать порт для общения с IDE. Решение Решение простое, попробовать подобрать такой номер порта, который не будет блокироваться системой. Как поменять отладочный порт, написано тут. Отключить антивирус при его наличии. P.S. Обратите внимание, что все девайсы от Google корректно работают с IDE. P.S.S. Можете попробовать написать простое приложение, которое будет пробовать открыть сокет на разных портах и просканировать ваше устройство на наличие открытых портов.
    1 балл
  3. t := TImage.Create(Form1); Этого вам для начала будет достаточно? "[Weak] FOwner: TComponent;" такое объявление делает так что RefCount не увеличивается от этой ссылки.
    1 балл
  4. ох и сколько же таких "фишечек" я уже видел ...) мой совет: напишите лучше сразу такую вот штуку для себя: TObj_helper = class helper for TObject procedure SetRefCount( val: Integer ); end; { TObj_helper } procedure TObj_helper.SetRefCount(val: Integer); begin {$ifdef android} Self.FRefCount:= val; {$endif} end; я гарантирую что Вам это понадобится )
    1 балл
  5. Сделал еще 1 эксперимент: procedure TForm1.Button1Click(Sender: TObject); var i, j : Integer; t, t2 : TImage; begin for j := 0 to 200 do begin t := TImage.Create(Form1); t.Parent := form1; t.Width := 50; t.Height := 50; t.Bitmap.LoadFromFile( TPath.Combine(TPath.GetDocumentsPath, '1.jpg') ); t.tag := 11; t := nil; for I := 0 to Form1.ComponentCount-1 do begin if Components[i] is TImage then if Components[i].Tag = 11 then begin t2 := TImage(Components[i]); t2.Parent := nil; t2.Free; t2 := nil; end; end; end; end; Я так понял что я правильно реализовал способ номер 2 из этой темы. При картинке размером в ~200кб приложение крашится после 2-х кликов по кнопке. А вот если Free заменить на DisposeOf, то хоть утыкайся, приложение живет. В этой теме говорится что DisposeOf "форсирует вызов деструктора, но не очищает память выделенную под объект". Что это значит? И почему описанный выше пример не освобождает память? P.S.: Этот пример для Android, хотя я так понял в этом смысле поведение не отличается для IOS и Android.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...