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

rareMax

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

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

  • Посещение

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

    35

Весь контент rareMax

  1. THttpClient.Get(YouSite).ContentAsString Ну а если серьезно - открой сайт в разных браузерах. Поидее если в ИЕ нормально рендерит - то и в ТВебБроузер должно нормально отображаться
  2. Чем сейчас и занимаюсь - портирую код для опознования кодировки с с#
  3. В папке есть множество текстовых файлов. Как правило файлы в юникоде, но иногда встречаются и другие(на данный момент находил только GB2312 кодировку). Открываю файлы так // FileSource.LoadFromFile(FileName, TEncoding.GetEncoding(936)); FileSource.LoadFromFile(FileName,TEncoding.UTF8); Как следствие, при открытии файла вылетает эксепшен, что не подходит кодировка. Знаю как можно открыть этот файл - закоментированый текст в коде выше. Вся сложность в том, как автоматически подобрать нужный класс TEncoding. Надеюсь на вашу помощь.
  4. Как можно передать какое-либо значение в ITask? Допустим есть код: procedure TfrmScaner.Switch1Switch(Sender: TObject); var Cursor: uMisc.ICursorChange; Tasks: TArray<ITask>; I: Integer; begin Cursor := TCursorChange.Create(crAppStart); FillGrid; SetLength(Tasks, GridDataManager1.RowCount); // Смотри с этой строки for I := Low(Tasks) to High(Tasks) do Begin Tasks[I] := TTask.Create( Procedure Begin ParseItem(MyParametr); End); Tasks[I].Start; end; end;Мне нужно передать процедуре ParseItem значение MyParametr = I. Как бы это сделать?
  5. ТМС HTML Component Library Єто все что я знаю
  6. Название темы - слишком радикальное)) Достаточно допилить(или сменить) мобильный шаблон.
  7. Незнаю, можно ли напрямую сортировку делать - но можно воспользоваться кастомной сортировкой массива. Возможно у меня не совсем правильно - но вот работающий пример: TArray.Sort<String>(YouArrayName, TDelegatedComparer<String>.Construct( function(const Left, Right: String): Integer var Custom: TCustomerComparer; begin Custom := TCustomerComparer.Create; try Result := Custom.Compare(Left, Right); finally Custom.Free; end; end)); TCustomerComparer.Compare(Left, Right); - ваш вариант сортировки. Я брал реализацию Александра (Rouse_) Багеля. Выглядит она так: { TCustomerComparer } function TCustomerComparer.Compare(const Left, Right: String): Integer; var S1IsInt, S2IsInt: Boolean; S1Cursor, S2Cursor: PChar; S1Int, S2Int, Counter, S1IntCount, S2IntCount: Integer; SingleByte: Byte; begin // Проверка на пустые строки if Left = '' then if Right = '' then begin Result := 0; Exit; end else begin Result := -1; Exit; end; if Right = '' then begin Result := 1; Exit; end; S1Cursor := @AnsiLowerCase(Left)[1]; S2Cursor := @AnsiLowerCase(Right)[1]; while True do begin // проверка на конец первой строки if S1Cursor^ = #0 then if S2Cursor^ = #0 then begin Result := 0; Exit; end else begin Result := -1; Exit; end; // проверка на конец второй строки if S2Cursor^ = #0 then begin Result := 1; Exit; end; // проверка на начало числа в обоих строках S1IsInt := CharInSet(S1Cursor^, ['0' .. '9']); S2IsInt := CharInSet(S2Cursor^, ['0' .. '9']); if S1IsInt and not S2IsInt then begin Result := -1; Exit; end; if not S1IsInt and S2IsInt then begin Result := 1; Exit; end; // посимвольное сравнение if not(S1IsInt and S2IsInt) then begin if S1Cursor^ = S2Cursor^ then begin Inc(S1Cursor); Inc(S2Cursor); Continue; end; if S1Cursor^ < S2Cursor^ then begin Result := -1; Exit; end else begin Result := 1; Exit; end; end; // вытаскиваем числа из обоих строк и сравниваем S1Int := 0; Counter := 1; S1IntCount := 0; repeat Inc(S1IntCount); SingleByte := Byte(S1Cursor^) - Byte('0'); S1Int := S1Int * Counter + SingleByte; Inc(S1Cursor); Counter := 10; until not CharInSet(S1Cursor^, ['0' .. '9']); S2Int := 0; Counter := 1; S2IntCount := 0; repeat SingleByte := Byte(S2Cursor^) - Byte('0'); Inc(S2IntCount); S2Int := S2Int * Counter + SingleByte; Inc(S2Cursor); Counter := 10; until not CharInSet(S2Cursor^, ['0' .. '9']); if S1Int = S2Int then begin if S1Int = 0 then begin if S1IntCount < S2IntCount then begin Result := -1; Exit; end; if S1IntCount > S2IntCount then begin Result := 1; Exit; end; end; Continue; end; if S1Int < S2Int then begin Result := -1; Exit; end else begin Result := 1; Exit; end; end; end; Загрузка в ЛистБокс: ListBox11.Items.AddStrings(YouArrayName);
  8. rareMax

    Прокрутка диаграммы

    Не могу решить проблему со скролингом диаграммы. На девайсах с большим экраном проблем в принципе нет - все данные сразу отображаются. Но вот когда запускаем проект на смартфонах - появляется необходимость в прокрутке диаграммы. Что бы немного прояснить - скрины снизу.
  9. Не накручиваешь. Например говорится что поддерживается версии 4.1 - хотя у нас не получилось на некоторых андроидах запустить проект с такой версией
  10. Как было сказано когда то: "ждите когда выйдут смартфоны, которые смогут поддерживать fmx"©. А если серьезно - то думаю для вашей задачи fmx уже "созрел"
  11. rareMax

    TWebBrowser на TFrame = AV

    Хмм, спасибо. Почему то думал что этот класс служит для вложений фмх в вцл.
  12. rareMax

    TWebBrowser на TFrame = AV

    В общем проверьте - у вас тоже будет ошибка вылетать если использовать TWebBrowser на TFrame? Вылетает ошибка: TWebBug.7z Если кто то столкнется с этим багом - создавайте динамически TWebBrowser на фрейме - тогда нормально все. В общем, если кто то сталкивался с этим, и знает как обойти - скажите плиз Обходим так: Во время создания: constructor TFrame1.Create(AOwner: TComponent); begin inherited; fWeb := TWebBrowser.Create(Self); end; После того, как форма создана(событие OnShow) procedure TFrame1.OpenURL(const URL: String); begin fWeb.Parent := Self; fWeb.Align := TAlignLayout.Client; fWeb.Navigate(URL); end;
  13. И кстати уже есть версии для некоторых разработчиков компонентов - так что думаю до лета уже все желающие смогут воспользоваться.
  14. rareMax

    NetHTTPClient и SSL

    Ну тут ошибка разрабов. Копируешь файл System.Net.HttpClient в папку с проектом (правишь оригинал) Открываешь его на строке с твоей ошибкой(у меня это 1965 строка) Перед ней добавляешь строку: if Result.Value.Length>0 then То есть у тебя получится так(1964-1966 строка): Result.Value := Values[0].Substring(Pos + 1).Trim; if Result.Value.Length>0 then if (Result.Value.Chars[0] = '"') and (Result.Value[High(Result.Value)] = '"') then Удачи!
  15. Обновите суперОбжект - пофиксены ошибки:
  16. При использовании FreeAndNil использовать NIL не нужно Если честно- не совсем понятна первая строка. И если хотите помощи - смотрите правила размещения тем(прикрепляйте демку, в которой будет суть вашей проблемы) P.S. Использование фреймов - теоретически очень упрощает разработку. На практике же - будьте готовы к ошибкам Рад студио при работе с фреймами.
  17. rareMax

    Rad Studio лаги

    Апдейт 1 тоже с багами вышел. Когда я смотрел - нужно было еще сверху накатить два патча. На данный момент может быть даже больше. Просто гугли патчи для 10.апдейт1.
  18. Delphi 10.1 Codename Berlin

  19. Номер телефона, по которому входишь в кошелек, либо создай там виртуальную карту(Мастер кард кажется там) - и можешь номер этой карты писать
  20. Есть смысл прикреплять демо, в котором отрабатывается ваш вариант
  21. rareMax

    Не работает TLang

    Баг подтверждаю)
  22. Лично у меня последняя версия. Но пользуюсь пока только сериализацией
  23. Не совсем понятно как им пользоваться с первого раза. Небольшой пример будет очень полезен
×
×
  • Создать...