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

Лидеры

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

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

    Модераторы


    • Баллы

      4

    • Постов

      2 517


  2. Cody71727172

    Cody71727172

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


    • Баллы

      3

    • Постов

      16


  3. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      2

    • Постов

      2 124


  4. rustam_d

    rustam_d

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


    • Баллы

      2

    • Постов

      200


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

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

  1. Пользуюсь еще вот таким модулем просто подключаем в uses и используем для Андроид vkbdhelper.zip
    3 балла
  2. Попробуйте так, возможно, это то что вам нужно: http://fire-monkey.ru/topic/1495-tmultiview-kak-izbezhat-zaderzhki-pri-pervom-poiavlenii-tmultivie/?p=7293
    2 балла
  3. Привет Всем! Решил поделится впечатлениями по работе с 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
    1 балл
  4. Tera

    Семисегментный индикатор

    Компоненты TSevSeg - семисегментный индикатор и TSeparator - разделитель. Переписал компоненты с VCL. Может, кому пригодится. Пример использования: Для разового использования можно просто подключить к проекту как модуль. SevenSegment.zip
    1 балл
  5. Спасибо,теперь ошибок нет.Теперь загвоздка в другом.Я проверял регистрацию устройств через браузер,скопировал ссылку из статьи,прописал токен и id устроиства,все отлично.В БД все записывается.Теперь набросал в Delphi приложение,опять же по статье.Все скомпилировалось и установилось без ошибок,но при запуске регистрация не проходит.Манифест правил,разрешения проставил.У меня уже есть приложение с пушами через kinvey,оно работает,пуши приходят.Но хотелось бы уйти от kinvey,собственно ради этого и затеял все. UPD.Пока писал,приложение компилилось еще раз и о чудо,все заработало.Спасибо за помощь.
    1 балл
  6. Как вариант - на базе http-протокола делать запросы к серверу и получать ответы в виде xml.. Indy под делфи 7 имеются.. xml сформировать проблем нет.. точно также как на андроиде разобрать..
    1 балл
  7. kami

    ScrollBox лагает

    Есть мнение, что для (например) списка контактов нужно использовать ListView, а не ScrollBox
    1 балл
  8. Brovin Yaroslav

    Цвет фона TMultiView

    TMultiView использует стиль 'MultiViewStyle' Измените существующий или создайте свой.
    1 балл
  9. Cody71727172

    ListBox, Edit и клавиатура

    У Edit свойство KillFocusByReturn = true, ReturnKeyType=Done/Go/Next/Search/Send
    1 балл
  10. Это Казахстан детка!! ну не только, КЗ вечный ученик Раши ). А вообще откаты, это болезнь СНГ...да сложно назвать откатами коммерческие деньги...это просто обман акционера, а не страны В своей практике наблюдал следующие случаи/сделки. Исполнитель(прогер) предложил Заказчику программу за 30000$. Пропорция дохода была Исполнитель 100% - Заказчик 0% Затем нарисовался Толкатель от заказчика(как правило "ком.директор"). Толкатель предложил 250 000$. В итоге сошлись именно на этой сумме и Пропорция составила Исполнитель 50%(125 000$) - Толкатель(Заказчик) столько же 50%. Решать прогеру как поступать...быть честным и никогда не купить лицензию DX, либо жить и поступать как наши президенты и жить нормально на 150 прадо )), а лицензии DX(arch) дарить школьникам...на сдачу )
    1 балл
  11. Факторов не мало: - Есть свой человек толкатель в компании? Если да то долю(откат) ему 20-30%, это мотивирует увеличить цену иначе придется работать как лох не выше пару-штук баков...на месяцы ) - Претендует на тиражирование? Если да, то можно снизить цену за "обкатку", иногда на 50% если веришь в себя и в проект ), а это поверь надо! - Исходники хотят? обычно Цена проекта умноженная на 3-4 (переживать не стоит, ведь требуются доработки постоянные). - Дизайн иконок и заставки ВАЖНО с себя снять, иначе достанут по мелочам...т.е. получаешь все с заказчика. - Если дроид и ИОС, то сертификаты с них и дальнейшее слежение за магазами - Очень важно в договоре обговорить сроки!!! особенно сопровождения...иначе висяк, зависимость и т.п., ну вообщем снова лох..) - Сопровождение делается так, заказчик копит замечания, затем согласовывает с тобой, ты оцениваешь цену и сроки, и вперед доп.соглашение.. Примерно так.. ) Удачи стать независимым от ЗП, это и есть настоящая свобода ).
    1 балл
  12. krapotkin

    SuperObject vs JSON

    работать с XSO гораздо удобнее, а уж читать код - вдвойне и там разные штуки типа фильтров встроены а еще при сериализации например в этом случае, XSO хорошо и удобно работает с TObjectList, а System.JSON - нет и атрибуты при сериализации - крайне удобная вещь и то, что EMRO никогда не переплюнет автор исправляет замечания прямо за пару дней )))
    1 балл
  13. Так, я посмотрел. Сохраняем себе такую процедуру: procedure PreloadContent(const Control: TControl); var I: Integer; begin if Control is TStyledControl then TStyledControl(Control).ApplyStyleLookup; for I := 0 to Control.ControlsCount - 1 do PreloadContent(Control.Controls[I]); end; Она форсирует загрузку стилей. Задержка при появлении TMutliView заключается в том, что стиль загружается не сразу у любого контрола, а только по мере появления контрола. Обычно это происходит при первой отрисовки. Это правило касается всех контролов. Поэтому, в этом случае, вам нужно форсировать загрузку стилей. Это можно сделать при помощи моей процедуру PreloadContent. Добавьте в TForm.OnCreate и это решит задержку при первом появлении: PreloadContent(MultiView1);
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...