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

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

Модераторы
  • Постов

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

  • Посещение

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

    264

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

  1. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в DeviceInfo - модуль для получения информации о девайсе   
    Android 6.0 и выше, не выдаёт Bluetooth, Wi-Fi MacAddress
    по дефалту 02:00:00:00:00:00
    подробней
  2. Like
    Равиль Зарипов (ZuBy) отреагировална Евгений Корепов в Установка ScrollViewPos после добавления ListViewItem   
    Вы будете смеяться, но проблема решена. Методом научного тыка.
     
    Не работающая установка значения ListView.ScrollViewPos решается следующей строкой   ListView.ItemIndex:=0; (Не важно 0 или любое другое число).
    Т.е. для того чтоб заработало делаем так:
      ListView.ItemIndex:=0;   ListView.ScrollViewPos:=333; // Ура, работает!!! Почему так работает, я не понял.
  3. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в Работа с БД Firebird   
    все же от задачи зависит...
    например у меня две задачи - транспортная диспетчерская и кассовая программа, в обеих очень интенсивный трафик.
    постоянный коннект с базой с толстого клиента по локалке ничем не хуже постоянного коннекта с ней HTTP-сервера и уж точно лучше чем 100500 переконнектов
    логин-пароль я вообще ставлю один гостевой на вход в базу в процедуру аутентификации, а авторизацию я провожу сам. она идет уже после ввода пароля вручную, HTTP-сервер работает точно так же
    часть операций выполняют хранимые процедуры на сервере
    при активном использовании дисконнект проявится мгновенно
     
    а вот если задача по способу работы напоминает Web-серфинг, работа с документами, формами, время от времени сбор и отсылка данных, тогда да, я присоединяюсь к вашему посту
  4. Like
    Равиль Зарипов (ZuBy) отреагировална Евгений Корепов в Как создать хелперы для массива?   
    Вот здесь посмотрите https://code.google.com/p/delphi-foundations/source/browse/trunk/Book/06.+Arrays,+collections+and+enumerators/Simple+search+%28TArray+class+helper%29/CCR.Generics.SimpleArraySearch.pas?r=29
  5. Like
    Равиль Зарипов (ZuBy) получил реакцию от Руслан Лыков в Координаты текущего местоположения на MapView   
    ага, действительно. в коде указано что берется позиции камеры
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.GetCameraPosition; end); а нужно указать
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.getMyLocation; end); хорошо было бы добавить это как еще одно свойство, но пока нет времени этим заниматься
  6. Like
    Равиль Зарипов (ZuBy) получил реакцию от Andrew в Координаты текущего местоположения на MapView   
    ага, действительно. в коде указано что берется позиции камеры
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.GetCameraPosition; end); а нужно указать
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.getMyLocation; end); хорошо было бы добавить это как еще одно свойство, но пока нет времени этим заниматься
  7. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Координаты текущего местоположения на MapView   
    ага, действительно. в коде указано что берется позиции камеры
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.GetCameraPosition; end); а нужно указать
    InvokeOnMap( procedure(Map: JGoogleMap) begin TJMapsInitializer.JavaClass.initialize(TAndroidHelper.Activity); // workaround for older version of gms FCameraPosition := Map.getMyLocation; end); хорошо было бы добавить это как еще одно свойство, но пока нет времени этим заниматься
  8. Like
    Равиль Зарипов (ZuBy) получил реакцию от Cody71727172 в [TMultiView] Правки стандартного примера MultiViewDemo   
    Доработал чуть CustomPresentation из демо
     
    1) убрал баг с утечкой памяти
    было так с включенным ReportMemoryLeaksOnShutdown := true;

     
    2) неточное отображение на форме, не по центру
    было

    стало

     
    3) при открытой MV закрыть программу, утечка памяти ReportMemoryLeaksOnShutdown := true;
     
    4) Добавил события OnShown, OnHidden
     
    MultiView.zip
  9. Like
    Равиль Зарипов (ZuBy) получил реакцию от Евгений Корепов в ListBox, Edit и клавиатура   
    Пользуюсь еще вот таким модулем
     
    просто подключаем в uses и используем для Андроид
     
    vkbdhelper.zip
  10. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в [TMultiView] Правки стандартного примера MultiViewDemo   
    Доработал чуть CustomPresentation из демо
     
    1) убрал баг с утечкой памяти
    было так с включенным ReportMemoryLeaksOnShutdown := true;

     
    2) неточное отображение на форме, не по центру
    было

    стало

     
    3) при открытой MV закрыть программу, утечка памяти ReportMemoryLeaksOnShutdown := true;
     
    4) Добавил события OnShown, OnHidden
     
    MultiView.zip
  11. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Связка клиента на Anroid и сервера на Delphi7   
    лучше использовать json, читаемость лучше и размер данных меньше
  12. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Связка клиента на Anroid и сервера на Delphi7   
    Nik, советую почитать про JSON удобная штука, тем более если использовать xSuperObject
  13. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в [TMultiView] Правки стандартного примера MultiViewDemo   
    Доработал чуть CustomPresentation из демо
     
    1) убрал баг с утечкой памяти
    было так с включенным ReportMemoryLeaksOnShutdown := true;

     
    2) неточное отображение на форме, не по центру
    было

    стало

     
    3) при открытой MV закрыть программу, утечка памяти ReportMemoryLeaksOnShutdown := true;
     
    4) Добавил события OnShown, OnHidden
     
    MultiView.zip
  14. Like
    Равиль Зарипов (ZuBy) отреагировална alexbirukov в Доступ к Yandex.Disk   
    Читал вот тут недавно статейку. Но сам пока не проверял.
  15. Like
    Равиль Зарипов (ZuBy) отреагировална zonik в Unsupported media file   
    Я сталкивался
    решил проблему использованием бесплатной библиотеки BASS сайт http://www.un4seen.com/  на сайте есть примеры использования на нескольких языках, в том числе и на Delphi
  16. Like
    Равиль Зарипов (ZuBy) отреагировална Nik в Связка клиента на Anroid и сервера на Delphi7   
    Я читал твои впечатления.. В принципе согласен с твоими теми выводами, но в моём конкретном случае количество данных небольшое и по структуре они очень простые.. Цеплять к программе дополнительную библиотеку по обработка JSON, чтобы прочитать 2-5 полей у одной записи - это слишком накладно по моему мнению. Но в целом с JSON надо будет познакомить для общего развития )
  17. Like
    Равиль Зарипов (ZuBy) отреагировална Cody71727172 в ScrollBox лагает   
    Попробуйте так, возможно, это то что вам нужно:
    http://fire-monkey.ru/topic/1495-tmultiview-kak-izbezhat-zaderzhki-pri-pervom-poiavlenii-tmultivie/?p=7293
  18. Like
    Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Цвет фона TMultiView   
    TMultiView использует стиль 'MultiViewStyle' Измените существующий или создайте свой.  


  19. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в SuperObject vs JSON   
    Привет Всем!
     
    Решил поделится впечатлениями по работе с SuperObject'ом и родным JSON'ом
     
    тест был файла с 2000+ объектами в JSON файле
    структура файла была такая
    { "status":"OK", "last_id":"711", "objects":[ { "obj_id":"1", "obj_acc_id":"1", "obj_cat_id":"24", "obj_title":"13 магистраль", "obj_descr":"ЖК представляет собой комфортный дом, состоящий из 14 блок-секций (подъездов). Расположен в перспективном развивающемся районе по 13 Магистрали с удобным выездом как на левый берег, так и в старую часть города. Вблизи Жилого комплекса распологается новая школа, парк отдыха и культуры.", "obj_address":"ул. Мамышулы - 104, д. 16\/1", "obj_address2":null, "obj_url":"3fa07dd73be072b049529c80c7d74732", "obj_planet":"1", "obj_country":"1", "obj_region":"1", "obj_city":"292", "obj_lat":"51.141", "obj_lon":"71.4835", "obj_insert_dt":null, "obj_update_dt":null, "obj_editted":"0", "obj_updated":"0", "obj_deleted":"0", "obj_showed":"1", "obj_rating":"0", "obj_pro_top":"0", "obj_pro_selected":"0", "obj_pro_unix_dt":"0", "obj_partner":"0", "obj_parent_id":"0", "obj_has_child":"0", "obj_currency":"0" }, // тут далее 2000+ объектов ] } SuperObject  Время выполнения:  ~01:393
    JSON родной Время выполнения: ~01:690
     
    разница не особо ощутима, тем более если будет меньше объектов
     
    JSON родной
    function JSONParse(const aJSONData: string; const aMemo: TMemo): boolean; var aJSValue: TJSONValue; aJSObject, aJSObjArr: TJSONObject; aJSArray: TJSONArray; I: integer; begin Result := false; aJSValue := TJSONObject.ParseJSONValue(aJSONData) as TJSONValue; if Assigned(aJSValue) then begin aJSObject := aJSValue as TJSONObject; aMemo.Lines.Add('status: ' + aJSObject.GetValue('status').Value); if aJSObject.GetValue('status').Value = 'OK' then begin Result := true; if Assigned(aJSObject) then begin aJSArray := aJSObject.GetValue('objects') as TJSONArray; if Assigned(aJSArray) then begin Result := true; aMemo.Lines.Add('last_id: ' + aJSObject.GetValue('last_id').Value); aMemo.Lines.Add('count: ' + aJSArray.Count.ToString); for I := 0 to aJSArray.Count - 1 do begin aJSObjArr := aJSArray.Items[I] as TJSONObject; if Assigned(aJSObjArr) then begin aMemo.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' + aJSObjArr.GetValue('obj_cat_id').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_title').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_descr').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_address').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_url').Value); end; end; end; end; end; aJSValue.Free; end; end; SuperObject
    function JSONSOParse(const aJSONData: string; const aMemo: TMemo): boolean; var xObject: ISuperObject; xCount, I: integer; sfmt: string; begin Result := false; xObject := SO(aJSONData); aMemo.Lines.Add('status: ' + xObject['status'].AsString); if xObject['status'].AsString = 'OK' then begin Result := true; xCount := xObject['objects'].AsArray.Length; aMemo.Lines.Add('count: ' + xCount.ToString); aMemo.Lines.Add('last_id: ' + xObject['last_id'].AsInteger.ToString); for I := 0 to xCount - 1 do begin aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_acc_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_cat_id"'].AsInteger.ToString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_title"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_descr"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_address"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_url"'].AsString); end; end; end; Разница ощутима когда пишешь код, SO намного легче читать
     
    Подробней почитать и скачать SO
  20. Like
    Равиль Зарипов (ZuBy) получил реакцию от gdm_it в ListBox, Edit и клавиатура   
    Пользуюсь еще вот таким модулем
     
    просто подключаем в uses и используем для Андроид
     
    vkbdhelper.zip
  21. Like
    Равиль Зарипов (ZuBy) отреагировална Cody71727172 в ListBox, Edit и клавиатура   
    У Edit свойство KillFocusByReturn = true, ReturnKeyType=Done/Go/Next/Search/Send
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от Martifan в ListBox, Edit и клавиатура   
    Пользуюсь еще вот таким модулем
     
    просто подключаем в uses и используем для Андроид
     
    vkbdhelper.zip
  23. Like
    Равиль Зарипов (ZuBy) получил реакцию от Cody71727172 в ListBox, Edit и клавиатура   
    Пользуюсь еще вот таким модулем
     
    просто подключаем в uses и используем для Андроид
     
    vkbdhelper.zip
  24. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в ListBox, Edit и клавиатура   
    Для того чтобы поля ввода были видны, в демках есть ScrollableForm
    Поизучайте её
  25. Like
    Равиль Зарипов (ZuBy) отреагировална zairkz в Цена собственной программы   
    Это Казахстан детка!!
×
×
  • Создать...