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

kami

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

    643
  • Зарегистрирован

  • Посещение

  • Победитель дней

    41

Активность репутации

  1. Like
    kami получил реакцию от Равиль Зарипов (ZuBy) в Version Control   
    Использую GIT и SVN
    Но не встроенные средства, а черепашку (Tortoise), консоль для меня слишком круто
  2. Like
    kami получил реакцию от Евгений Корепов в Что я делаю не так при работе с DLL библиотеками из FireMonkey?   
    Вы не поверите, но передавать экземпляры классов между различными независимыми модулями (будь то exe и dll или две разных длл) нельзя даже если версии IDE абсолютно идентичны. Потому что TBitmap в одном модуле - это не то же самое, что TBitmap в другом модуле. У каждого модуля СВОЙ менеджер памяти, своя таблица виртуальных методов (VMT), свои структуры описания классов и т.д. и т.п. Модуль будет пытаться работать с экземпляром класса, как со своим, обращаясь к своим методам вместо методов, реализация которых находится в другом модуле. И память при работе с методами и свойствами объекта он будет выделять и пытаться освободить СВОЮ, а надо было бы - память, выделенную менеджером памяти другого модуля. Вот вам и первопричина для глюков.
    Из dll в exe и наоборот в случае с битмапом вы можете передать максимум hbitmap, поскольку это хендл на ресурс ОС. А классы, их экземпляры, строки и другие типы с управляемым временем жизни передавать нельзя, это табу.
     
    Для изучения: http://www.gunsmoker.ru/2011/12/delphi.html#n5  сразу можно переходить к правилу 6
  3. Like
    kami отреагировална krapotkin в фремы динамическое создание   
    я практически везде использую динамически создаваемые фреймы. вообще никаких проблем не встречал
    главное - четко помнить, что данные должны храниться в модели данных, а интерфейс - работать с этой моделью
    при этом некоторые вещи в рамках программы являются глобальными синглтонами, например, объект, содержащий настройки программы и данные текущего залогиненного юзера. ну и часто - главная форма программы.
    код при создании фреймов не в точности, но похож на приведенный в старте темы
  4. Like
    kami получил реакцию от Genesis в DOC to PNG   
    Скорее с помощью RTL и WinAPI.
    Собственно, ищем:
    1. как работать с LibreOffice (подключение/отключение)
    2. Как открыть существующий документ
    3. Как сохранить его в нужном формате.
    Соединяем эти кусочки воедино и имеем нужный результат на выходе.
  5. Like
    kami отреагировална krapotkin в Копирование Grid на другую форму   
    по-хорошему, это вообще неправильно от слова совсем
    нужно иметь модель данных и процедуру отрисовки этой модели в грид
    это не так уж и сложно, а проблем с выводом чего угодно куда попало нет и не может быть
  6. Like
    kami получил реакцию от Равиль Зарипов (ZuBy) в Что я делаю не так при работе с DLL библиотеками из FireMonkey?   
    вы случайно не объекты и/или дельфовые типы (а-ля string) передавали между exe и dll?
  7. Like
    kami получил реакцию от Pax Beach в Создание и запуск нового потока (POSIX)   
    http://forum.vingrad.ru/forum/topic-60076.html
  8. Like
    kami получил реакцию от RapsodRF в Создание и запуск нового потока (POSIX)   
    Под виндой все же рекомендуется использовать не виндовый CreateThread, а враппер BeginThread, если уж наследника TThread по каким-то причинам вы избегаете
  9. Like
    kami получил реакцию от Евгений Корепов в Очищение памяти   
    Но если про него кто-то помнит (держит ссылку), то зомби будет продолжать влачить существование.
  10. Like
    kami получил реакцию от Rusland в метод получить время в минутах больше 60   
    Uses System.DateUtils. MinutesBetween(0, TimeEdit.Time)  
  11. Like
    kami получил реакцию от Kitty в метод получить время в минутах больше 60   
    Uses System.DateUtils. MinutesBetween(0, TimeEdit.Time)  
  12. Like
    kami отреагировална Brovin Yaroslav в Создание и запуск нового потока (POSIX)   
    А обычный класс TThread не подходит?
  13. Like
    kami получил реакцию от zairkz в Очищение памяти   
    Но если про него кто-то помнит (держит ссылку), то зомби будет продолжать влачить существование.
  14. Like
    kami отреагировална Равиль Зарипов (ZuBy) в Очищение памяти   
    то что создается, должно быть убито. вот и всё
  15. Like
    kami отреагировална krapotkin в Хранение данных   
    вполне себе норм способ
    только SharedDocuments возможно не лучшее место хранения, а txt - не лучший формат
    но официально для этого есть SharedPreferences. Я лично взял тут и пока пользуюсь
  16. Like
    kami отреагировална krapotkin в Скопировать Дженерик   
    я всегда делаю специальный метод AssignFrom
    можно сделать его через json-сериализацию 
  17. Like
    kami получил реакцию от Шамсуддин в Многодокументое приложение   
    Кто вам такое сказал?
    Всё зависит от дизайна приложения. Фрейм делается, если какой-либо участок интерфейса:
    а) используется в нескольких местах, дабы не дублировать код и dfm
    б) если он занимает не всю форму, а ее часть и при этом обладает законченной или разветвленной логикой.
  18. Like
    kami получил реакцию от Шамсуддин в Многодокументое приложение   
    Фреймы с разделением логики работы между ними спасут отца русской демократии.
  19. Like
    kami получил реакцию от Brovin Yaroslav в Многодокументое приложение   
    Фреймы с разделением логики работы между ними спасут отца русской демократии.
  20. Like
    kami получил реакцию от zairkz в Динамическое создание/уничтожение   
    Нужно использовать myObject.Release, а не Free.
    Только обратите внимание, что Release - это отложенное уничтожение, т.е. моментально компонент исчезает с формы, а вот уничтожится - после, когда-нибудь, когда до него дойдет очередь.
    Помимо этого, если ссылка на объект есть где-то в поле класса, то нужно заnil-ить ее, дабы уменьшить счетчик ссылок.
  21. Like
    kami получил реакцию от Kitty в Динамическое создание/уничтожение   
    Нужно использовать myObject.Release, а не Free.
    Только обратите внимание, что Release - это отложенное уничтожение, т.е. моментально компонент исчезает с формы, а вот уничтожится - после, когда-нибудь, когда до него дойдет очередь.
    Помимо этого, если ссылка на объект есть где-то в поле класса, то нужно заnil-ить ее, дабы уменьшить счетчик ссылок.
  22. Like
    kami получил реакцию от sviat9440 в Автоматическая расстановка End-ов   
    По моему опыту: автодополнение кода перестает работать при
    Длинном методе (вложенные процедуры/функции не в счет) Если между методами (не внутри, а именно между) есть комментарии Если большая вложенность всяких циклов, if и т.п. Если встречаются конструкции, которые форматтер (Ctrl + D) обрабатывает неправильно (некорректно просчитывает отступы). Помогает явная вставка Begin/end или, как было пару раз с array of record x:type1; y:type2; end - вынести объявление типа отдельно. Иногда (но очень редко) с директивами условной компиляции. Когда Луна входит в созвездие Песца. Если случился пункт 6 - помогает закрыть вкладку модуля и открыть ее заново. В особо сложных случаях - перезапустить IDE.
     
  23. Like
    kami получил реакцию от Kitty в Автоматическая расстановка End-ов   
    По моему опыту: автодополнение кода перестает работать при
    Длинном методе (вложенные процедуры/функции не в счет) Если между методами (не внутри, а именно между) есть комментарии Если большая вложенность всяких циклов, if и т.п. Если встречаются конструкции, которые форматтер (Ctrl + D) обрабатывает неправильно (некорректно просчитывает отступы). Помогает явная вставка Begin/end или, как было пару раз с array of record x:type1; y:type2; end - вынести объявление типа отдельно. Иногда (но очень редко) с директивами условной компиляции. Когда Луна входит в созвездие Песца. Если случился пункт 6 - помогает закрыть вкладку модуля и открыть ее заново. В особо сложных случаях - перезапустить IDE.
     
  24. Like
    kami получил реакцию от zairkz в [android] Как правильно удалять контролы в RunTime(2)?   
    Сперва - Release, потом = nil
    http://fire-monkey.ru/topic/2817-динамическое-созданиеуничтожение/?do=findComment&comment=16461
    Free на мобильных платформах не делает ничего.
    В вашем коде компонент, естественно, будет продолжать находиться - ведь ссылку на него как минимум хранит его Owner, переданный в конструкторе.
  25. Like
    kami получил реакцию от estra в [android] Как правильно удалять контролы в RunTime(2)?   
    Сперва - Release, потом = nil
    http://fire-monkey.ru/topic/2817-динамическое-созданиеуничтожение/?do=findComment&comment=16461
    Free на мобильных платформах не делает ничего.
    В вашем коде компонент, естественно, будет продолжать находиться - ведь ссылку на него как минимум хранит его Owner, переданный в конструкторе.
×
×
  • Создать...