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;

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