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

haword

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

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

  • Посещение

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

    19

Сообщения, опубликованные haword

  1. В 06.04.2018 в 17:44, Brovin Yaroslav сказал:

    Другой вопрос, что я не уверен, что на бюджетные телефоны до 3000 будут ставить последнюю версию андроида. Она там тупо не взлетит. И пока такое требование к поддержке последней версии андроида выглядит сомнительно. 

    да нет, гугль заставляет программистов в своем приложении поддерживать все функции новых АПИ, но при этом если они захотят предоставлять совместимость со старыми версиями АПИ то пускай делают что то типа развилок в программах - если апи такое то такая функция а если такое то такая. что бы при запуске на новых версиях ос программы не падали. видать в следующих апи хотят полностью избавиться от устаревших вызовов функций. 

  2. 5 часов назад, Yarpda сказал:

    TargetSDK ставит система в зависимости от того на какой версии SDK был действительно собран этот пакет.

    нет, это не зависит от версии. это напрямую зависит от поддержки программой этой sdk. например в делфи сейчас официально нет поддержки запроса разрешений. а значит выставить целевой sdk 23  уже не можем. 

  3. 2 часа назад, Равиль Зарипов (ZuBy) сказал:

    бред какой-то.

    да нет, все правильно. целевой sdk можно указывать любой для которого обеспечена совместимость. а вот минимальный зависит от того на какой версии он будет запускаться. но при этом вы гарантируете работу программы на sdk от минимальной до целевой. 

  4. о классная тема ) не люблю якать но я же говорил что надо переходить на нативную разработку если хочешь сделать что то серьезное, еще давно )

    единственный минус в андроид студии в том что под андроид невозможно зашифровать свою БД и если кому надо сможет от туда вытащить данные, если есть рут на компе. то есть ты пахал заливал туда данные, руками, а тут на тебе одни умник прет себе все и вставляет в свою прогу. на делфи проще, поставил шифрование, и мало кто просто так найдет ключ к базе, придется в ассемблере много возиться. 

    да есть шифровальщики бд НО все время надо прикладывать свою нативную либу в проект, а это значит что настанет момент и твоя прога перестанет работать на новых версиях. 

    да и что еще бесит в андроид студии, после делфи ) это очень много чего надо делать в xml руками, визульная часть настроек там хромает сильно. 

    за то на делфи простенькие программы типа калькуляторов, хелловордов и так далее это как два пальца .. ) 

  5. 9 часов назад, krapotkin сказал:

    это какбы из 90-х код-то... Да еще и нерабочий.

    Никто сейчас строки не хранит в типизированном файле...

    Храните в БД или хотя бы в JSON. Вот тут я расписывал подходы

    http://www.cyberforum.ru/blogs/469693/blog4883.html

    считывание и запись структурированных данных будет быстрее чем чтение и парсинг json или тем более запись в локальную бд если нужно просто считать данные и залить в массив. а вот поиск да фильтрация там да бд нужна. 

  6. 58 минут назад, rareMax сказал:

    Тогда учи Яву и ХуКод

    даже программируя на делфи под мобильные платформы ты обязан знать основы API этих платформ. без этого не подключить никаких специфических приблуд. так что знать надо. а вот если бы еще и под нужной тебе платформой собирался код написанный для той платформы было бы то что надо.

    59 минут назад, rareMax сказал:

    Клон чего? 

    fmx, уже есть crossvcl, fmxlinux будет еще и fgx. 

    59 минут назад, wamaco сказал:

    Мало компонентов для FMX? Странно.... их полно! причем очень полно!

    Не буду перечислять, дабы не зачли за рекламу!

    а перечисли ) штук 5 гридов назови, штук 5 других интересных интерфейсов для мобильной платформы, только не надо называть те которые не используют интерфейс. мне нужен красивый грид под мобильник. из мне известных под fmx это tms и FireDataGrid, и все!! только не надо предлагать извращаться ListView, это не то. 

    46 минут назад, Akad сказал:

    P.S. Смысл crossvcl без мобильных платформ не понятен. На линуксе и маке есть вайн. Точка.

    что бы твой продукт можно было установить через стандартные магазины или инсталяторы этих платформ. то есть что бы у тебя был нормальный продукт а не хз что с бубном в придачу. просто так запустить ехе можно на калькуляторе или подобное если у тебя более серьезный софт то это не выход а костыль. ты же не скажешь своему заказчику что для того что бы запустить твою программу ему надо установить вайн, настроить его, и только потом запускать твою программу. нет. он должен скачать его, установить и запустить и все.

    42 минуты назад, Nik сказал:

    Вроде программист, а всё мечтаешь о большой зелёной кнопке ;-)

    не, должна быть одна большая КРАСНАЯ кнопка с надписью - ХОЧУ ) 

    43 минуты назад, wamaco сказал:

    это очень много? ) много это года больше 100, а очень много это когда больше 1000. 

  7. 16 часов назад, Brovin Yaroslav сказал:

    Перед тем, как начинать делать компоненты я долго сравнивал апи VCL и FMX и пришел к выводу, что однозначно сохранить совместимость не получиться. Уж больно много методов, которые специфичны для мобильных платформ и работа с ними. Но стараюсь, удачные наименования методов использовать и у меня. Смотрю и сравниваю апи VCL, FMX, Android и iOS и стараюсь выбрать наиболее удачные моменты.

    то есть еще один фреймворк ни с чем не совместимый для которого с нуля придется все писать. при этом если захочешь отказаться то заново переписывать программу надо будет. 

    все таки crossvcl мне как то по описанию и рекламе больше нравиться. не тестировал его сам. но то что у него есть базовая совместимость с vcl это большой плюс для него. 

    54 минуты назад, krapotkin сказал:

    FGX будет жить отдельно, пока эмро не сочтет его "убийцей айфонов" и не перекупит на корню. А до этого еще ох как далеко

    я большой скептик ) сомневаюсь я в этом. я сомневался в fmx когда он только появился, что не взлетит. не взлетел. компонентов мало. все глючит. в каждой версии что то да ломают. 

    А вот что реально бы меня заинтересовало, очень причем, это фреймворк, который смог бы все что ты налабал на делфи, переводить в нативный код и потом этот код можно было бы собрать уже нативными студиями. например написал прогу на делфи, делаешь сборку для андроида и тадам, появляется папка java а в ней проект для android studio, который там же собирается и работает так как ты задумывал это в делфи. или собираешь а там папка apple а там проект для XCode и все собиралось бы для ios и macos. ВОТ!! где было бы счастье 

    а это очередной клон который будет так же глючить как и fmx. при чем никаких сторонних компонентов невозможно будет использовать. хотя их и на fmx мало. а вот тот же crossvcl позиционирует себя как фреймворк с помощью которого можно собирать компоненты и те будут работать если они не использовали прямые обращения к апи винды. 

    да и это не реклама crossvcl )

    а вообще что можно сказать, поживем увидим ) 

  8. огнеобезьяна это универсальный инструмент. в нем никогда не будет всех приблуд и придумок различных разработчиков интерфейсов. есть базовый функционал, с ним и работайте и делайте что хотите. если нет желания допиливать базовые компоненты, пользуйтесь нативными, если я не ошибаюсь в TMS есть компоненты которые используют нативные для отображения. Ну или пользуйтесь именно теми средами разработки которые предлагает сама ОС а не универсальными. 

    Да и на последок - помните, никто вам ничего не должен ) хотите пользуйтесь хотите нет. 

  9. ну как обычно - ничего не хочу делать, скажите куда ткнуть что бы все заработало ))

    хочешь что бы заработало - перепиши код. нумерация с нуля это не та проблема о которой надо переживать собираясь писать под мобильные устройства на делфи. проблема в другом. в том что fmx вообще ни как не совместим с vcl и буквально все надо переписывать с нуля. поэтому никакой обратной совместимости в коде не будет. 

  10. в делфи делается так - 

                        li:= lv.Items.Add;
                        lii:=li.Objects.FindObjectT<TListItemImage>('Image');
                        lii.OwnsBitmap:=True;

    далее можно грузить картинку, если в потоке то 

                TThread.Synchronize(TThread.CurrentThread, procedure()
                begin
                   // присваивание битмапу картинки 

                            lii.Bitmap:= TBitmap.Create;
                            lii.Bitmap.SetSize(ItemBitmap.Width, ItemBitmap.Height);
                            lii.Bitmap.Clear(TAlphaColors.Null);
                            lii.Bitmap.CopyFromBitmap(ItemBitmap);

                   
                end
                );

  11. обычно люди с начало у гугля спрашивают а потом на форум идут. гугль сказал вот что - 

    protected String doInBackground(String... params) {
    
        try {
            newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + "package name" + "&hl=en")
                    .timeout(30000)
                    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .referrer("http://www.google.com")
                    .get()
                    .select("div[itemprop=softwareVersion]")
                    .first()
                    .ownText();
        } catch (IOException e) {
            e.printStackTrace();
        }
    
        return newVersion;
    }

    то есть просто скачиваешь страницу с маркета, ищешь там определенный DIV и в нем и находишь последнюю версию на маркете. 

  12. ну шо вы мени таки сказки рассказываете )) дошли у меня руки проверить и найти косяк. нашел. хотя может быть это фича а не баг ) короче

    кидаем на форму ListView, выставляем свойство показать строку поиска. на кнопку вешаем сие действие, запускаем, все красиво, ищет все что занесли

    var
     i: Integer;
     l: TListViewItem;
    begin
      ListView1.Items.Clear;
      for I := 0 to 1000 do
        begin
          l:= ListView1.Items.Add;
          l.Text:= i.ToString;
        end;

    end;
    И начинается самое интересное, изменяем процедуру добавив всего одну сроку l.Data['id'] := i; типа храним идентификатор, и ставим его ДО заполнения поля Text, запускаем программу, заполняем данными, вуаля, в поиске только видимые строки )

    var
     i: Integer;
     l: TListViewItem;
    begin
      ListView1.Items.Clear;
      for I := 0 to 1000 do
        begin
          l:= ListView1.Items.Add;
          l.Data['id'] := i;
          l.Text:= i.ToString;
        end;

    end;

  13. Привет всем.

    Столкнулся с непонятной ситуацией, поискал в гугле, не нашел ничего похожего. Проблема - есть ListView, в него загружаются в отдельном потоке строки, под 100 штук, проект ранее работал отлично на Seattle, просто тупо перенес в Berlin. Вроде все красиво, все работает. НО как только попробовал использовать фильтр так облом. Фильтруются только те строки которые видны были на экране. Если я не сролил вниз список то те сроки что не были показаны в фильтр попадают с пустыми значениями и мой фильтр их отсекает. Если я проскролю вниз вверх список то в фильтр попадают все строки и он начинает работать нормально. 

    Я так понимаю проблема из-за нового ListView в Берлине. Ощущение что не создаются поля пока не будут показаны на экране и из-за этого они пустые при фильтрации. Как лечить? Создавать в дизайнтайме поля ListView? 

×
×
  • Создать...