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

m.medvedb

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

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

  • Посещение

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

    1

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

  1. Доброго времени суток.

    Линейный график. Допустим шкала значений по оси Y(Right) 0-1000 усл. ед. При прокрутке за приделы 0 или 1000 происходит продление шкалы в "+" или в "-". 

    Установка приделов Max-Min 'скролу не помеха.

    Как ограничить прокрутку по оси Y при скроле мышкой. 

  2. Доброго времени суток. Пытаюсь сделать подобие Ribbona из стандартных компонентов.

    Балуюсь с Tpanel  пока страшновато выходит.

    Может кто-то пылся сделать подобное? Если да то поделитесь идеями.  

     

     

    Ribbon.png

  3. Как сделать компонент с нуля нет проблем...... Вопрос, как сделать копию компонента и его обработчиков? Точнее FMX позволяет сделать составной компонент..... как клонировать родителя и все связанные с ним компоненты. 

  4. У меня есть еще к вам вопрос: Есть форма на ней множества TCornerButton, используются как красивые дисплеи для отображения данных. Вопрос как при передвижение компонентов запретить заход одного за другой? Их около 30ти в каждом проверять каждый не вариант.

     

    Движение компонентов произвожу по вашему примеру: Как сделать перемещение контрола мышкой/пальцем?

     

    Еще добавил в код на событие OnMouseMove проверку от захода компонента за форму.

      If DraggableImage.Position.X < 0 Then
         DraggableImage.Position.X := 0 Else
      If (DraggableImage.Position.X + DraggableImage.Width) > Form4.ClientWidth Then
         DraggableImage.Position.x := Form4.ClientWidth - DraggableImage.Width;
      If DraggableImage.Position.y < 0 Then
         DraggableImage.Position.y :=0;
      If (DraggableImage.Position.y + DraggableImage.Height) > Form4.ClientHeight Then
         DraggableImage.Position.y := Form4.ClientHeight - DraggableImage.Height;
    
  5. Да и вот весь код!

    procedure TForm4.DraggableImageMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Single);
    var
      MoveVector: TVector;
    begin
      if FPressed then
      begin
        // Вычисляем локальное смещение относительно первоначальной позиции
        MoveVector := TVector.Create(X - FStartPos.X, Y - FStartPos.Y,0);
    
        // Вычисляем смещение в координатах формы, чтобы учесть изменение
        // координат при смещении родительских контролов
        MoveVector := DraggableImage.LocalToAbsoluteVector(MoveVector);
        if DraggableImage.ParentControl <> nil then
          MoveVector := DraggableImage.ParentControl.AbsoluteToLocalVector(MoveVector);
        // Перемещаем картинку на вычисленный вектор
        DraggableImage.Position.Point := DraggableImage.Position.Point + MoveVector.ToPointF;
      end;
    end;
    
  6. если добавить ось Z:=0

     

    Обработчик грешит вот на эту строку

    DraggableImage.Position.Point := DraggableImage.Position.Point + TPointF(MoveVector);
    [dcc32 Hint] First.pas(42): H2219 Private symbol 'MouseDownPoint' declared but never used
    [dcc32 Hint] First.pas(44): H2219 Private symbol 'Moving2' declared but never used
    [dcc32 Hint] First.pas(46): H2219 Private symbol 'Splitting' declared but never used
     
     
    Если изменить код по вашему совету....то ругается на ту-же строку и в обработчике та-же ошибка:(
×
×
  • Создать...