|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TGridPanel и динамическое создание компонентов на нём
На форме лежит TGridPanel с размеченой сеткой. Пытаюсь на нём создать TImage и назначить в какой ячейке он должен находиться.
Код:
Images_A[0] := TImage.Create(GridPanel); Images_A[0].Parent := GridPanel; GridPanel.ControlCollection.Add; GridPanel.ControlCollection[0].Control := Images_A[0]; GridPanel.ControlCollection[0].Row := 1; GridPanel.ControlCollection[0].Column := 1; Но TGridPanel создаёт её в "Row 0" и "Column 0". Может кто сталкивался с этим?! Поделитесь опытом! |
#2
|
|||
|
|||
Ну не знаю, у меня все работает (Delphi 10.2.3):
Код:
procedure TForm1.Button1Click(Sender: TObject); var b : TButton; item : TControlItem; begin b := TButton.Create(Self); b.Parent := GridPanel1; b.Caption := '123'; item := GridPanel1.ControlCollection.Add; item.Column := 1; item.Row := 1; item.Control := b; // ============== b := TButton.Create(Self); b.Parent := GridPanel1; b.Caption := '321'; item := GridPanel1.ControlCollection.Add; item.Column := 2; item.Row := 2; item.Control := b; end; PS. В GridPanel создано 3 строки и 3 колонки. Вот настроить размер строк и колонок в %% - вот это трудная задача. |
#3
|
|||
|
|||
Ты немного не прав. Ты создаешь их изначально в row1 и column1, а если первую кнопку создать в row2 и column2 то ничего не получится. Он создаст их в 0:0.
Опытным путём выяснил что строку "GridPanel1.ControlCollection.Add;" он выполняет автоматически и "item.Control := b;" тоже. Может потому что я создавал "TImage.Create(GridPanel);" А по поводу процентов, там можно выбрать свойство и absolute и задавать нормальные размеры. |
#4
|
|||
|
|||
Я ничего не путаю. 2 кнопки создаются по диагонали в 1,1 и 2,2 (если считать с 0). Так что все работает. Я же не просто так код написал, я его проверил, только на кнопке, а не картинке (лень было искать нужный модуль для включения в uses).
Дык именно в %% и интересно, что бы автоматически масштабировалось при ресайзе. |