StringGrid и FormResize

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

alexs писал(а):3 раза мышкой нажать, чтобы установить в инспекторе объектов значения свойств - это огород? А писать костыли - это не огород?
Просто зачем писать код, который дублирует штатный функционал?

Наоборот, я 100% поддерживаю Ваш вариант, т.к. он лучше. И даю ему ++100500. И более того в своей программе, я бы СРАЗУ использовал AutoFillColumns + SizePriority, т.к. знал об их существовании. Вот отсюда: viewtopic.php?f=5&t=9677&p=79650&hilit=AutoFillColumns#p79650

Но в этом топике - не обратил внимание на "неправильное" подключение AutoFillColumns (без SizePriority), т.к. вначале увидел другую ошибку у ТС и акцентировался на ней. В общем всё хорошо, всем хорошего дня и настроения!
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Тогда и я прошу прощения за недопонимание :-)
Mushroomer
новенький
Сообщения: 20
Зарегистрирован: 04.12.2017 14:07:39

Сообщение Mushroomer »

А как бы вы решили такую задачу (к первому вопросу отношения не имеет).
Условно есть StringGrid с 20 колонками. У всех 20 разная ширина.
Нужно чтобы при изменении ширины формы ширина колонок изменялась пропорционально, полностью заполняя ClientWidth.
Когда-то в delphi я делал примерно так (возможно велосипед, поэтому и интересуюсь):
изменилась ширина формы на 8 пикселей - каждой колонке с 0 по 7 добавил по 1 пикселю.
затем форма увеличилась еще на 4 пикселя - каждой колонке с 8 по 11 добавил по 1 пикселю.
Ну и так далее. При уменьшении - вычитание в обратном порядке.

Покрутив AutoFillColumns и SizePriority я не смог добиться работы с колонками у которых SizePriority = 1 чтобы они были разной ширины.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Mushroomer писал(а):изменилась ширина формы на 8 пикселей - каждой колонке с 0 по 7 добавил по 1 пикселю.
затем форма увеличилась еще на 4 пикселя - каждой колонке с 8 по 11 добавил по 1 пикселю.
Ну и так далее. При уменьшении - вычитание в обратном порядке.

А в процентах не догадались задавать ширину колонок?

Там есть Options - поиграйте с ним, оно Вам вряд ли поможет с этой новой задачей, но будете знать, что умеет грид.
Скорее всего, для решения новой задачи, нужно поменять СтрингГрид на более продвинутый СтрингГрид (или вписать свой код).

.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Штатный грид может либо держать колонки фиксированными, либо заполнять по ширине равномерно. Пропорционального изменения размера нет.
Если есть надобность - то надо писать разработчику грида
Ответить