Привязка размеров Grid к форме

Автор iyugov, 22 февраля 2016, 21:57

0 Пользователи и 1 гость просматривают эту тему.

iyugov

Есть форма Base с элементом управления Grid. Как сделать так, чтобы при изменении размеров формы соответственно изменялись ширина и высота элемента управления? Нужно, чтобы Grid всегда занимал почти всю форму.

rami

Цитата: iyugov от 22 февраля 2016, 19:57Есть форма Base с элементом управления Grid. Как сделать так, чтобы при изменении размеров формы соответственно изменялись ширина и высота элемента управления? Нужно, чтобы Grid всегда занимал почти всю форму.
У любого элемента есть ширина и высота. Для чего нужно менять размер формы? И главное, как?

iyugov

#2
rami, менять размер формы - для удобства работы. Делается это интерактивно, мышью. Форму (окно) разворачивают на весь экран, чтобы видеть больше содержимого Grid. Или меняют размеры окна мышью, вплоть до сравнительно небольших, чтобы одновременно видеть другие формы. Естественно, размеры Grid при этом должны тоже изменяться. В разных IDE есть редакторы привязок, там это можно сделать, а как в LibreOffice (5.1)? Райтеровская привязка "к странице" и т. п. не так работает.

JohnSUN

Ладно. Как насчет того, чтобы зажать Ctrl и покрутить колесо мыши туда-сюда?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

iyugov

Это не совсем то. Ctrl - это масштабирование, оно просто всё делает крупнее: длина и ширина не становятся пропорциональны новым размерам формы, не увеличивается количество видимых строк и столбцов, работает только при курсоре мыши над свободным пространством формы.

JohnSUN

Изменить размеры элементов управления в соответствии с размерами формы, конечно, можно. Но этот трюк не тривиален.
Форма может находиться или в режиме проектирования, или в рабочем режиме. В рабочем режиме большинство свойств всех элементов управления переключаются в режим "только для чтения". Это и понятно - если бы вместо выделения текста в поле само поле начало ездить по форме следом за курсором мыши, это как минимум раздражало бы. Поэтому макрос, который должен менять размер элемента управления, сначала должен перещелкнуть форму в режим проектирования, внести нужные изменения в свойства контролов, перещёлкнуть форму обратно в рабочий режим, скорее всего, обновить (перерисовать) её, восстановить фокус на старом месте... Муторно. Обычно с этим не заморачиваются - если нужен продвинутый пользовательский интерфейс, используют продвинутый инструментарий. Тот же Лазарус, например. Но чаще просто переспрашивают пользователя "Вам шашечки или ехать?"
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

iyugov

Только начинаю, но ещё как бы в поиске инструмента. Думаю: может, и правда на Lazarus делать. В Lazarus проще работать с интерфейсом, в Base - непосредственно с БД. Нужно десктопное приложение с локальной базой (без сервера БД на localhost), максимально открытое и кроссплатформенное. Дружит ли Lazarus с базами Base? Если да, то где посмотреть пример проекта?

kompilainenn

Лазарус - это язык прграммирования Паскаль. А Паскаль умеет в базы данных. А использовать именно Base обязательно?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

JohnSUN

#8
Цитата: iyugov от 23 февраля 2016, 13:57
Только начинаю... с базами Base
Ну да, только новичок и может сказать "с базами Base"... Нет таких баз - Base это "навеска" на любую СУБД из списка, который потихоньку расширяется.

Готовый образец, наверное, найти трудно. Попробуй посмотреть "Птицу-Секретарь"

А по Лазарусу и базам - начинай отсюда и дальше по ссылкам. Но имей в виду, что этот форум - не о Лазарусе
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

iyugov

JohnSUN, "базы Base" - имел в виду то, что в диалоге Base называется "встроенная база данных" (HSQLDB/Firebird). В принципе, лишь бы сервер БД ставить не пришлось. Спасибо за ссылку, пойду в Lazarus, наверное.

JohnSUN

Лучше посмотри в сторону SQLite... HSQLDB это, конечно, хорошо... но всё ещё недостаточно хорошо
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

kompilainenn

Цитата: JohnSUN от 23 февраля 2016, 13:54HSQLDB это, конечно, хорошо... однако никогда не было по нормальному хорошо
исправил, не благодари
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут