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

kami

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

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

  • Посещение

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

    41

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

  1. Like
    kami отреагировална Vitaldj в Обновление до Seattle (будут ли проблемы)   
    Мне кажется должны сработать, вроде там обратная совместимость. Я бы на твоем месте просто бы сделал бекап мака через Time Machine и установил новую xcode с paserver. Если что пойдет не так, откатись назад)).
    И еще, дельфи стоит в виртуалке?
  2. Like
    kami отреагировална Равиль Зарипов (ZuBy) в Обновление до Seattle (будут ли проблемы)   
    1) paserver'a можно оставить два
    2) в XCode загрузить SDK для IOS 8.4
    3) а вот с миграцией будет жопа, приготовьтесь
  3. Like
    kami отреагировална krapotkin в Числовая клавиатура в InputQuery   
    я просто сделал свой аналог inputquery
    это не просто, а очень просто...
  4. Like
    kami получил реакцию от Rusland в Какие компоненты использовать в клиент-сервере   
    Даже если и умеете писать - толстые клиенты это зло. Именно сервер должен заниматься не только хранением, но и иметь бОльшую часть функционала по обработке данных. Это значительно упрощает всяческие обновления, нововведения и устранения глюков. Попробуйте выпустить мобильного толстого клиента с какой-нибудь незамеченной ошибкой, которая приводит к нестыковке данных в БД, а потом заставить всех пользователей обновить приложение - да половина не сделает этого в разумные сроки. И будете вставлять костыли в свои хранимки.
    В Windows далеко не все клиенты толсты, у вас устаревшие сведения.
    "Есть магаз" - я вот принципиально не обновляю из магаза некоторые приложения: часть из них убили отвратительным переводом на Material Design, а часть от версии к версии все больше кушает память, что для моего телефона уже непозволительно.
    И чтобы вы знали - "толстость" клиента к "независимому интерфейсу" отношения не имеет. Если я правильно вас понял, то под независимым интерфейсом вы понимаете MVC. А "толстость" определяется тем, где производится основная работа с данными: обработка, преобразование, вылавливание ошибок и т.п. Если на клиенте - он толстый, если на сервере - то тонкий.
  5. Like
    kami отреагировална krapotkin в Кому нужны программисты Fire Monkey?   
    теперь осталось сравнить цены на жизнь и определяться )
  6. Like
    kami получил реакцию от Andrey Efimov в FireDAC + ODBC + Excel (.xls; xlsx)   
    Логично.
    Нужно запустить 64-битный Odbcad32.exe и посмотреть доступные источники данных для 64 битных приложений, есть ли там драйвер для Excel
    Для 32 битных нужно запустить его же, но из папки %systemdrive%\Windows\SysWoW64.
    https://support.microsoft.com/ru-ru/kb/942976
     
    Заодно - посмотреть в настройки драйвера, возможно там выставлено "открывать только для чтения"

  7. Like
    kami получил реакцию от Andrey Efimov в FireDAC + ODBC + Excel (.xls; xlsx)   
    Win 8.1, 64 бит, Офис 2010.
    Исходники не смотрел, exe отработал нормально,
  8. Like
    kami отреагировална #WAMACO в Кому нужны программисты Fire Monkey?   
    Ну во-первых, хорошо смеется тот, кто смеется последним!
    Во вторых, наблюдаю тенденцию на других форумах
    - "обучился на JAVA, где искать работу?"
    - "как то не все сладко в JAVA. правлю legacy сраный код"
    - "группа C# кодеров запрограммерит любую задачу за еду"
    и т.д.
    такая же тенденция со всякми скрипт-языками (JavaScript и иже  с ними), пока Да - закрывают нужды времени, ваяя на коленках скрипты!
    НО, потом встанет задача оптимизации всего этого  - и начнется время натива! Вот тут многие с испорченными знаниями фреймворков и прочей шелухи начнут выпадать из жизни! уже есть конкретные заявки на именно "нативные" реализации!
    поэтому направление развития RAD абсолютно верное! а качество реализации придет! поверьте!
     
    P.S. два знакомых менеджера по продажам (уже смешно) закончили курсы по JAVA, говорят бабла хотим много!
    но при поиске работы на 1 предложение - уже 100 человек в очереди стоят! говорят: "нас обманули!"
    я говорю "на вас деньги заработали!" (по 140 тыщ. руб - курсы по JAVA, 2х140=280 тыщ.) че, неплохо так!
  9. Like
    kami отреагировална haword в Какие компоненты использовать в клиент-сервере   
    некоторые ответы меня вводят в замешательство ибо что то я не слышал про версии MySQL 2005 и MySQL 2014  
  10. Like
    kami получил реакцию от baklanoid в Возможно ли сделать сабкласс (subclass) стандартных компонентов?   
    Вместо создания своих компонентов, можно воспользоваться таким трюком, который существует с незапамятных времен. На примере TEdit (используется в реальном проекте для ввода чисел - целых/дробных, положительных/отрицательных и не мешающий работе текстовых TEdit):
    1. Создаем новый unit:
    unit uCustomEditForNumbers; interface uses   System.Classes,   FMX.Types,   FMX.Edit; type   TCustomEditForNumbers = class(FMX.Edit.TEdit)   private     FMaxLength: integer;   protected     procedure KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); override;   public     property MaxLength: integer read FMaxLength write FMaxLength;   end;   TEdit = class(TCustomEditForNumbers) // а вот он и трюк - теперь TEdit это не FMX.Edit.TEdit   end; // а наш TCustomEditForNumbers implementation uses   System.SysUtils; { TCustomEditForNumbers } procedure TCustomEditForNumbers.KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); var   bAllowed: Boolean;   s: string;   Ch: WideChar; begin   if FMaxLength > 0 then     if Text.Length >= FMaxLength then       if KeyChar <> #13 then         KeyChar := #0;   if KeyboardType = TVirtualKeyboardType.NumberPad then     begin       case Tag of         0: // беззнаковые целые           bAllowed := (KeyChar >= '0') and (KeyChar <= '9');         1: // знаковые целые. Надо бы проверять и положение каретки.           begin             s := Text;             bAllowed := ((KeyChar >= '0') and (KeyChar <= '9')) or //               ((KeyChar = '-') and (CaretPosition = 0) and (not s.Contains('-')));           end;         2:           begin // беззнаковые Float             s := Text;             Ch := TFormatSettings.Create.DecimalSeparator;             bAllowed := ((KeyChar >= '0') and (KeyChar <= '9')) or //               ((KeyChar = Ch) and (not s.Contains(Ch)));           end;         3: // знаковые Float           begin             s := Text;             Ch := TFormatSettings.Create.DecimalSeparator;             bAllowed := ((KeyChar >= '0') and (KeyChar <= '9')) or //               ((KeyChar = '-') and (CaretPosition = 0) and (not s.Contains('-'))) or //               ((KeyChar = Ch) and (not s.Contains(Ch)));           end;       else         bAllowed := True;       end;       if not bAllowed then         KeyChar := #0;     end;   inherited; end; 2. В uses формы/фрейма подключаем этот unit после штатного FMX.Edit
     
    Все. Новый функционал уже работает.
     
    P.S. Хоть пример и на Delphi, а не C++, но суть от этого не меняется, думаю.
  11. Like
    kami получил реакцию от Cody71727172 в ScrollBox лагает   
    Есть мнение, что для (например) списка контактов нужно использовать ListView, а не ScrollBox
  12. Like
    kami отреагировална Brovin Yaroslav в [Событие] Мировой тур RAD Studio 10 Seattle - Санкт-Петербург   
    Места проведения и даты:Санкт-Петербург (26.11.15) Официальный сайт мероприятия: http://www.delphitour.ru Регистрация: http://forms.embarcadero.com/EM15Q4RUDeveloperDirectLive Приглашаем вас принять участие в Мировом туре RAD Studio 10, который пройдет 26 ноября в Санкт-Петербурге в отеле Golden Garden. 
     
    У вас будет возможность не только ознакомиться с новыми возможностями продуктов, но и своими глазами увидеть, почему комплексная среда RAD Studio 10 является универсальным решением для разработчика, позволяющая заниматься быстрым созданием приложений, обладающих всем необходимым функционалом по взаимодействию с практически любыми устройствами, корпоративными источниками данных и популярными облачными сервисами.
     
    В программе:
    Разработка приложений для Windows 10 и использование новых компонент VCL; Ускорение разработки мобильных приложений для Android и iOS (отладка iOS 64-bit, тестирование кода); Использование нового компилятора C++ 11 CLANG; Эффективное использование среды разработки и новые возможности GetIt; Создание приложений для «Internet of Things» и Beacons; Применение новых возможностей FIreDAC для расширенной поддержки JSON и BSON Быстрое создание приложений для работы с NoSQL СУБД MongoDB с помощью новых компонент, классов, реализующих MongoDB API, и нового драйвера FireDAC для MongoDB. Кроме этого вы сможете задать все ваши вопросы экспертам, поделиться впечатлениями о продуктах и узнать о дальнейших планах по развитию портфеля решений компании. Ни один вопрос не останется без внимания! Количество мест ограничено!
    Участие в мероприятии бесплатное!
     
    Участие в мероприятии бесплатное.
  13. Like
    kami отреагировална bigjorj в Не учитывается размер шторки   
    Вот кстати и подоспело решение проблемы со статусбаром под Intel аппаратами
     
    https://magnumlabs.wordpress.com/2015/10/10/delphiandroid-misalignment-status-bar-on-intel-based-devices/
  14. Like
    kami получил реакцию от zairkz в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.   
    Andy, вы просто не умеете их готовить
    В других IDE/языках тоже проблем и глюков более чем есть.
    А по факту - я надеюсь, что FMX не остановят в развитии. Имхо, Embarcadero сейчас в направлении кросс-платформенности впереди планеты всей.
    Повторюсь - это было имхо и не повод для холиваров.
  15. Like
    kami получил реакцию от Brovin Yaroslav в access violation в windows7   
    Прежде чем что-то обновлять, неплохо было бы вычислить виновника, поскольку исходное сообщение AV - не информативно совсем.
    При компиляции под винду задействуйте MadExcept /EurecaLog, etc..., он покажет полный стек, включая строки кода, который привел к возникновению AV. Таким образом можно вычислить, кто сплоховал, а дальше ... по обстоятельствам.
  16. Like
    kami отреагировална FIL в RAD XE9 (RAD X Seattle)   
    Delphi Product Editions
  17. Like
    kami отреагировална krapotkin в RAD XE9 (RAD X Seattle)   
    после чтения bug-fix прямо в раздумьях -- как хоть что-то работало ? и что делать если ошибки того же уровня есть в новой версии...
  18. Like
    kami получил реакцию от zairkz в [Android] программа закрывается при использовании LocationSensor и Memo   
    {$IFDEF offtop}Мсье знает толк в извращениях {$ENDIF}
  19. Like
    kami получил реакцию от Равиль Зарипов (ZuBy) в [Android] программа закрывается при использовании LocationSensor и Memo   
    {$IFDEF offtop}Мсье знает толк в извращениях {$ENDIF}
  20. Like
    kami отреагировална Brovin Yaroslav в Как узнать сколько пикселей в 1 см?   
    То же самое можно получить проще:
    uses System.Devices; TDeviceInfo.ThisDevice
  21. Like
    kami получил реакцию от Brovin Yaroslav в Нагрев устройства при работе программы Android   
    Кирилл, это вечная дилемма между удобством/красотой приложения, задействуемыми ресурсами и скоростью его работы. Разумеется, анимации влияют на загрузку процессора. Но вот так однозначно сказать - это не употребление, а именно "зло" - нельзя. Если есть возможность - запустите под Windows под профилировщиком (AQTime Standart, например) - сразу увидите, какие методы максимально грузят процессор.
    Вспоминаются жалобы в плеймаркете (не реклама) на яндекс.карты - в одной из версий приложение разряжало аккумулятор вхлам, даже постоянная зарядка не спасала. Разработчики что-то сделали, внешне ничего не поменялось (вроде), но проблема ушла.
  22. Like
    kami получил реакцию от Brovin Yaroslav в Нагрев устройства при работе программы Android   
    Зависит
    Например:
    - злоупотребление процессорным временем (постоянная загрузка процессора на 100% - неоптимальность алгоритмов и не-использование аппаратных возможностей ускорения)
    - злоупотребление частотой получения данных от периферии (датчики ускорения/GPS/наклона...)
    - злоупотребление яркостью экрана (некоторые устройства при включенном экране и максимальной яркостью разряжаются даже при подключенной штатной зарядке)
    Да мало ли еще чего, например - злоупотребление программированием вообще
  23. Like
    kami получил реакцию от enatechno в Нагрев устройства при работе программы Android   
    Зависит
    Например:
    - злоупотребление процессорным временем (постоянная загрузка процессора на 100% - неоптимальность алгоритмов и не-использование аппаратных возможностей ускорения)
    - злоупотребление частотой получения данных от периферии (датчики ускорения/GPS/наклона...)
    - злоупотребление яркостью экрана (некоторые устройства при включенном экране и максимальной яркостью разряжаются даже при подключенной штатной зарядке)
    Да мало ли еще чего, например - злоупотребление программированием вообще
  24. Like
    kami получил реакцию от Andrey Efimov в Отправка содержимого Edit на сервер   
    Разве Tethering работает через интернет? Емнип, он способен обнаруживать "коллег" и подключаться только в одной подсети.
  25. Like
    kami отреагировална Brovin Yaroslav в Аналог Post в FMX android   
    С моей точки зрения, метод TThread.Queue имеет один весомый недостаток. А именно:
    Если вызов метода TThread.Queue идет в главном потоке, то код будет вызыван немедленно. class procedure TThread.Queue(const AThread: TThread; AMethod: TThreadMethod); var LSynchronize: PSynchronizeRecord; begin if AThread <> nil then AThread.Queue(AMethod) else begin New(LSynchronize); try LSynchronize.FThread := nil; LSynchronize.FSynchronizeException := nil; LSynchronize.FMethod := AMethod; Synchronize(LSynchronize, True); // <-- Смотрим сюда finally if MainThreadID = CurrentThread.ThreadID then Dispose(LSynchronize); end; end; end; А потом на кусочек этого кода:
    class procedure TThread.Synchronize(ASyncRec: PSynchronizeRecord; QueueEvent: Boolean = False); var SyncProc: TSyncProc; SyncProcPtr: PSyncProc; begin if CurrentThread.ThreadID = MainThreadID then begin if Assigned(ASyncRec.FMethod) then ASyncRec.FMethod() else if Assigned(ASyncRec.FProcedure) then ASyncRec.FProcedure(); end else Из реализации метода Synchronize, как раз и видно, что код будет вызван немедленно, если текущий тред - это главный поток. 
     
    Итог
    TThread.Queue заменяет PostMessage, если вызов идет не из главного потока. Если вызов TThread.Queue идет из главного потока, то это равносильно прямому вызову процедуры или метода.  
×
×
  • Создать...