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

Dozent

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

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

  • Посещение

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

    2

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

  1. Доброго всем дня. Появилась сильная потребность работать  с IP камерой. Необходим захват,, запись, воспроизведение и покрутка. Подскажите у кого есть похожий опыт работы. Какие компоненты, дайте статьи почитать...

    Камера как я понял пише тв mjpeg

  2. В Продолжение этой темы!

    Я скопировал 3 файла который указаны в последнем собщении.

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

     

    procedure TWindowsMedia.UpdateMediaFromControl;
    var
      P: TPointF;
      R: TRect;
      Bounds: TRectF;
      Form: TCommonCustomForm;
    begin
      FVMRWindowlessControl9.SetAspectRatioMode(VMR9ARMode_LetterBox); // <-- Добавил
      if FWnd <> 0 then
      begin
        if (Control <> nil) and not (csDesigning in Control.ComponentState) and (Control.ParentedVisible) and
           (Control.Root <> nil) and  (Control.Root.GetObject is TCommonCustomForm) then
        begin
          Form := TCommonCustomForm(Control.Root.GetObject);
          P := GetVideoSize;
        //  Bounds := TRectF.Create(0, 0, P.X, P.Y); ЗАкомитил
          Bounds := TRectF.Create(Control.Position.X, Control.Position.Y, Control.AbsoluteWidth, Control.AbsoluteHeight);// <-- Изменил, но высота и шрина не поддаются
          Bounds.Fit(RectF(0, 0, Control.AbsoluteWidth, Control.AbsoluteHeight));
          Bounds.Offset(Control.AbsoluteRect.Left, Control.AbsoluteRect.Top);
          SetParent(FWnd, WindowHandleToPlatform(Form.Handle).Wnd);
          SetWindowPos(FWnd, 0, Bounds.Round.Left, Bounds.Round.Top, Bounds.Round.Width, Bounds.Round.Height, 0);
          R := TRect.Create(0, 0, Bounds.Round.Width, Bounds.Round.Height);
          if FVMRWindowlessControl9 <> nil then
            FVMRWindowlessControl9.SetVideoPosition(nil, @R);
          if FVMRWindowlessControl7 <> nil then
            FVMRWindowlessControl7.SetVideoPosition(nil, @R);
          ShowWindow(FWnd, SW_SHOW)
        end
        else
          ShowWindow(FWnd, SW_HIDE)
      end;
    end;

    Прошу помощи...

    Скриншот 2016-08-20 17.38.26.png

  3. Добрый день!

    В этом видео на 40:50 показано как можно работать с линией. 

    Прикол в том что я пытаюсь сделать это. На видео Коопоненты SelectionPoint1, SelectionPoint2, Line лежат на форме. И при запуске как минимум точки можно перемещать. Я кидаю так же запускаю и у меня точки не двигаются.

    Но если их поместить в лайаут они передвигаются мышкой. В чём подвох?

  4. Вообщем столкнулся с такой бедой и не знаю как решить!

    Мне нужно сделать в какой-то контейнер накидать лайауты, кнопки, имейджи, лейблы и тд.

    Потом нужно чтобы это всё можно было таскать по скролбоксу и создавать копию такого же контейнера! Казалось бы всё можно сделать но тут я в тупике, почему? 

    Я кинуть TCalloutRectangle на форму в нём расположил как мне нужно элементы и научил его двигаться в скролбоксе!! Сижу я тут такой радуюсь смотрю на код)

    procedure TForm1.crtPhaseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
    begin
      zX := X;
      zY := Y;
      zIsDragging := true;
      (Sender as TControl).BringToFront;
      (Sender as TShape).Fill.Color := TAlphaColorRec.Lightblue;
      (Sender as TShape).Root.Captured := (Sender as TShape);
    end;
    
    procedure TForm1.crtPhaseMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
    begin
      if zIsDragging and (ssLeft in Shift) then
      begin
        (Sender as TControl).Position.X := (Sender as TControl).Position.X + X - zX;
        (Sender as TControl).Position.Y := (Sender as TControl).Position.Y + Y - zY;
        // (Sender as TShape).Fill
      end;
    end;

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

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Layout: TButton;
    begin
      Layout := TButton.Create(GridLayout1);
      Layout.Parent := GridLayout1;
      Layout.StyleLookup := 'MainStyle3';
      Layout.Position.X := Layout1.Position.X + 10;
      Layout.Position.Y := Layout1.Position.Y + 10;
      Layout.Visible := true;
      GridLayout1.Height := GridLayout1.Height + Layout.Height;
    
    end;

    Сижу и думаю вот контрол сделал он по форме таскается круто шас ещё и научу его многожить)))

    Но тут горячая обезьянка подкидывает сурпрайз)

    У TCalloutRectangle  и ему подобным нет свойства LoockupStyle. А это значит что стиль я ему предать не могу) Но он хорошо передвигается по форме)

    Ок делаю кнопку он вроде как стиль применяет, корява но это возмно мой касяк) Но он не передвигается по форме, а при клике по нему выдаёт ошибку

     

    First chance exception at $773ADAE8. Exception class EInvalidCast with message 'Invalid class typecast'. Process RPScenarioEditor.exe (4084)

    Чта делать я в замешательстве!!! Подскажите пожалуйста....

  5. procedure TForm1.ScaledLayout1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean);
    var
      Value: single;
    begin
      if WheelDelta > 0 then
        Value := 0.1
      else
        Value := -0.1;
    
      ScaledLayout1.Scale.X := ScaledLayout1.Scale.X + Value;
      ScaledLayout1.Scale.Y := ScaledLayout1.Scale.X;
      Label1.Text := VarToStr(ScaledLayout1.Scale.X);
      Label2.Text := VarToStr(ScaledLayout1.Scale.Y);
      //Panel1.Align := TAlignLayout.Client;
    end;

    Разобрался с изменением размера. Теперь проблема в другом. Уменьшается область экрана и если мышка не в этой области, то панель перестаёт реагировать

  6. Добрый день. Столкнулся с проблемой правильного отображения. есть картинка.

    Которая должна вращаться по принципу часовой стрелки, но при изменении свойства RotationAnge происходит смещение  стрелки от своего центра вокруг которого она должна вращаться. Как правильно поворачивать стрелку?

    post-417-0-93865400-1448110946_thumb.png

    post-417-0-96580100-1448110987_thumb.png

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