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

Ivan B.

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

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

  • Посещение

Сообщения, опубликованные Ivan B.

  1. В 31.07.2018 в 16:05, Barbanel сказал:

    Рендерьте браузер в картинку, и показывайте вместо него это картинку. Выделение не будет работать, скролл тоже)))

    Дружище, а как это сделать? Я понимаю, что у WebBrowser есть MakeScreenshot и CaptureBitmap (...выполняющие одно и то же),

    а как рендерить всю страницу в браузере?

  2. Всем привет.

    Если у смартфона стоит по умолчанию язык Английский, то в приложении русский текст отображается знаками вопроса.

    Отображается некорректно только тот текст, который создается динамически: например заполняется листбокс, или создается TLabel и присваивается текст.

    Как это исправить?

  3. Всем привет.

    Открываю HTML текст с помощью процедуры WebBrowser.LoadFromStrings.

    Компонент создается динамически и иногда с максимальным зумом, при чем с одним и тем же html-текстом может нормально открыть, а может с зумом.

    Запретил WebBrowser'у использовать зум (двумя пальцами) - то же самое.

    Что сделать, чтобы он не увеличивал текст сам?

     

  4. Всем привет.

    Delphi 10.2

    Xcode 9.4.1 (9F2000)

    PA Server 10.2.1.13

    1. Пытаюсь запустить простой проект с кнопкой на эмуляторе iOS. PAServer установил (тот, что шел вместе с Delphi). Настроил.

    Приложение компилируется, устанавливается в эмулятор, появляется сплэш FireMonkey на 2 секунды и вылетает. В чем может быть проблема, куда копать?

    2. Пытаюсь отправить приложение на девайс iPhone 7 Plus. При компиляции выходит ошибка: 

    [DCC Error] E2597 ld: file not found: /System/Library/Frameworks/UIKit.framework/Frameworks/DocumentManager.framework/DocumentManager for architecture arm64

    для 32 бит та же ошибка, только armv7.

    Посмотрел в SDK папках фреймворк этот есть UIKit.framework/Frameworks/DocumentManager.framework/DocumentManager.

    Что делать?

  5. Привет всем!

    Подскажите пожалуйста,

    - с помощью какого бесплатного компонента можно отображать HTML данные в мобильном приложении (кроме WebBrowser);

    - либо как осуществить простейшее форматирование текста (положение, цвет, размер) в win приложении и отображение его потом в мобильном приложении.

     

    Заранее спасибо)

  6. Всем доброго времени суток.

    Интересует следующее - в каком приложении рисуют источник с изображением всех контролов для стиля - на выходе png файлы?

    Я создал проект в иллюстраторе, и мне необходимо выгрузить png файлы в четырех разрешениях, но когда я выгружаю, границы у прямоугольных объектов становятся размытыми.

    Если выгрузить файлы из готовых стилей, то у них там все, как нужно: сглаживание только у округлых объектов - неужели они рисуют для четырех разрешений отдельно?

     

  7. Привет всем.

    Не могу понять в чем дело, когда ставлю у TImage.WrapMode:=Center, то изображение вылазит за рамки контрола.

    Мне нужно увеличивать или уменьшать изображение, чтобы оно заполняло всю область TImage (с обрезкой по краям), Stretch не подойдет.

  8. Всем привет. Столкнулся с такой проблемой, что в эмуляторе Андроид появляется ошибка при переведении текста в дату.

    Запускаю приложение на смартфоне - все нормально (на нескольких пробовал). В эмуляторе - ошибка.

    С чем это может быть связано?

  9. 5 часов назад, Barbanel сказал:

     

    Ну вы уж определитесь...

    В общем мне нужно отображать HTML текст ) Ввел в заблуждение, указав в заголовке про все прокрутки.

    Нужно, чтобы работала только вертикальная прокрутка.

  10. 1 час назад, Barbanel сказал:

    Рендерьте браузер в картинку, и показывайте вместо него это картинку. Выделение не будет работать, скролл тоже)))

    Ну в одну то сторону нужно, чтобы скрол работал.

  11. Всем привет.

    Собственно, вопрос в теме.

    Мне нужно запретить горизонтальную прокрутку страницы в браузере.

    Еще интересует как перевести браузер в автономный режим, как запретить выделять текст.

    Заранее спасибо.

  12. 25 минут назад, Barbanel сказал:

    Я бы сам присоединился к такому вопросу.
    ...

    Спасибо за ответ)

    TabControl с отключенными вкладками, кстати, прикольная идея! Надо попробовать.

    Я тоже уничтожаю методом DisposeOf(), пробегаясь по всем компонентам главного объекта. 

    Попробую сегодня TListBox заполнять данными, может быстрее будет. Те панели, что создаю - конечно прикольно отрисовываются одна за другой, но долго

    Стыдно, не не знаю, что такое дженерики - с удовольствием посмотрю пример

  13. Всем привет!

    Друзья, проконсультируйте по следующим вопросам:

    1. Как правильно хранить изображения, которые используются в приложении: динамически размещаются в TImage, на кнопки, панели т .д.;

    2. Приложение будет получать от сервиса текстовые и графические данные (base64) - куда временно записывать загруженные картинки, прежде, чем, к примеру, разместить их на панельки;

    3. Как лучше всего (в плане производительности и вообще по "фен шую") организовать приложение, в котором должно быть много разных "окон" - создавать много форм? Может использовать фреймы? Или создавать все на одной форме?

    Если несколько форм, то создавать эти формы с запуском приложения или создавать и уничтожать по мере необходимости (как правильно уничтожать и освобождать память?)

    4. Как правильно организовать прорисовку создаваемых компонентов?

    К примеру мне нужно создать на VertScrollBox много TPanel с TImage и TLabel, делаю это так:

    Но прорисовка !первый раз происходит медленно. Это можно как-то ускорить?

    И вообще правильно ли делаю, что использую массивы объектов?

    это в отдельном потоке:
    
    TThread.Synchronize(TThread.CurrentThread,
        PROCEDURE ()
          begin
            thVBox:=TVertScrollBox.Create(FMain.ATabs.Tabs[thTabNo]);
            thVBox.Parent:=FMain.ATabs.Tabs[thTabNo];
            thVBox.StyleLookup:='_scrollboxstyleWhite';
            thVBox.Align:=TAlignLayOut.Client;
          end);
    
    For i:=0 to Count do
        BEGIN
           ... тут без графики, вычисление PosX и PosY
    
          TThread.Synchronize(TThread.CurrentThread,
            PROCEDURE ()
              begin
                vPanel[i]:=TPanel.Create(thVBox);
                vPanel[i].Parent:=thVBox;
                vPanel[i].StyleLookup:='_PanelStyleTile';
                vPanel[i].Width:=PanelW;
                vPanel[i].Height:=PanelH;
                vPanel[i].Position.X:=PosX;
                vPanel[i].Position.Y:=PosY;
    
                vShadowE:=TShadowEffect.Create(vPanel[i]);
                vShadowE.Parent:=vPanel[i];
                vShadowE.Distance:=3;
                vShadowE.Opacity:=0.2;
                vShadowE.Softness:=0.2;
                vShadowE.Enabled:=True;
    
                vImg[i]:=TImage.Create(vPanel[i]);
                vImg[i].Parent:=vPanel[i];
                vImg[i].Height:=Trunc(PanelH*ImageSizePercent);
                vImg[i].Margins.Left:=2;
                vImg[i].Margins.Right:=2;
                vImg[i].Margins.Top:=2;
                vImg[i].Align:=TAlignLayOut.Top;
                vImg[i].Bitmap:=pImageList.Bitmap(szImage,i);
                vImg[i].WrapMode:=TImageWrapMode.Fit;
                vImg[i].OnTap:=FMain.ConClick;
    
                vLblText[i]:=TLabel.Create(vPanel[i]);
                vLblText[i].Parent:=vPanel[i];
                vLblText[i].Height:=Trunc(PanelH*TextSizePercent);
                vLblText[i].Margins.Top:=3;
                vLblText[i].Margins.Left:=2;
                vLblText[i].Margins.Right:=2;
                vLblText[i].Align:=TAlignLayOut.Client;
                vLblText[i].StyledSettings:=
                  vLblText[i].StyledSettings-[TStyledSetting.Family, TStyledSetting.Size,
                    TStyledSetting.Style, TStyledSetting.FontColor, TStyledSetting.Other];
                vLblText[i].TextSettings.Font.Family:='Open Sans';
                vLblText[i].TextSettings.Font.Size:=12;
                vLblText[i].TextSettings.Font.Style:=[TFontStyle.fsBold];
                vLblText[i].TextSettings.HorzAlign:=TTextAlign.Leading;
                vLblText[i].TextSettings.VertAlign:=TTextAlign.Leading;
                vLblText[i].Text:=sText[i];
              end)
          end;
        END;

     

    Заранее спасибо)!

     

  14. Всем спасибо за ответы, но мне понадобилось передавать в класс потока переменные, описать несколько методов для потока, я не знаю как мне это сделать в анонимном потоке - воспользуюсь TThread.

  15. 35 минут назад, Alex7wrt сказал:

    Дело в том, что индикатор отрисовывается в основном потоке. По видимому ваша процедура также выполняется в основном потоке. Чтобы не было подтормаживаний, выполняйте фоновые операции в отдельном потоке, а при необходимости отрисовать какой-нибудь визуальный компонент, пользуйтесь Synchronize или Queue.

     

    Alex, а как лучше организовать многопоточность? Создать класс TThread или использовать iTask?

  16. Всем привет.

    Как правильно пользоваться индикатором?

    В событии пишу Indicator.Enabled:=True и дальше процедуру, в которой в скроллбоксе создаются объекты.

    Индикатор появляется только после прорисовки в скроллбоксе. Если его, к примеру, запустить из Timer'a, то он начинает анимацию и замирает, пока идет прорисовка объектов.

    Подскажите, пожалуйста, правильную реализацию отображения индикации процесса выполнения задач.

    Заранее спасибо!

  17. Всем привет.
    Приложение для Android.
    Казалось бы, простая задача...

    На MultiView лежит ListBox с пунктами меню.
    При нажатии на пункт меню вызывается процедура (CreatePreview) (на форме в TTabControl создается вкладка, в этой вкладке создается VertScrollBox, в нем создается плитка из n-го количества TPanel'ей с картинкой и текстом).

    Так вот, вызываю у MultiView метод HideMaster, затем уже эту процедуру. 
    Однако, пока всё не прорисуется, меню не скрывается. А мне еще нужно индикатор выполнения процесса прикрутить.

    Вопрос: как сначала скрыть меню, а уже потом выполнить процедуру или сделать это одновременно? 

×
×
  • Создать...