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

Лидеры

  1. kami

    kami

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


    • Баллы

      17

    • Постов

      643


  2. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      11

    • Постов

      2 124


  3. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      5

    • Постов

      2 517


  4. krapotkin

    krapotkin

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


    • Баллы

      1

    • Постов

      2 213


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

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

  1. kami

    Окно "Настройки"

    Да! Я знал, что мыслю в нужном направлении
    5 баллов
  2. kami

    Окно "Настройки"

    Я бы сделал правую часть на фреймах. А левая часть заполнялась бы автоматом наименованиями фреймов, которые зарегистрировались в окне настроек.
    4 балла
  3. Вы делаете систему плагинов. У вашего плагина есть ряд настроек. Все настройки в вашей системе находятся в одном месте. Вам нужно сделать так, чтобы любой плагин мог свои настройки показать в этом окне. Вопрос, как бы вы тогда сделали окно настроек, если вы не знаете, какие настройки там будут?
    3 балла
  4. RAD Studio, C++Builder and Delphi 10.1 Berlin Update 2 Anniversary Edition helps you to Code Faster and Reach Further. You still write your code once, but now you code faster and reach every store: Android, iOS, macOS and Windows 10. Not only does update 2 include many bug fixes, but it also includes new features, all in a non-breaking release. [YoutubeButton url='https://www.youtube.com/watch?v=J3HndPIZLII'] Reach a wider audience with your software! New in Berlin Update 2 Anniversary Edition is support for building Appx packages for distribution in the Windows 10 Store. Windows Desktop Bridge Deployment Support allows you to package new and existing desktop applications ready for the Windows 10 Store directly from your IDE using Microsoft's Desktop Bridge. Target hundreds of millions of Windows 10 devices with your existing VCL or FMX code base. Same code, new customers! With Microsoft Windows Store now alongside macOS, Android and iOS store support, you can now reach billions of users from a single cross-platform app codebase! [YoutubeButton url='https://www.youtube.com/watch?v=g7OsW1dy5mw&list=PLwUPJvR9mZHjHazV4JYGluheXdPSuT19R&index=4'] Increase developer productivity QuickEdits – Increase your productivity in the VCL designer with the ability to rapidly modify the name, caption, alignment, layout and color of a control, copy the component name, quickly layout a form from a template, connect images and image lists, and bind the control to a data source or data field. 10.1 Berlin Update 2 benefits from the many new productivity features added in recent releases, including large project support, code block highlighting and the market leading FireUI offering live preview of prototypes on different devices as you design. [YoutubeButton url='https://www.youtube.com/watch?v=uSesSuckqeg&list=PLwUPJvR9mZHjHazV4JYGluheXdPSuT19R&index=5'] Modern Windows 10 User Experience New VCL Controls in Update 2 – Improve application usability with two calendar components for Windows 10 that mimic WinRT UI controls while providing support for older versions of Windows. New Windows 10 Styles – Modernize your application’s look-and-feel with three new Windows 10 styles added for FireMonkey and VCL in Update 2 [YoutubeButton url='https://www.youtube.com/watch?v=sxsRqTJcmKo&list=PLwUPJvR9mZHjHazV4JYGluheXdPSuT19R&index=3'] 10.1 Berlin continues to be the fastest way to take full advantage of Windows 10. Support includes native WinRT/UWP components and APIs, Windows 10 VCL User Experience controls, and updated Windows 10 VCL and FMX support. [YoutubeButton url='https://www.youtube.com/watch?v=erZGyOh2Ric&list=PLwUPJvR9mZHjHazV4JYGluheXdPSuT19R&index=2'] Просмотр полной статьи
    3 балла
  5. kami

    Окно "Настройки"

    использовать приватную переменную "текущий фрейм" или - проходить по всем детям Panel и убивать их. Про глобальные переменные забудьте!
    2 балла
  6. kami

    Окно "Настройки"

    хм... ну сравните: lbOptionCaption:=TLabel.Create(Panel); lbOptionCaption.Parent:=Panel; lbOptionCaption.Text:='some option'; cbOption1:=TCheckBox.Create(Panel); cbOption1.OnChecked:=.... cbOption1.Caption:='asdfasdf'; ... с этим: < накидали контролов на фрейм> fr:=TOptionsFrame.Create(Panel); fr.Parent:=Panel; И ВСЁ! Весь функционал реализуется внутри модуля фрейма. НЕЗАВИСИМО от всего остального.
    2 балла
  7. kami

    Окно "Настройки"

    1. Фреймы просто создавать динамически, в рантайме. Панельки с содержимым обычно накидывают на саму форму. С учетом кучи пунктов опций - получается гигантская каша, в которой без 100 грамм не разберешься. 2. Каждый фрейм - в отдельном модуле. Очень просто искать, редактировать, править функционал и при необходимости - удалять. В отличие опять-таки от этих панелек. Только не надо сами фреймы кидать на форму, как это делается с другими визуальными компонентами!
    2 балла
  8. вот еще, получить время с последней перезагрузки системы. знаю андроид и windows могут дать такие данные
    2 балла
  9. kami

    DropBox Rest

    Это не решение вопроса... Поделитесь кодом, пожалуйста, возможно проблему удастся решить другим способом. Помимо смены версии IDE.
    1 балл
  10. Когда я заглядывал туда, там было не так, как вы написали. А при условии, что можно свои мастера писать и страницы с настройками. То понятно, что там ничего не зашито Если бы был бы код сейчас под рукой, я бы вам расшифровал. Но обычно, для таких сложных настроек используют фреймы + механизмы для регистрации своих страничек настроек.
    1 балл
  11. kami

    Окно "Настройки"

    Нет, конечно вы можете сделать свой компонент на основе панели, в нем реализовать нужный функционал, зарегистрировать его в IDE,.. но зачем переусложнять?
    1 балл
  12. Вот еще по теме: https://habrahabr.ru/post/160105/
    1 балл
  13. неправильно. это не должен быть цикл в понимании for, repeat, while это должна быть запись некоего состояния программы, изменение состояния, отражение состояния в пользовательском интерфейсе TForm1=class(TForm) ... ProcessStarted:boolean; PressCount:integer; ... end; procedure TForm1.Button1Click(...) begin StartProcess(); end; procedure TForm1.Button2Click() begin CheckProcessEnd(); end; procedure TForm1.StartProcess(); begin ProcessStarted:=true; PressCount:=0; button1.enabled := false; button2.enabled := true; end; procedure TForm1.CheckProcessEnd; const PRESS_COUNT_PENDING=5; begin inc(PressCount); if (PressCount=PRESS_COUNT_PENDING) then begin ProcessStarted:=false; button1.enabled:=true; button2.enabled:=false; end; end; да. именно конечный автомат это и есть.
    1 балл
  14. Brovin Yaroslav

    Картинка в TListBoxItem

    В стиле для андроида может быть указано, чтобы картинку не растягивать. А под Windows, наоборот. Посмотрите на свойство Stretch и WrapMode
    1 балл
  15. Асинхронный. Он в какой-то степени сложнее. Но зато не будет проблем в будущем. Например, на андроиде в принципе нету возможности обрабатывать сообщения из очереди, как это все привыкли делать в WIndows, ProcessMessage. Этот код приватный и закрытый. Для определения реакции пользователя. Лучше сделать класс, который будет являться надстройкой над обычными событиями компонентов. Например, вы хотите дождаться 5 нажатий на кнопку от пользователя. Вы определяете свой класс с набором обработчиков событий. Типа ButtonClickHandler и другие, если нужны. В нем просто считаете количество нажатий. И при достижении условия (счетчик нажатий равен пяти), генерируете своё событие: OnClicked5Times. Достоинства такого подхода: вы выносите логику из кода формы. Сможете использовать ваш класс в других местах. Получится асинхронный вариант, не использующий ProcessMessage. Тут ещё хорошо подходит шаблон конечного автомата.
    1 балл
  16. прочитайте про скейлы
    1 балл
  17. ну например воспользоваться сервисом https://time.is/ и от туда получить время. но опять же требуется интернет, другого варианта я не вижу
    1 балл
  18. Увы, но использовать ProcessMessage дурной тон... Именно он и даёт зависание главного треда.
    1 балл
  19. например вот так function getDeviceId: string; // uses // Androidapi.Jni.GraphicsContentViewText, Androidapi.JNIBridge, // Androidapi.Helpers, Androidapi.Jni.JavaTypes, // Androidapi.Jni.Provider, Androidapi.Jni.Telephony, // System.Hash; var androidID: string; deviceID: string; TelephoneServiceNative: JObject; TelMan: JTelephonyManager; begin androidID := JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.Context.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID)); TelephoneServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); if TelephoneServiceNative <> nil then begin TelMan := TJTelephonyManager.Wrap((TelephoneServiceNative as ILocalObject).GetObjectID); deviceID := JStringToString(TelMan.getDeviceId); end else deviceID := ''; Result := THashMD5.GetHashString(androidID + deviceID); end; UPDATE: не забываем про разрешение READ_PHONE_STATE
    1 балл
  20. Vitaldj

    Сортировка в Tool Palette

    Надо механически перенести во в этой панельке:
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...