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

Nix0N

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

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

  • Посещение

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

    12

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

  1. Like
    Nix0N получил реакцию от Ingalime в [Руководство] Отладка программы на Android устройстве через Wi-Fi   
    Если вас, как и меня, не устраивает скорость работы эмулятора Android и в вашей системе нет свободных USB чтобы подключить устройство для отладки, то эта инструкция для вас. Внимание ! Перед дальнейшим выполнением необходимо получить root на устройстве ! Как это сделать описано здесь
     
    *статья написана на основе RAD Studio XE6 с путями по умолчанию
    **подразумевается что драйвера на устройство установлены, оно определяется в системе и успешно работает по USB кабелю с IDE
     
    Итак, начнем:
     
    1. Устанавливаем на устройство ADB over WIFI Widget. Вообще подобных программ множество, но я выбрал именно эту за её удобство. Исполнена в виде виджета, по клику активируется или деактивируется.
     
    2. Перезагружаем устройство
     
    3. Идём в раздел "Виджеты" и выносим виджет на рабочий стол (настройки виджета не меняем)
     
    4. Включаем Wi-Fi на устройстве (если еще не включен) и кликаем по виджету. Если на виджете появилась информация в виде "IP адрес : порт" и цвет виджета из серого сменился на зеленый - программа успешно запущена и можно переходить ка настройкам на ПК.
     

     
    5. Теперь необходимо подключить ADB к устройству. Для этого идем в каталог c:\Users\Public\Documents\Embarcadero\Studio\14.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platform-tools\ и создадим там BAT-файл следующего содержания:
    adb connect 192.168.1.3:8000 (IP адрес и порт, которые изображены на виджете вашего устройства) pause (чтобы окно CMD не закрывалось и можно было отследить результат работы ADB) 6. Запускаем BAT-файл
     
    В случае успешного выполнения ADB подключится к устройству. Всё, можно запускать IDE.

  2. Like
    Nix0N получил реакцию от serg557 в [TidHTTPServer] Не удается получить русские символы в idHTTPServer   
    Быстрый способ для GET-запроса:
    TIdURI.URLEncode('http://www.mysite.com/search?q=кириллица');
  3. Like
    Nix0N отреагировална Kitty в FixInsight vs FMX   
    Человек делает анализ библиотек поставляемых с Delphi.
    Ссылка на статью: http://roman.yankovsky.me/?p=1774
  4. Like
    Nix0N получил реакцию от Евгений Корепов в [Windows] Запуск программы с запросом прав администратора   
    1. Создаем текстовый файл и меняем расширение на manifest (название_файла.manifest), примерно с таким содержанием:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> 2. В IDE идем по пути Project -> Options -> Application -> RunTime Themes -> Use custom manifest и указываем путь до нашего файла манифеста.
     
    Все готово ! 
     
    P.S. Делайте это в последнюю очередь при завершении проекта, иначе не удобно отлаживать программу: приходится собирать программу в IDE, а запускать отдельно из файлового менеджера. Когда попробуете - сами узнаете почему ) Или же временно, на момент разработки, установить использование стандартного манифеста.
     
    P.S.S. в файле-манифесте так же указывается разрядность приложения win32 или win64 и т.д. Не составит проблемы почитать об этом в сети.
  5. Like
    Nix0N получил реакцию от Вячеслав в [Windows] TnTRayIcon не визуальный компонент обеспечивающий управление значком в области System Tray   
    Набросал компонент для работы с значком в системном трее. Компонент только для FM и только для платформы Windows ! Среда: Delphi XE6 
     
    Основные моменты
     
    Свойства:
    Hint : string - отображает текст при наведении на значок в системном трее BalloonTitle : string - текст заголовка всплывающей подсказки BalloonText : string - текст содержания всплывающей подсказки IconBalloonType : TBalloonIconType - иконка всплывающей подсказки. Принимает значения: ​​​​BigError, BigWarning, Error, Info, None, User, Warning Indent : Cardinal - "косметический костыль" для нормального отображения меню при клике по значку в системном трее. Подбирается экспериментально, так как при различных стилях область отображения меню изменяется (меню уезжает вверх) PopUpMenu : TPopUpMenu - всплывающее меню, при OnClick правой кнопкой мыши по значку ​Методы:
    Show - отображать значок в системном трее Hide - скрыть значок из системного трея ShowBalloonHint - показать всплывающую подсказку События:
    OnClick - нажатие левой кнопки мыши OnDblClick - двойное нажатие левой кнопки мыши Важное замечание: необходимо обязательное наличие TForm и только один экземпляр TnTrayIcon в приложении !
     
    Установка:
    Распаковать содержимое архива Открыть файл nTrayIcon.dpk В Project Manager окне правой кнопкой мыши по nTrayIcon.bpl -> Compile В Project Manager окне правой кнопкой мыши по nTrayIcon.bpl -> Install Добавляем путь в Library: Tools -> Options -> Delphi Options -> Library -> Library Patch -> Add... В архиве компонент и пример для работы.
     
    P.S. Писал для себя, так как частенько использую... Всегда хочется простоты.
    P.S.S. Писал быстро и ночью. Возможны недочеты и ошибки. Постепенно исправлю.
    TnTrayIcon.zip
  6. Like
    Nix0N получил реакцию от Евгений Корепов в [Windows] TnTRayIcon не визуальный компонент обеспечивающий управление значком в области System Tray   
    Рад что Вы разобрались =)
     
    P.S. если Вы модифицировали исходник, то можете добавить процедуры для Show и Hide:
    ShowWindow(ApplicationHWND, SW_HIDE); // cкрыть из таскбар ShowWindow(ApplicationHWND, SW_SHOW); // показать в таскбар
  7. Like
    Nix0N получил реакцию от UFatueks в [TWebBrowser] Как получить исходный текст страницы из WebBrowser?   
    Каким образом можно получить исходный текст страницы из WebBrowser и присвоить его текстовой переменной ? Delphi XE6. Спасибо.
  8. Like
    Nix0N получил реакцию от ewpsxigq в [TWebBrowser] Как получить исходный текст страницы из WebBrowser?   
    Каким образом можно получить исходный текст страницы из WebBrowser и присвоить его текстовой переменной ? Delphi XE6. Спасибо.
  9. Like
    Nix0N отреагировална Brovin Yaroslav в [iOS] Как включить фонарик?   
    Estra, Меньше эмоций и непроверенных предположений, больше слов по делу и вопросу.
     
    Пример использования фонарика есть в примерах студии:
    C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\Device Sensors and Services\FlashLight Нужно разместить на форме компонент TCameraComponent. Свойство TorchMode отвечает за включением и отключением вспышки.
    Включить свет:
    Camera.TorchMode := TTorchMode.ModeOn Выключить:
    Camera.TorchMode := TTorchMode.ModeOff P.S. Приведенный вами код, это код абстрактного класса. А не конкретная реализация под платформу iOS. Конкретные реализации находятся в FMX.Media.iOS.pas. 
  10. Like
    Nix0N отреагировална ruslan в [Юмор] Очень серьезно   
    Как Вы думаете, к чему приведет выполнение следующего кода ?
    StartTime:= Now; while ( not Embarcadero.EOF ) or ( Embarcadero.Bugs.Count > 0 ) do begin   Trolling;   if MonthBetween(Now, StartTime) > 12 then   Embarcadero.Destroy; end; if ( Embarcadero.Bugs.Count > 0 ) then begin   while Embarcadero.Members.Count > 0 do   Embarcadero.Members[0].Destroy;      Mozg.Delete( Mozg.IndexOf('Delphi') ); end else exit;  
  11. Like
    Nix0N отреагировална Brovin Yaroslav в [Windows] Как получить HWND Application?   
    Доступ к хендлу приложения был добавлен в RAD Studio XE7. FMX.Platform.Win.ApplicationHWND
  12. Like
    Nix0N отреагировална Dozent в [Windows] Полученный файл записи с микрофона не звучит при воспроизведении. В чем причина?   
    Доброй ночи, проблему решил! Зашёл в "Устройства воспроизведения" и удалил не используемые! 
    Первым был микрофон который не использовался, вторым тот что работал, возможно я ошибаюсь, но похоже получается что берётся первый из списка микрофон, а не тот что по умолчанию!
    Но проблема решена всё пишет!
  13. Like
    Nix0N получил реакцию от Brovin Yaroslav в [Windows] Как Убрать/Скрыть Программу Из Панели Задач?   
    Для начала Вам необходимо получить Application.Handle Стандартными средствами это не возможно. Как это осуществить описано здесь
     
    После выполнения действий, перечисленных выше:
    ShowWindow(ApplicationHWND, SW_SHOW); // Показать ShowWindow(ApplicationHWND, SW_HIDE); // Скрыть
  14. Like
    Nix0N получил реакцию от brunnengi в [Windows] Как Убрать/Скрыть Программу Из Панели Задач?   
    Для начала Вам необходимо получить Application.Handle Стандартными средствами это не возможно. Как это осуществить описано здесь
     
    После выполнения действий, перечисленных выше:
    ShowWindow(ApplicationHWND, SW_SHOW); // Показать ShowWindow(ApplicationHWND, SW_HIDE); // Скрыть
  15. Like
    Nix0N получил реакцию от Kitty в [TWebBrowser] Когда появится поддержка TWebBrowser для Windows и OSX?   
    Мне так же этот вопрос интересен. Пока приходится использовать сторонний компонент TTMSFMXWebBrowser из пакета TMS Pack for FireMonkey
  16. Like
    Nix0N отреагировална Brovin Yaroslav в Почему для моего стиля TListBoxItem сбрасывается состояние встроенного TCheckBox при прокручивании списка?   
    Я поясню. В вашем проекте, вы создали встроенный TCheckBox в стиле, дали ему свое название "mycheckbox". Но когда вы прокручиваете элементы в списке, то стиль выгружается для не видимых элементов и загружается для новых видимых заново. В этом случае TCheckBox теряет свое состояние (стоит галка или нет). Когда вы задаете галку для итема через:
    Item.StylesData['mycheckbox'] := True; то при загрузке стиля итем автоматически восстанавливает значение галки. А для состояния, когда галка снята, итем не сохраняет эту информацию. Поэтому ваше найденное решение заключается в том, что всем итемам нужно через StylesData задать состояние TCheckBox. И это в принципе правильно кроме одного НО: Обратите внимание, что не нужно устанавливать галку и тут же ее сбрасывать. Достаточно сделать это один раз и установить требуемое значение.
     
    Подробнее о ситуации выгрузке стиля можно прочитать тут: Почему для моих объектов стиля сбрасываются данные при прокручивании TListBox? - это аналогичная ситуация.
     
    P.S. На счет попутного вопроса о том, почему при загрузке нового стиля галка стоит отмеченной отвечу. В TListBox выгружаемые стили скрывающихся итемов при прокручивании не распускаются, а повторно используются для новых итемов.
  17. Like
    Nix0N отреагировална Brovin Yaroslav в Перевод массива кодов символов в строку   
    Да, вы правы. Ошибся.
     
    StringOf использует текущую кодировку на платформе, на Windows - это ANSI, на мобильных платформах - это UTF8:
    function StringOf(const Bytes: TBytes): UnicodeString; begin if Assigned(Bytes) then Result := TEncoding.Default.GetString(Bytes, Low(Bytes), High(Bytes) + 1) else Result := ''; end; Поэтому лучше используйте TEncoding.ANSII:
    TEncoding.ANSI.GetString(BufferOfBytes, Low(BufferOfBytes), High(BufferOfBytes) + 1);
  18. Like
    Nix0N отреагировална Kitty в [Руководство] RAD Studio Mobile Tutorial - XE6   
    Поскольку основное отделение разработки FM, базируется в России, то существует ли вероятность того, что когда нибудь появиться подробное руководство на русском языке и с примерами которые были бы не только на паскале но и на С++?
    Спасибо.
     
    P.S.
    У движка форума есть недочет. У меня написано что я Продвинутый пользователь. В FM я не Продвинутый пользователь, а полный zero.
  19. Like
    Nix0N отреагировална Brovin Yaroslav в Как получить доступ к свойству объекта в стиле и как повесить свой обработчик на его события?   
    Добрый день
    О том, как получить доступ к любому свойству через StylesData (в том числе к свойству text) частично описано тут:
    Как получить значение свойства объекта стиля, используя StylesData? Как получить объект стиля? Назначение обработчиков событий для элементов стиля через StylesData Допустим, что TSpinBox в стиле назван (StyleName), как 'spinbox', тогда
    Присваивание обработчика для SpinBox:
    ListBoxItem1.StylesData['spinbox.OnChange'] := TValue.From<TNotifyEvent>(SBCountChange); Доступ к свойству Text у TSpinBox:
    ListBoxItem1.StylesData['spinbox.Text'].ToString; Таким способом можно получить доступ к любому свойству и событию любого элемента стиля.
  20. Like
    Nix0N отреагировална Brovin Yaroslav в Sphere Live - мультиплатформенная система c функциями видеоконференцсвязи, файлового обмена, облачного хранилища   
    Официальный сайт: http://sphere-live.com/
    Обзорные статьи: HabraHabr, delphi2010.ru
    Ссылки на приложения: Windows, OSX, Android
     



  21. Like
    Nix0N получил реакцию от Kitty в [Windows] TnTRayIcon не визуальный компонент обеспечивающий управление значком в области System Tray   
    Набросал компонент для работы с значком в системном трее. Компонент только для FM и только для платформы Windows ! Среда: Delphi XE6 
     
    Основные моменты
     
    Свойства:
    Hint : string - отображает текст при наведении на значок в системном трее BalloonTitle : string - текст заголовка всплывающей подсказки BalloonText : string - текст содержания всплывающей подсказки IconBalloonType : TBalloonIconType - иконка всплывающей подсказки. Принимает значения: ​​​​BigError, BigWarning, Error, Info, None, User, Warning Indent : Cardinal - "косметический костыль" для нормального отображения меню при клике по значку в системном трее. Подбирается экспериментально, так как при различных стилях область отображения меню изменяется (меню уезжает вверх) PopUpMenu : TPopUpMenu - всплывающее меню, при OnClick правой кнопкой мыши по значку ​Методы:
    Show - отображать значок в системном трее Hide - скрыть значок из системного трея ShowBalloonHint - показать всплывающую подсказку События:
    OnClick - нажатие левой кнопки мыши OnDblClick - двойное нажатие левой кнопки мыши Важное замечание: необходимо обязательное наличие TForm и только один экземпляр TnTrayIcon в приложении !
     
    Установка:
    Распаковать содержимое архива Открыть файл nTrayIcon.dpk В Project Manager окне правой кнопкой мыши по nTrayIcon.bpl -> Compile В Project Manager окне правой кнопкой мыши по nTrayIcon.bpl -> Install Добавляем путь в Library: Tools -> Options -> Delphi Options -> Library -> Library Patch -> Add... В архиве компонент и пример для работы.
     
    P.S. Писал для себя, так как частенько использую... Всегда хочется простоты.
    P.S.S. Писал быстро и ночью. Возможны недочеты и ошибки. Постепенно исправлю.
    TnTrayIcon.zip
  22. Like
    Nix0N отреагировална Brovin Yaroslav в Советы по созданию мобильного приложения Master-Detail   
    Клик по итему
    Как уже предыдущие пользователи правильно заметили, нажатие на итем в списке самый интуитивно понятный способ на мобильных платформах. По скольку это полностью совпадает с правилами построения пользовательского интерфейса на мобильных платформах.
    Не надо придумывать свои способы, когда уже есть стандартные. Этим вы только запутаете пользователя, привыкшего к общему принципу работы с любым приложением. Если вам такой способ нужен, то лучше перепроектируйте ваш интерфейс, чтобы этого избежать (смотрите пункт 1.) Открытие нового вида
    На счет этого, если вы делаете приложение под андроид, то я бы не рекомендовал для этих целей использовать TTabControl. По одной самой главной причине:
     
    Потребление дополнительных ресурсов. Заставляет форму создавать все контролы на всех вкладках, даже на тех, что не видны. 
     
    Легко представить типичную ситуацию, когда ваше приложение довольно большое и содержит большое число форм ввода и редактирования данных. Теперь представьте, что все эти контролы создаются при запуске приложения и живут все время существования приложения. Это совсем не маленькие размеры памяти, особенно на Андроиде.
     
    Ресурсы мобильной платформа не равны ресурсам настольных платформ. И если на настольной системе вы можете особо не заморачиваться о размере потребляемой памяти, так как ее много. То на мобильнике это может привести к нехватке памяти и как следствие разрушение вашего приложения.
     
    Главная идея - это иметь в каждый момент времени только то, что нужно. Поэтому я бы лучше рассматривал либо создание отдельной формы, либо создание в рантайме специального слоя (вида), которые будет загружен по верх всего, а потом будет разрушен после окончания выполнения редактирования.
     
    Так же советую использовать фреймы для таких функционально законченных блоков (редакторы сущности):
    Позволяет быстро и удобно создавать в нужное время на мобильной платформе требуемый вид. Забирая от системы ресурсы только в тот момент, когда они действительно необходимы. Повторное использование в других местах приложения.
  23. Like
    Nix0N получил реакцию от Brovin Yaroslav в Советы по созданию мобильного приложения Master-Detail   
    Клик по item в ListView самый удачный и интуитивно-понятный вариант.
  24. Like
    Nix0N получил реакцию от Kitty в Советы по созданию мобильного приложения Master-Detail   
    Клик по item в ListView самый удачный и интуитивно-понятный вариант.
  25. Like
    Nix0N получил реакцию от Kitty в Некорректное поведение анимации цвета шрифта   
    Это не странность, а так и задумано. Если не используется стильбук, то обязательно необходимо явно вводить данные о размере, цвете и т.д.
×
×
  • Создать...