Перейти к содержанию
  • 0
gonzales

Как узнать размер элемента при изменении его Align

Вопросы

Собственно сабж, не могу сообразить. 

Создаю в рантайме компонент, у которого указываю Width и Height. После чего компоненту присваивается Align:=TAlignLayout.Top;

Однако Width не меняется.

Каким образом заставить программу пересчитать размеры компонента.

Пробовал все что могло повлиять, Resize, RecalcSize, Realign и тд. Ничего не срабатывает(((

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

  • 0
constructor TEssence.CreateCustom(AOwner: TComponent; X: Single; Y: Single; W: Single; H: Single; R: Single; Str_T: Single; Str_C: cardinal; Fill_C: cardinal;
  FontColor: cardinal; FontSize: Single; Im_size: Single; text: string; El_W:Single; AlignEssence:byte);
var
  Size: TSizeF;
  NameAni: TFloatAnimation;
  RectAni: TFloatAnimation;
  ImAni: TFloatAnimation;
begin
  inherited Create(AOwner);
  Parent := AOwner as TFmxObject;
  XRadius := R;
  YRadius := R;
  Stroke.Thickness := Str_T;
  Stroke.Color := Str_C;
.....

это конструктор родителя

constructor TPult.Create(AOwner: TComponent; X: Single; Y: Single; W: Single; H: Single; Pult_Align:integer; R: Single; Str_T: Single; Str_C: cardinal; Fill_C: cardinal;
  Font_C: cardinal; FontSize: Single; text: string; image: string; ColCount: byte; RowCount: byte);
var
 i:integer;
 c:single;
begin
  //inherited CreatePult(AOwner);
  inherited CreateCustom(AOwner, X, Y, W, H, R, Str_T, Str_C, Fill_C, Font_C, FontSize, 0, text, 0, 0);

  if Pult_Align = 1 then
  begin
   Align:=TAlignLayout.Top;
   Margins.Top := 5;
   Margins.Bottom := 5;
   Margins.Left := 10;
   Margins.Right := 10;
....

а это конструктор наследника.

TPult - наследник от TEssence.

Соответственно, если в наследнике Pult_Align = 1, наследник прибивается к топу, но его Width не изменяется.

 

Поделиться сообщением


Ссылка на сообщение
  • 0

повторил ваш код, у меня все работает (delphi 10.3.3):  Нужен пример неработающего кода. Попробуйте сделать минимальное приложение со своими классами и выложить сюда.

1019381775_.thumb.png.ea5ba8e25be552f60a12ff2f05b7f40c.png

Отредактировал slav_z
+картинка

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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