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

GASCHE

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

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

  • Посещение

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

    12

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

  1. Мне нужен доступ к порту под Android.

    А можно уточнить, а что под Android есть последовательный порт или все же работа будет через USB или ...?

  2. Или вместо

            CharacterImage.Position.X := 500 - size / 2 - size mod 3;
            CharacterImage.Position.Y := ScreenHeight - size;

    как-то так

             CharacterImage.Position.X :=  ( ScreenWidth - size )/2;
             CharacterImage.Position.Y := ( screenHeight - size )/2;

    и установите

       CharacterImage.WrapMode  := TImageWrapMode.Stretch;
     
  3. Я пправильно понимаю, что вы хотите узнать размер окна просмотра содержимого без учета размеров скроллбаров?

    Нет, размер строки в выпадающем списке я определяю, как mItemWidth := ComboBox1.Canvas.TextWidth( ComboBox1.Items[ idx ] ), но если появляется скроллбар, то для полного определения ширины ComboBox1.ItemWidth необходимо к mItemWidth добавить его ширину, иначе строка в выпадающем списке полностью не отображается.

     

    ZuBy

    Не знаю почему, но при использовании  DefaultScrollBarWidth = 16 строки полностью не отображаются.

     

    AlexG

    Наверно я что-то не понимаю, но присвоение VScrollBar := TCustomScrollBox( ComboBox1 ).VBar; не получается.  

    ComboTest2.zip

  4. C этим разобрался в отличии от VCL здесь в процедуре, вызываемой по OnChange нельзя менять значение Value  :( 

     

    И еще. Если установить, например, SmallChange = 2 то ползунок кнопочками перемещается с дискретностью 2, а вот при перемещении или клике мышкой значение SmallChange не учитывается отсюда Value может принять любое значение не кратное SmallChange.
    Если это так задумано, то зачем нужно значение SmallChange и лишняя перерисовка TScrollBar? 
  5. При выполнении этой процедуры на XE7 
    procedure TForm1.ScrollBar1Change(Sender: TObject);
    begin
       IF ScrollBar1.Value = 0 THEN BEGIN
          //Trend := True;
          ScrollBar1.Value := 1;
       END ELSE BEGIN
          IF ScrollBar1.Value >= ScrollBar1.Max THEN BEGIN
             ScrollBar1.Value :=  ScrollBar1.Max - 1;
             //Trend := False;
          END;
       END;
    end;

    кнопочками на TScrollBar или из программы меняя ScrollBar1.Value все нормально, но если кликнуть мышкой в крайние значения, то положение ползунка не изменяется хотя значение ScrollBar1.Value принимает требуемое значение. Как в этом случае синхронизировать положение ползунка со значением ScrollBar1.Value? 

  6. Но скорее всего сначала все-таки промелькнет первая отрисованная сцена, а за ней вторая, но уже без изменений в первой сцене.

     

    Скорее всего нет, если посмотреть это,

    procedure TCanvas.EndScene;
    begin
      if FBeginSceneCount = 1 then
        DoEndScene;
      if FBeginSceneCount > 0 then
        dec(FBeginSceneCount);
    end;

    то при одновременном открытии нескольких сцен перерисовка произойдет от последней закрытой, а какой поток ее закроет последний не ясно. Т.е. говорить о наличие потокобезопасности как-то сомнительно.

  7. Выходит, что в каком-то приближении отрисовку в FMX можно назвать потокобезопасной

    Выходит, если мы рисуем на одной канве из двух потоков и у нас одновременно открыты в каждом Canvas.BeginScene, то после прорисовки по Canvas.EndScene на канве отобразиться суммарная картинка? 

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