Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2021, 20:08   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Размещение динамически созданных TButton

Доброго времени суток!
Пытаюсь разместить динамически созданные TButton на форме в три столбца. Удалось нормально разместить только по горизонтали. Зашёл в тупик с реализацией.
Код:
procedure TForm6.FormCreate(Sender: TObject);
var
  Button: Array[0..7] of TButton;
  I: Integer;
begin
  for I := 0 to 7 do
  begin
    Button[I] := TButton.Create(Form6);
    Button[I].Caption := MyArray[I].qq;
    Button[I].Height := 25;
    Button[I].Hint := MyArray[I].ww;
    Button[I].Left := 4 + I * 161;
    Button[I].Name := 'MyButton' + IntToStr(I);
    Button[I].Parent := Self;
    Button[I].ShowHint := True;
    Button[I].TabOrder := I;
    Button[I].Tag := I;
    if Button[I].Left <= 326 then
    begin
      Button[I].Top := 4
    end
    else
    begin
      Button[I].Left := 4;
      Button[I].Top := 16 + I * 29;
    end;
    Button[I].Width := 157;
    Button[I].OnClick := ProcAdd;
  end;
end;
Изображения
Тип файла: png need.png (6.7 Кб, 17 просмотров)
Тип файла: png fail.png (5.2 Кб, 17 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 29.01.2021, 20:53   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А так?
Код:
  for I := 0 to 7 do
  begin
    Button[I] := TButton.Create(Form6);
    Button[I].Caption := MyArray[I].qq;
    Button[I].Height := 25;
    Button[I].Width := 157;
    Button[I].Hint := MyArray[I].ww;
    Button[I].Left := 4 + (I mod 3) * 161;
    Button[I].Top := 16 + (I div 3) * 29;
    Button[I].Name := 'MyButton' + IntToStr(I);
    Button[I].Parent := Self;
    Button[I].ShowHint := True;
    Button[I].TabOrder := I;
    Button[I].Tag := I;
    Button[I].OnClick := ProcAdd;
  end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.01.2021, 22:33   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Идеально. Благодарю.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик динамически созданных объектов Cruzel C++ Builder 1 09.06.2014 05:39
Взаимодействие динамически созданных кнопок Rilmeer Помощь студентам 5 07.06.2013 13:51
обработчик динамически созданных кнопок andir Общие вопросы Delphi 5 02.03.2013 18:11
перетаскивание динамически созданных объектов kaizer131 Общие вопросы Delphi 13 15.06.2011 07:59