Delphi Как использовать TGridPanel

Я хочу использовать Delphi 2009 TGridPanel, но я не понимаю, как правильно его использовать.

Например, я хочу иметь GridPanel с 4 столбцами, которые должны иметь каждый 25% процентов ширины GripPanels.

Поэтому я помещаю GripPanel в форму и добавляю 4 ColumnItems. Я предоставляю элементы столбца SizeStyle ssPercent, и теперь я пытаюсь дать каждому ColummItem значение 25 (ober инспектору объекта). Но по каким-то причинам инспектор объекта не принимает значение 25. Он автоматически изменяется на что-то вроде "23, 8095238095238". Может кто-нибудь объяснить мне кратко, как использовать эти компоненты? Спасибо!

Ответ 1

Когда вы устанавливаете Value столбца с SizeStyle ssPercent, компонент распределяет новую сумму всех столбцов ssPercent в стиле, доступных для общего процента. Например, если у вас есть 4 25% столбцов, и вы установите 50%, теперь у вас есть 125%. Компонент вычисляет "Значение снова, чтобы иметь общий распределенный пропорционально, то есть 50% → 40% (100 * 50/125).

Чтобы установить значение более одного столбца сразу, во время выполнения вы окружите свой код с помощью GridPanel.ColumnCollection.BeginUpdate и GridPanel.ColumnCollection.EndUpdate.

И во время разработки отредактируйте .dfm напрямую. Нажмите "Alt + F12", когда вы просматриваете форму в редакторе дизайна, найдите GridPanel в текстовом редакторе, отредактируйте значение столбцов там, а затем снова нажмите "Alt + F12", чтобы вернуться к представлению дизайна.

Ответ 2

Если вы хотите, чтобы все столбцы были одинаковыми, выберите все столбцы в представлении структуры, а затем (при условии, что SizeStyle уже установлен в ssPercent) установите значение 0. Это вызовет некоторый автоматизм, который сделает все столбцы равными.