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

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

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

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

  • Посещение

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

    265

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

  1. Like
    Равиль Зарипов (ZuBy) отреагировална Rusland в Как вытащить список из JSON со значениями   
    Ааа, дошло )
    xJS := SO('{"data":' + aJSON + '}');  
  2. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Как вытащить список из JSON со значениями   
    если внимательно посмотрели пример, то я её сам добавил. в этом нет ничего сложного
  3. Like
    Равиль Зарипов (ZuBy) отреагировална rareMax в Маршалинг/ДеМаршалинг в System.JSON   
    Вот я, например, работаю с ТелеграмБот АПИ. У него есть свои типы данных(если их так можно назвать).
    К примеру тип User
    Когда вы запрашиваете какую то инфу с участием этого типа вам придет JSON с такими данными(в моем примере getMe):
    В "result" будет как раз этот тип "User". Что бы не парсить отдельно каждое поле я создал аналогичный класс в делфи:
    TTelegaUser = Class private FID: Integer; FFirstName: String; FLastName: String; FUsername: String; published /// <summary> /// Unique identifier for this user or bot /// </summary> /// <returns></returns> [ALIAS('id')] property ID: Integer read FID write FID; /// <summary> /// User‘s or bot’s first name /// </summary> [ALIAS('first_name')] property FirstName: String read FFirstName write FFirstName; /// <summary> /// Optional. User‘s or bot’s last name /// </summary> [ALIAS('last_name')] property LastName: String read FLastName write FLastName; /// <summary> /// Optional. User‘s or bot’s username /// </summary> [ALIAS('username')] property Username: String read FUsername write FUsername; End; И теперь могу заполнить данными с моего запроса приблизительно так*:
    FtelegUser := TTelegaUser.FromJSON(content); * - На самом деле у меня чуть подругому.
    * - При условии что в "content" у вас будет приблизительно такое содержание:
     
  4. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Требуется помощь в технологиях   
    нет другого способа, да и проблем нет никаких. сохранил-отправил-удалил
    а сохранять можно в Temppath или DocumentsPath
  5. Like
    Равиль Зарипов (ZuBy) получил реакцию от bigjorj в Диалоговое окно на Андроид.   
    krapotkin выкладывал когда-то MyDialogs
    Изменения от меня:
      Переписан код, удалены лишние компоненты   Подогнал под стандартные диалоги платформ   Смена позиции кнопок "Oк", "Отмена" в зависимости от платформы   Профиксил MaxLength для TEdit (при установке ограничении ввода символов для мобильных платформ)   Возможность использования анонимных методов (TThreadProcedure) MyDialogs_ZuBy.7z
  6. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Диалоговое окно на Андроид.   
    krapotkin выкладывал когда-то MyDialogs
    Изменения от меня:
      Переписан код, удалены лишние компоненты   Подогнал под стандартные диалоги платформ   Смена позиции кнопок "Oк", "Отмена" в зависимости от платформы   Профиксил MaxLength для TEdit (при установке ограничении ввода символов для мобильных платформ)   Возможность использования анонимных методов (TThreadProcedure) MyDialogs_ZuBy.7z
  7. Like
    Равиль Зарипов (ZuBy) отреагировална enatechno в Cancel в InputQuery   
    и не только...
    What's New - Berlin:
    Simplified Dialog API
    Several procedures and functions to show dialog boxes are now deprecated, and have been replaced by the
    procedures and functions of the new IFMXDialogServiceAsync and IFMXDialogServiceSync platform services
    that provide support for synchronous and asynchronous dialog boxes, respectively.
    The following table summarizes the API changes:
    Deprecated Members
    New Members 
    FMX.Dialogs.ShowMessage*
    FMX.Dialogs.ShowMessageFmt*
    FMX.Dialogs.ShowMessagePos
    ShowMessageAsync
    ShowMessageSync
     
    FMX.Dialogs.MessageDlg
    FMX.Dialogs.MessageDlgPos
    FMX.Dialogs.MessageDlgPosHelp
    FMX.Platform.IFMXDialogService.MessageDialog 
    MessageDialogAsync
    MessageDialogSync
     
     
    FMX.Dialogs.InputBox
    FMX.Dialogs.InputQuery
    FMX.Platform.IFMXDialogService.InputQuery 
    InputQueryAsync
    InputQuerySync
     

    * ShowMessage and ShowMessageFmt are not really deprecated, but you may want to use ShowMessageAsync
    or ShowMessageSync instead nonetheless.

    Two new helper classes have been created as well: TDialogServiceAsync and TDialogServiceSync. These helper
    classes provide class methods and functions that allow you to call the new procedures and functions for dialog
    boxes without the need of an instance of the corresponding dialog box platform service.
    Other FireMonkey
  8. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Генерация QR-кода на Android   
    немного неправильно сделали, вот так:
    procedure TfmMainQRShare.ImageQRPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var Row, Column: Integer; xPos, yPos, RectSize: Single; pixelColor: TAlphaColor; Img: TImage; begin Img := (Sender as TImage); if Assigned(QRCode) and (not QRCode.Data.IsEmpty) then begin RectSize := Min(Img.Width, Img.Height) / QRCode.Columns; if RectSize > 0 then begin try Canvas.BeginScene; for Row := 0 to QRCode.Rows - 1 do begin for Column := 0 to QRCode.Columns - 1 do begin if (QRCode.IsBlack[Row, Column]) then pixelColor := TAlphaColors.Black else pixelColor := TAlphaColors.White; xPos := Column * RectSize + 0.5 * RectSize; yPos := Row * RectSize + 0.5 * RectSize; Canvas.Fill.Color := pixelColor; Canvas.FillRect(RectF(xPos, yPos, xPos + (RectSize + 1), yPos + (RectSize + 1)), 0, 0, AllCorners, 1); end; end; finally Canvas.EndScene; end; end; Img.Bitmap.SetSize(Canvas.Width, Canvas.Height); Img.Bitmap.Assign(Canvas.Bitmap); end; end; procedure TfmMainQRShare.Update; begin QRCode.Free; QRCode := TDelphiZXingQRCode.Create; QRCode.Data := edtText.Text; QRCode.Encoding := TQRCodeEncoding(cmbEncoding.ItemIndex); QRCode.QuietZone := StrToIntDef(edtQuietZone.Text, 2); QRCodeBitmap.SetSize(QRCode.Rows, QRCode.Columns); ImageQR.Repaint; end; но проблема в другом, проблема в самом модуле, он не правильно работает со строками
  9. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Генерация QR-кода на Android   
    похоже на правду, но сейчас нет времени проверить. думаю Pax Beach примет это к сведению
  10. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Генерация QR-кода на Android   
    я про это в курсе, но тогда на Windows отвалится. я не проверял, но в коде видел циклы со строками начинающиеся с 1
  11. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Генерация QR-кода на Android   
    могу подсказать в какую сторону копать. строки в ANDROID/IOS начинаются с 0, а там не заметил чтобы это учитывалось.
    Если сделаете, выложите. Всем будет полезно
  12. Like
    Равиль Зарипов (ZuBy) получил реакцию от Pax Beach в Генерация QR-кода на Android   
    могу подсказать в какую сторону копать. строки в ANDROID/IOS начинаются с 0, а там не заметил чтобы это учитывалось.
    Если сделаете, выложите. Всем будет полезно
  13. Like
    Равиль Зарипов (ZuBy) отреагировална zairkz в Как вытащить список из JSON со значениями   
    Кроме того, проверьте стандартную библиотеку System.JSON на утечку памяти (ReportMemoryLeak), каждый раз TJSONvalue надо освобождать и уничтожать. 
  14. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Как вытащить список из JSON со значениями   
    AV выходит только при не правильной JSON структуре. А остальные данные можно не проверять, на существование. Он сам съест ошибку и вернет пустоту.
    а если учесть что данные идут от сервера (в данной теме) нужно всего ишь проверить правильность начальных символов.
    дело в кол-ве строчек, а в количестве символов и в понимании работы с JSON
  15. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Как вытащить список из JSON со значениями   
    я всеже предложу вам посмотреть реализацию через XSO
    там реализован правильный фильтр
    JSONParse.zip
  16. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Как вытащить список из JSON со значениями   
    Я отказался от родного в пользу XSO, посмотрите как компактно выглядет код который я привел выше. И стабильно и читабельно, скорость тоже на высоте
  17. Like
    Равиль Зарипов (ZuBy) получил реакцию от zairkz в Генерация QR-кода на Android   
    Я вижу решение таким, реализуйте.
    Каждый пиксель нужно отрисовать примерно 4 раза, тогда квадрат будет не 1х1, а 4х4. Картинка станет четкой т.к. увеличится холст
  18. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в Маршалинг/ДеМаршалинг в System.JSON   
    угу, посмотрел, раньше вроде не было этого
    я думаю, это просто лень ему было написать тип PtrInt и еще парочку 
    надо написать автору на гитхабе, он быстро исправляет ошибки
  19. Like
    Равиль Зарипов (ZuBy) отреагировална Rusland в Как вытащить список из JSON со значениями   
    Не согласен, тут просто нужно запомнить что:
    A - Array
    I - Integer
    S - String
    B - Boolean
    и т.д. 
    Очень даже просто и логично )
  20. Like
    Равиль Зарипов (ZuBy) получил реакцию от M1shQa в Как вытащить список из JSON со значениями   
    Я отказался от родного в пользу XSO, посмотрите как компактно выглядет код который я привел выше. И стабильно и читабельно, скорость тоже на высоте
  21. Like
    Равиль Зарипов (ZuBy) получил реакцию от M1shQa в Как вытащить список из JSON со значениями   
    если использовать XSuperObject
    var aJSON: string; xJS, xObj: ISuperObject; j: integer; begin xJS := SO(aJSON); // данные with xJS.A['data'] do // имя массива begin for j := 0 to length - 1 do begin xObj := O[j]; TStringList.Add(xObj.S['number']); // собираем в стринг лист нужное поле end; end; end;  
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от #WAMACO в Генерация QR-кода на Android   
    Я вижу решение таким, реализуйте.
    Каждый пиксель нужно отрисовать примерно 4 раза, тогда квадрат будет не 1х1, а 4х4. Картинка станет четкой т.к. увеличится холст
  23. Like
    Равиль Зарипов (ZuBy) отреагировална Rusland в RAD 11 на подходе?   
    Не-не-не, поддержка Linux и Intel Atom будет не раньше версии "Delphi 99.9 Uhta" 
  24. Like
  25. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Как вытащить список из JSON со значениями   
    если использовать XSuperObject
    var aJSON: string; xJS, xObj: ISuperObject; j: integer; begin xJS := SO(aJSON); // данные with xJS.A['data'] do // имя массива begin for j := 0 to length - 1 do begin xObj := O[j]; TStringList.Add(xObj.S['number']); // собираем в стринг лист нужное поле end; end; end;  
×
×
  • Создать...