|
2 / 2 / 0
Регистрация: 21.05.2015
Сообщений: 35
|
|
Форма на весь экран (с учётом параметров монитора компьютера)29.07.2015, 21:38. Показов 14947. Ответов 26
Здравия желаю! как всё-таки сделать форму на весь экран (с учётом параметров монитора компьютера)? Не могу разобраться и понять (без "растягивания")!
0
|
|
| 29.07.2015, 21:38 | |
|
Ответы с готовыми решениями:
26
Форма растягивается на весь экран, как задать фиксированный размер? Форма во весь экран Составить программу рисования шахматной доски во весь экран монитора |
|
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
|
|
| 01.08.2015, 10:53 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 10
|
|
| 30.01.2016, 15:11 | |
|
mobile , в который раз хотел использовать Ваши решения для создаваемой БД. Но Access ругается уже при открытии (1 и 2-ой скрины). Если макросы отключить и попробовать открыть форму "Телефоны", то скрин 3.
Может настройки какие-то надо установить (Access 2013, Win 8.1)?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 30.01.2016, 15:55 | ||||||
|
У Вас 64-битный Access. Для него апишные функции имеют несколько иной синтаксис и переменные другой разрядности. Перед Fuction надо написать ключевое слово PtrSafe, указывающее, что выполнение в 64-битной среде. Кроме того, переменные типа Long должны быть указаны с типом LongPtr
Access. Переход с 32-х разрядной системы на 64-х разрядную
Access. Переход с 32-х разрядной системы на 64-х разрядную.
Начиная с версии Office 2010, офис стал выпускаться в двух вариантах 32-х разрядный и 64-х разрядный. Причём, если 32-х разрядный офис может спокойно устанавливаться как на 32-х, так и на 64-х разрядную системы, то 64-х разрядный офис может ставиться только на 64-х разрядную операционку. Хотя 32-разрядные приложения могут работать прозрачно, смешивание двух типов кода в одном процессе не поддерживается. 64-разрядное приложение не может подключаться к 32-разрядной системной библиотеке (DLL); аналогичным образом 32-разрядное приложение не может подключаться к 64-разрядной системной библиотеке. ВНИМАНИЕ! При попытке запустить 32-разрядный код в 64-разрядной версии Access возникнут ошибки времени выполнения. Например, из-за несоответствия версий пользовательского приложения (32-разрядный код) и одного из 64-разрядных поставщиков ACE, установленных с 64-разрядной версией Microsoft Access, может возникнуть ошибка "Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальном компьютере". Чтобы устранить эту проблему, либо обновите пользовательский код до 64-разрядной версии, либо удалите 64-разрядную версию Access и установите 32-разрядную. Параллельная установка 64-х и 32-х разрядных выпусков Office 2010 не поддерживается. Это относится и к Access. Перед развертыванием 64-разрядной версии Access определите, подходит ли такой вариант развертывания для конкретной среды. На совместимость с текущим 32-разрядным решением для Access влияет ряд факторов. Например, при использовании баз данных с удаленным исходным кодом (MDE-, ADE- и ACCDE-файлов) либо при использовании VBA-кода с операторами Declare, надстройками COM и элементами ActiveX необходимо приложить определенные усилия, чтобы эти функции заработали с 64-разрядной версией Access. Для устранения этой проблемы также можно установить 32-разрядную версию Access в 32-разрядной версии Windows либо 32-разрядную версию Access (WOW64) в 64-разрядной версии Windows. Если Вы собираетесь использовать 64-х разрядные базы данных Access, и в будущем ситуация не изменится, самым естественным вариантом для работы с данными будет выбор драйвера ACE DAO, поскольку он предоставляет наиболее полный набор функций. В конце концов, собственные технологии доступа к данным, как правило, позволяют сократить время разработки, упростить код и обеспечить более высокую производительность. Если будут использоваться расширенные возможности работы с наборами данных и подключения к вспомогательным внешним источникам, рассмотрите возможность использования ADO.NET (или ADO) либо OLE DB. Полную поддержку устаревших возможностей, таких как связанные таблицы и сохраненные запросы, а также новых сложных типов данных, появившихся в Access 2007, обеспечивает только драйвер ACE DAO. Драйвер ACE OLE DB обеспечивает ограниченную поддержку сложных данных. Например, для более эффективной поддержки сложного набора данных (для извлечения наборов записей в наборах данных) необходимо задать параметр подключения "JET OLE DB: Support Complex Data". Если этого не сделать, по умолчанию для сложных полей будут возвращаться списки разделенных значений. Технологии ADO.NET, ADO и ACE ODBC всегда возвращают для сложных полей списки разделенных значений. Выполнение кода VBA, который был написан до выпуска Office 2010 (VBA версии 6 и более ранних версий), на 64-разрядной платформе может приводить к возникновению ошибок, если код не был модифицирован для работы в 64-разрядных версиях Office. Ошибки будут возникать по той причине, что язык VBA версии 6 и более ранних версий неявно ориентирован на 32-разрядные платформы и обычно содержит операторы объявления, которые запускают в действие функции API Microsoft Windows, использующие 32-разрядные типы данных для указателей и дескрипторов. Так как язык VBA версии 6 и более ранних версий не имеет специального типа данных для указателей и дескрипторов, им используется тип данных Long, который является 32-разрядным 4-байтным типом данных, предназначенным для ссылки на указатели и дескрипторы. Указатели и дескрипторы в 64-разрядных средах являются 8-байтными 64-разрядными числами. Эти 64-разрядные числа не могут храниться в 32-разрядных типах данных. Проблема с выполнением унаследованного программного кода VBA в 64-разрядном пакете Office заключается в том, что при попытке загрузить 64-разрядные значения в 32-разрядный тип данных 64-разрядные числа усекаются. Это может приводить к переполнениям памяти, неожиданным результатам в коде и возможным сбоям приложения. Для устранения этой проблемы и обеспечения правильной работы кода VBA как в 32-разрядных, так и в 64-разрядных средах в язык VBA добавлен ряд функциональных возможностей. Три важных добавления: псевдоним типа LongPtr, тип данных LongLong и ключевое слово PtrSafe. LongPtr — теперь язык VBA включает псевдоним типа переменной: LongPtr. Фактический тип данных, в который разрешается тип LongPtr, зависит от версии пакета Office, в котором он используется: тип LongPtr разрешается в тип Long в 32-разрядных пакетах Office, и тип LongPtr разрешается в тип LongLong в 64-разрядных версиях пакета Office. Используйте тип LongPtr для указателей и дескрипторов. LongLong — тип данных LongLong — это 64-разрядные целые числа со знаком, которые доступны только в 64-разрядных версиях пакета Office. Используйте тип LongLong для 64-разрядных целых чисел. Для явного присвоения значений типа LongLong (включая тип LongPtr на 64-разрядных платформах) целочисленным типам данных меньшего размера должны использоваться функции преобразования. Неявное преобразование типа LongLong в целочисленные данные меньшего размера не допускается. PtrSafe — ключевое слово PtrSafe декларирует, что оператор Declare безотказно выполняется в 64-разрядных версиях пакета Office. Теперь все операторы Declare должны содержать ключевое слово PtrSafe, когда выполняются в 64-разрядных версиях пакета Office. Важно понимать, что просто добавление ключевого слова PtrSafe в оператор Declare означает только, что оператор Declare явно ориентирован на 64-разрядные данные, все типы данных в операторе, которые предназначены для хранения 64 разрядов (включая возвращаемые значения и параметры), все еще нуждаются в изменении, чтобы хранить 64-разрядные числа. Начиная с Access 2010 для программирования стал доступен VBA7. Операторы Declare, содержащие слово PtrSafe, работают корректно в среде разработки VBA7 как на 32-разрядных, так и на 64 разрядных платформах. Чтобы обеспечить обратную совместимость в VBA7 и более ранних версиях, используйте следующую структуру: #If Vba7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf Примечание. Я писал текст программ в Access 2003, а уже потом отлаживал в Access 2010. В Access 2003 строки с этой переменной подсвечивались красным, но компилятор Access 2003 их спокойно обрабатывал. В Access 2010 ничего не подсвечивалось. Пример не модифицированного унаследованного оператора Declare в языке VBA5/6 версий Access 97/2000/2002/2003/2007 Declare Function GetActiveWindow Lib "user32" () As Long Пример оператора Declare языка VBA модифицированного для включения спецификатора PtrSafe, но по-прежнему используется 32-разрядное возвращаемое значение в языке VBA7 версий Access 2007/2010/2013/2016 Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long Пример оператора Declare языка VBA, модифицированный для включения ключевого слова PtrSafe и обновленный для использования 64-разрядного типа данных (LongPtr) Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr Итак, для правильной работы кода в 64-разрядных версиях пакета Office необходимо найти и модифицировать все существующие операторы Declare, чтобы они использовали спецификатор PtrSafe. А внутри этих операторов Declare необходимо найти и модифицировать все типы данных, которые ссылаются на дескрипторы или указатели, чтобы использовать псевдоним нового 64-разрядного совместимого типа LongPtr и типы, необходимые для хранения 64-разрядных целых чисел с новым типом данных LongLong. Кроме того, следует обновить все определенные пользователем типы, содержащие указатели или дескрипторы и 64-разрядные целые числа, чтобы использовать 64-разрядные типы данных, и убедиться в правильности присвоений всех переменных, чтобы предотвратить появление ошибок несоответствия типов. Чтобы написать код, переносимый между 32-разрядными и 64-разрядными версиями Office, требуется лишь использовать для всех указателей и значений дескрипторов псевдоним нового типа LongPtr вместо типа Long или LongLong. Псевдоним типа LongPtr разрешается в правильный тип данных Long или LongLong в зависимости от того, какая версия пакета Office используется. Обратите внимание, что если требуется реализовать другую логику, можно использовать константу условной компиляции Win64 Код с её использованием будет выглядеть следующим образом. #if Win64 then ' Code is running in 64-bit version of Microsoft Office #else ' Code is running in 32-bit version of Microsoft Office #end if Чтобы написать код, работоспособный как в новой, так и в старой версиях Office, можно использовать комбинацию новых условных констант компилятора VBA7 и Win64. #if Vba7 then ' Code is running in the new VBA7 editor #if Win64 then ' Code is running in 64-bit version of Microsoft Office #else ' Code is running in 32-bit version of Microsoft Office #end if #else ' Code is running in VBA version 6 or earlier #end if #If Vba7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf Добавлено через 1 минуту К сожалению сам проверить не могу. Нет 64-битного акса...
2
|
||||||
|
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 10
|
||
| 30.01.2016, 17:19 | ||
|
mobile , спасибо огромное за помощь!
Текст про Access перечитал, но т.к. не программист, сами понимаете, местами, как китайская грамота. ![]() Приведенный Вами код помог. Почти. Access еще немного поругался. Надо в обоих модулях сделать так, как Вы указали: Разворачивается почти полноценно (скрин 4). Если кликнуть дважды по верхней синей полоске формы, все вписывается в экран идеально (скрин 5). Базу с внесенными исправлениями выкладываю. Вдруг кому-то понадобится. Теперь буду думать, как тоже самое "прикрутить" к своей БД.
0
|
||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 30.01.2016, 20:29 | |
|
Я, в принципе, уже понял, как здесь на форуме относятся к "новинкам" Access))), но все-таки рискну написать).
Так вот, насколько я помню, начиная с 2007 (или с 2010) Акса, в формах и отчетах появился режим макета, а так же кнопка "Привязка", которая позволяет, на мой взгляд, организовать "резиновые" формы без малейших заморочек с кодом. Что имею в виду. Изначально берем и делаем форму из расчета на минимальное разрешение монитора. Конечно, в наше время нет смысла брать 800 на 600, мониторы кругом уже более-менее нормальные, поэтому можно делать формы, все элементы которых умещались бы в пределах разрешения например 1280 на 800. Затем настраиваем привязку каждого элемента формы (т.е. его растягивание вниз, вниз и в ширину и т.д.) - и получаем на выходе форму, элементы которой занимают весь экран независимо от разрешения монитора, на котором открыта эта форма. Сам очень часто пользуюсь этой возможностью, формы при любых раскладах открываются на весь доступный экран и т.д. Например, если есть форма, у которой сверху идут несколько полей и элементов управления, а ниже - окно подформы с подчиненной таблицей, то просто в привязке верхние элементы закрепляем с растягиванием вдоль верхнего края, а подформу - с растягиванием вниз и по горизонтали. И все смотрится замечательно. И, опять же, без кода)) Само собой, наработки, связанные с созданием резиновых форм в более ранних версиях - тоже очень ценная штука, ничуть не умаляю их ценность. Но мне вот тьфу-тьфу пока ни разу не пришлось ими воспользоваться. Добавлено через 1 минуту mobile, Спасибо за очень ценную инструкцию по переходу с 32 на 64, сохраню себе обязательно, очень пригодится.
3
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
||
| 01.02.2016, 03:19 | ||
![]() docmd.maximize поставьте на открытие всех форм и будут они у вас на весь экран отображаться.
0
|
||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|||
| 01.02.2016, 09:20 | |||
|
3
|
|||
| 01.02.2016, 09:20 | |
|
Помогаю со студенческими работами здесь
27
Jtable на весь экран по ширине при разных разрешениях монитора Не разворачивается форма на весь экран Форма на весь экран => местоположение объектов Зависание компьютера с артефактами на весь экран Форма на весь экран с учетом масштаба компонентов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|