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

Rusland

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

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

  • Посещение

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

    26

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

  1. Полагаю что раскрашивается через сменю стиля... типа у кнопки нажимаем Edit Custom Style, в редакторе удаляем background, ставим вместо него Rectangle, меняем ему Align на Client, StyleName=background, Fill.Color=цвет (ну и Stroke поменять). Перенести Text на Rectangle... как-то так. Создать несколько вариантов стиля и в рантайме менять StyleLookup кнопки, не?
  2. Rusland

    MapView и Form.FullScreen

    На одном 7'' планшете Lenovo вижу на месте JMapView белое окно (карты не вижу), ведет себя так же как TMapView - в режиме FullScreen=true при нажатии на JMapView вылезает нижняя панель с кнопками (смена FullScreen c false на true не помогает, нижняя панель потом уже не исчезает). А на 8'' Lenovo вообще программа вылетает при старте.
  3. Приделал костыль к процедуре b1Click procedure TForm1.b1Click(Sender: TObject); var i: Integer; //item:TListViewItem; TItem,TAItem,TDItem,TVItem: TListItemText; clr: TAlphaColor; begin if lvWallets.StyleLookup='lvWalletsStyle1' then lvWallets.StyleLookup:='lvWalletsStyle2' else lvWallets.StyleLookup:='lvWalletsStyle1'; //UpdateWalletsList; if LvWallets.ItemCount>0 then for i:=0 to LvWallets.ItemCount-1 do begin TItem:=LvWallets.Items[i].Objects.FindObjectT<TListItemText>('Text'); TAItem:=LvWallets.Items[i].Objects.FindObjectT<TListItemText>('Amount'); TDItem:=LvWallets.Items[i].Objects.FindObjectT<TListItemText>('Detail'); TVItem:=LvWallets.Items[i].Objects.FindObjectT<TListItemText>('AmountValue'); if lvWallets.StyleLookup='lvWalletsStyle1' then clr:=$FF000000 else clr:=$FFFFFFFF; if Assigned(TItem) then begin TItem.SelectedTextColor:=clr; TItem.TextColor:=clr; end; if Assigned(TAItem) then begin TAItem.SelectedTextColor:=clr; TAItem.TextColor:=clr; end; if Assigned(TDItem) then begin TDItem.SelectedTextColor:=clr; TDItem.TextColor:=clr; end; if Assigned(TVItem) then begin TVItem.SelectedTextColor:=TAlphaColorRec.Brown; TVItem.TextColor:=TAlphaColorRec.Brown; end; end; end; Теперь раскрашивает без очистки и перестроения списка. Думаю принцип понятен (Hold и HoldValue можно приделать аналогично).
  4. Тут продемонстрировал что триммирование работает некорректно. Странно что никого это не волнует.
  5. Я так и не понял, если не перестраивать список заново, то изменить стиль не получится? Если комментирую //UpdateWalletsList; то текст не перекрашивается и ресайз не помогает.
  6. Вот что я увидел когда открыл StyleBook: Поэтому я не видел изменения стиля в запущенной программе ни в своей Windows 8, ни в Андроид. Может теперь стало понятней )
  7. Действительно, я смотрел Platform: default, а в Windows 7 есть два стиля: lvWalletsStyle1 и lvWalletsStyle2, но почему-то отображается всегда светлый вариант (lvWalletsStyle1). Это из-за того что у меня Windows 8.1, а не 7? Точно, скопировал стили из Windows 7 в Windows 8 и все заработало.
  8. Alex Bozhko, попробуйте пожалуйста Trimming совместно с WordWrap=true. Нормально работает?
  9. krapotkin, почему-то при нажатии кнопки Change style смены стиля не происходит. Stylebook пустой )
  10. Alesk, почему бы не хранить в БД SQLITE?
  11. Rusland

    MapView и Form.FullScreen

    Да, возможно что это проблема самой системы. Можете приложить тестовый проект, в котором используете JMapView?
  12. Вот я проверил на Берлине. На TText вбил текст, WordWrap=true, Trimming ставил все возможные варианты - результат один:
  13. Rusland

    MapView и Form.FullScreen

    Поставил кнопочку и написал обработчик чтобы скрывать показывать верхнюю и нижнюю панель системы procedure TForm1.SbtMaximizeClick(Sender: TObject); begin Form1.FullScreen:=not Form1.FullScreen; end; Если на экране есть MapView и Form1.Fullscreen = true, то стоит только один раз потыкать пальцем по карте, как снизу появляется стандартная панель с кнопками Back, Home, Menu и никуда не пропадает, причем она перекрывает часть рабочей области приложения. Как от этого избавится?
  14. Вон о чем речь... да, этот косяк я наблюдаю и у себя в ListViewItem когда текст слишком большой и полностью не влезает... это проблема Embarcadero
  15. Видимо программно вырезать html-теги и неправильные символы преобразовывать в правильные.
  16. Есть компонент MapView для отображения карты. Как ставить маркеры смотрите здесь
  17. Как реализовать показ ProgressBar при загрузке фотографии на сервер? Интересует как именно определять сколько байт передано? Используется компонент NetHTTPClient.
  18. Хочу, например, узнать состояние ориентации устройства - тут сказано что нужно создать Handler. Допустим я ставлю только галки Landscape home right и Landscape home left. Дальше в коде пытаюсь определить изменение ориентации: uses FMX.Forms, FMX.Messages, FMX.Types; //In the definition of TFooForm you define: FOrientationChangedId: Integer; procedure OrientationChangedHandler(const Sender: TObject; const Msg: TMessage); procedure TForm1.FormCreate(Sender: TObject); begin FOrientationChangedId := TMessageManager.DefaultManager.SubscribeToMessage( TOrientationChangedMessage, OrientationChangedHandler); end; procedure TForm1.OrientationChangedHandler(const Sender: TObject; const Msg: TMessage); var ScreenService: IFMXScreenService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then begin if ScreenService.GetScreenOrientation in [TScreenOrientation.Portrait] then Log('Portrait Orientation') else if ScreenService.GetScreenOrientation in [TScreenOrientation.InvertedPortrait] then Log('InvPortrait Orientation') else if ScreenService.GetScreenOrientation in [TScreenOrientation.Landscape] then Log('Landscape Orientation') else if ScreenService.GetScreenOrientation in [TScreenOrientation.InvertedLandscape] then Log('InvLandscape Orientation'); end; end; procedure TForm1.Log(s: string); begin Memo1.Lines.Add(TimeToStr(Now) + ': ' + s); end; Но код срабатывает только если переворачивается само приложение (а не устройство). Если снять галочку Enable custom orientation , то Handler отрабатывает на всех положениях (ну оно и понятно). В общем пока не знаю как решить этот вопрос...
  19. Если, например, отметить три галки: Portrait, Landscape home right и Landscape home left, то при запуске приложение встает в режим Portrait и не меняет ориентацию, как бы я не крутил устройство. Значит надо как-то самому обрабатывать повороты устройства?
  20. Никак не могу разобраться со сменой ориентации в приложении. Когда в Project options -> Application -> Orientation не стоит галочка Enable custom orientation, то при разных поворотах устройства приложение само переворачивается (тут все понятно). Мне же нужно что была только горизонтальная ориентация обычная и перевернутая (Landscape и Inverted landscape). Я ставлю галочку Enable custom orientation и выбираю Landscape home right и Landscape home left. В приложении ориентация становиться Landscape home right и как бы я не переворачивал устройство, ориентация не меняется. Собственно об этом и в справке написано, но почему? Вдруг пользователю во время работы нужна ориентация Landscape home left? Автоматически меняться не будет, нужно вручную? Объясните как правильно менять ориентацию? PS. Все темы про раздела прочитал, понимание не пришло. PPS. Application.Initialize; Application.FormFactor.Orientations := [TFormOrientation.Landscape, TFormOrientation.InvertedLandscape]; Application.CreateForm(TForm1, Form1); Application.Run;
×
×
  • Создать...