FAQ FM
Компоненты\Общие вопросы

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как указать целевые платформы для компонента?

type
  {$IF CompilerVersion >= 16} // Delphi XE2, VER230
  [ComponentPlatformsAttribute(pidWin32 or pidWin64)]
  {$ENDIF}
  TMyComponent = class(TComponent)
  private
    ...
  end;


Как зеркально отразить визуальный компонент по горизонтали и/или вертикали?

type
  THackControl = class( TControl )
  private
    property Scale;
  end;

procedure ReflectControl( Control: TControl; Horz, Vert: Boolean );
begin
   if Horz then
      THackControl( Control ).Scale.X := -1
   else
      THackControl( Control ).Scale.X := 1;
   if Vert then
      THackControl( Control ).Scale.Y := -1
   else
      THackControl( Control ).Scale.Y := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ReflectControl( CheckBox1, True, True );
end;


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

type
  TMyPanel = class(TPanel)
  protected
    procedure DoAbsoluteChanged; override;
  end;

implementation

{ TMyPanel }

procedure TMyPanel.DoAbsoluteChanged;
begin
   inherited;
   ShowMessage('Компонент был перемещен!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   with TMyPanel.Create(Self) do
   begin
      Parent := Self;
      Show;
      Position.X := Position.X + 10;
   end;
end;

При использовании материала - ссылка на сайт обязательна