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

david_yusupov

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

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

  • Посещение

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

  1. Есть не красивая решение дать среде переписать файл *.fmx и дополнить свой TFrame не достающими свойствами... то все нормально открывается и собирается.

     

    PS:

    Зачем это делать... что бы всем TFrame приложения - задать одинаковые свойства

    win1.7z

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

     

    К пример делаем наследник от TFrame или даже полностью копируем и код TFrame (в другой unit),

    то все собирается и работает...

     

    Вот как только закрываем среду и заново открываем проект и обращаемся к со вему TFrame, то среда по чему-то смерится переписать файл фрейма *.fmx и добавлением свойство которых нет у TFrame.

     

    Почему так происходит и как это можно избежать этого?

    Где в Help (в документации) есть описание связывание файла *.fmx с объектом (порожденного от TСontrol)? ни как не найду

     

    Прилогаю файл, свои опыты (тесты) win.7z

  3. Делаю программу на подобии осциллографа, есть каретка(которое рисует график) она перемещается от 0 до Width, с шагом MIN_STEP (сейчас значение равно 1.8).

    До вывода графика формируется массив значение, которые в потоке рассчитываю координаты.

    После определены координаты строю график

    if Assigned(Bitmap) then
    begin
      Bitmap.SetSize(Round(Self.Width), Round(Self.Height));
      with Bitmap.Canvas do
      begin
        xLeft := TPathData.Create;
        xRight := TPathData.Create;
        BeginScene;
        try
           Clear(FColor);
           SetLeft(xLeft, Fleft); // Копируем массив в TPathData
           SetRight(xRight, Fright); // Копируем массив в TPathData
           Stroke.Color := FColorLine;
           Stroke.Thickness := FThickness;
           Stroke.Join := TStrokeJoin.Bevel;
           if xLeft.Count > 0 then DrawPath(xLeft, 1);
           if xRight.Count > 0 then DrawPath(xRight, 1);
        finally 
           EndScene; 
           FreeAndNil(xLeft);
           FreeAndNil(xRight);
        end;
       end;
    end;

    Примерно раз 25 мс.по таймеру

  4. Анимированные выводит диаграмму (график), сейчас делаем вывод диаграммы на Image, с использованием Bitmap.Canvas. И анимированые осуществляем постоянной перерисовкой.

    ЗЫ

    Наблюдаеся не большое по дергивание присмешение и вызывает увелечение нагрузки на процессор.

     

  5. сначала опишите необходимость в этом, подробней

    Нужно сделать что-то на подобное осциллографа, выводим на график текущие данные.

    Когда график достигает правой стороны начинаем рисовать с начало (как говорится новые данные рисуются слева на право).

    При этом сохраняем старый график, который затираем новыми данными.

  6. Как очень быстро рисовать на Tcanvans, нужно перерисовать примерно раз 50 миллисекунду, да еще быстрее.

     

    Дайте мне рекомендации будут... ?

     

    ps

     

    Нужно сделать что-то на подобное осциллографа, выводим на график текущие данные.
    Когда график достигает правой стороны начинаем рисовать с начало (как говорится новые данные рисуются слева на право).
    При этом сохраняем старый график, который затираем новыми данными.

  7. исполдьзую с воем проекте библиотеку 

     

    В итоге не совсем понятно - чего же Вы хотите добиться?

    Если перевести проект из VCL в Firemonkey, то посмотрите данную ссылочкусоответственно)

     

    OpenGL?

    Если Вы используете в своем проекте, созданном под VCL, библиотеку OpenGL, то, думаю, будет немного сложнее...

    Если нет, то Вам ничего не нужно "делать". С Firemonkey Вам не нужно задумываться над тем - что и где используется. Потому-что создавая FMX проект, все происходит "автоматически". В смысле - под Windows Ваш проект сбилдится так, что будет работать с DirectX, под остальное - OpenGL. (в общем виде)

     

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

    Использую в своем проекте библиотеку под OpenGL...  

  8. Посмотри CustomListBox пример. Может поможет. По идее не должно. В этом примере то же самое, но они не меняются местами. Проверь: может у тебя что не так...

    польностью переделал проект... все заработала. (отличий не нашол, нового от старого)

  9. например бросаю на форму для объекта (Tpanel), panel1 и panel2, так что бы panel2 частично покрывает panel1 – как можно управлять покрытием?

    так что бы видима была одна панель полностью, а потом другая - по клику на TButton.

  10. при заполнение ListBox -

    // ----------------------------------------

    // примерный код

    xItem := TListBoxItem.Create(Self);

    xItem.Parent := ListBox;

    ListBox.AddObject(xItem);

     

    все нормально, по при прокрутки вниз и вверх, Item — мы меняются местами...

    как этого избежать

  11. FireMonkey – это не графический движек, но чень удобный в плане реализации новых компонентов в виде стилей, что лишь одной фантазии ограниченно, как говорится есть одно но...

     

    Как понимаю OpenGL – это кросс платформенная библиотека, но на данный момент мне нужно её использовать под Window, как?

     

    FireMonkey – визуальные компоненты - не оконные, а используют стили. 

  12. Код объекта который создаем:

    TBioSeries = class(TStyledControl)
      private
        ***
      protected
        function GetStyleObject: TFmxObject; override;
      public
        ***
      end;

    Реализация данных процедуры по документации

    function TBioSeries.GetStyleObject: TFmxObject;
    const
      STYLE = 'BIO_CHART';
    begin
      if StyleLookup = '' then
        Result := TStyleStreaming.LoadFromResource(HInstance, STYLE, RT_RCDATA)
      else
        Result := inherited GetStyleObject;
    end;

    Создаем объект динамически

    Bio := TBioSeries.Create(Self);
    Bio.Parent := Self;
    Bio.Cursor := crHandPoint;
    with Bio do 
    begin
      Position.X := 10;
      Position.Y := 10;
      Height := 50;
      Width := 200;
    end;

    Он создается объект, но позиция его создания не соответствует x =10 и y=10 

    не могу понять почему... ?

     

     

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