powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Управление формами
21 сообщений из 121, страница 5 из 5
Управление формами
    #39942732
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV, не очень понятно зачем, но всё же
...
Рейтинг: 0 / 0
Управление формами
    #39942855
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
GVOV, не очень понятно зачем, но всё же


Отличное решение!

Зачем? При разработке/отладке, когда отключено автоматическое закрытие Accessa часто запускаю программу и после закрытия потом руками восстанавливаю окна. Через несколько лет, начало задалбывать :) А сейчас решил поработать не только над удобством пользователей а и над своим. Теперь станет намного удобнее!
...
Рейтинг: 0 / 0
Управление формами
    #39952661
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять прошу помощи.
В программе есть Форма3 которая есть диалоговой формой. Она может запускаться с Формы1 и Формы2. Отображением её на верху при переходе в программу с других программ по щелчку на панели задач, я так понимаю, занимается таймер Формы3.
И всё работает так как надо. Но для задач Формы3 потребовался таймер (в примере я просто отключил его активацию при открытии). И теперь при переходе на программу через панель задач при запущенной Форме3 активируется вызвавшая её форма а не сама Форма 3 которая в это время должна быть вверху.
Вопрос. Можно вернуть функционал отображения Формы3 вверху при переходе на программу через панель задач не используя её таймер?
...
Рейтинг: 0 / 0
Управление формами
    #39952666
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV
Отображением её на верху при переходе в программу с других программ по щелчку на панели задач, я так понимаю, занимается таймер Формы3 .
я такого не делал в представленных мной примерах...

Вот возможное решение (см пример). Комментарий дан в в модуле формы "Форма2"
...
Рейтинг: 0 / 0
Управление формами
    #39952913
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
GVOV
Отображением её на верху при переходе в программу с других программ по щелчку на панели задач, я так понимаю, занимается таймер Формы3 .
я такого не делал в представленных мной примерах...

Вот возможное решение (см пример). Комментарий дан в в модуле формы "Форма2"


Да возможно те методы решения предложены были другими пользователями.
Применил Ваше решение. Работает нормально, побочных эффектов пока не замечено.
Спасибо за помощь!
...
Рейтинг: 0 / 0
Управление формами
    #39960064
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На тестовой форме (на форме 2) добавил кнопку которая открывает MSWord. В WinXP все нормально открывается а вот в Win7 и Win10 MSWord открывается на заднем плане. В принципе ничего критичного но малость неудобно пользователю который хочет чтобы документ открывался сверху.
Подскажите это связано с специфической передачей фокуса между формами или я не правильно открываю ворд? И можно ли все таки в Win7 и Win10 вывести окно автоматически наперед хотя бы насильно.
...
Рейтинг: 0 / 0
Управление формами
    #39960088
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV
вывести окно автоматически наперед хотя бы насильно

формирую и закрываю в невидимом режиме
затем повторно открываю через shell "winword.exe c:\temp\dog15.docx",maximum
в строчке могут быть ошибки -набирала прямо в сообщении
...
Рейтинг: 0 / 0
Управление формами
    #39960096
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV,
уточнение
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Кнопка11_Click()
Dim WordApp As Object
Dim wordDoc As Object
Set WordApp = CreateObject("Word.Application")
Set wordDoc = WordApp.Application.Documents.Add(, , , True)
WordApp.Application.Visible = False ''''
wordDoc.paragraphs(1).range.Text = "www"
wordDoc.saveas "c:\temp\wrem2.docx"
WordApp.Quit True
Set wordDoc = Nothing
Set WordApp = Nothing
Shell "winword.exe c:\temp\wrem2.docx", vbMaximizedFocus
End Sub
...
Рейтинг: 0 / 0
Управление формами
    #39960123
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА
GVOV,
уточнение


Тут вижу сохранение документа. Очень хотелось бы обойтись без него.
...
Рейтинг: 0 / 0
Управление формами
    #39960124
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GVOV,
После сохранения и повторного открытия есть свои проблемы.
Если пользователь захочет сохранить то документ сохранится в то место откуда я его открыл и это не удобно. А очень удобно когда при сохранении (первом) будет выведено окно сохранения где пользователь выберет куда ему сохранить документ.
...
Рейтинг: 0 / 0
Управление формами
    #39960127
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GVOV,

Посмотри тут 15789119
...
Рейтинг: 0 / 0
Управление формами
    #39960150
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zimkon
GVOV,

Посмотри тут 15789119


Спасибо за наводку. Как будто помогло побороть окна ворда и екселя!
...
Рейтинг: 0 / 0
Управление формами
    #39960157
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV
Как будто помогло побороть окна ворда и екселя !
У Excel.Application есть метод ActivateMicrosoftApp
...
Рейтинг: 0 / 0
Управление формами
    #39960158
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV,
Тук-тук
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'Module1
#If VBA7 Then
 ...
    Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
#Else
 ...
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#End If



'в модуле формы
Private Sub Кнопка11_Click()
Dim WordApp As Object

Set WordApp = CreateObject("Word.Application")
WordApp.Application.Documents.Add , , , True
WordApp.Application.Visible = True
SetForegroundWindow FindWindow("OpusApp", WordApp.Application.ActiveDocument.Name & " - " & WordApp.Application.Caption)
End Sub

...
Рейтинг: 0 / 0
Управление формами
    #39965209
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В боевом применении управление формами работает отлично, каких либо проблем не наблюдается, пользователи довольны.
Но вылез один (а точнее два) неприятных косяка с MsgBox...

1. При открытии MsgBox он появляется как и надо наверху, но в панели задач появляется еще одна кнопка и если в этот момент нажать на панели задач первую кнопку приложения то вызывающая форма отобразится на экране в заблокированом режиме пока не переключишся на MsgBox и не закроешь его.
2. Если переходить с другого открытого окна на приложение с открытым MsgBox (на кнопкуMsgBox'а) то MsgBox отображается на фоне другого открытого окна а не приложения с которого оно возникло.

По большому счету эти косяки не критичны и проявляются только если этого захотеть но все равно несколько портят впечатление от, как до этого казалось, отлично работающего механизма управления формами.

Может можно как то устранить выявленный эффект?

Тест прилагаю.
...
Рейтинг: 0 / 0
Управление формами
    #39965212
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV
Может можно как то устранить выявленный эффект?
не пользуйся стандартным, сделай свой на основе окна диалога 3
...
Рейтинг: 0 / 0
Управление формами
    #39965289
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Вообще то логично... ;)
Буду двигаться в этом направлении!
...
Рейтинг: 0 / 0
Управление формами
    #39965504
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал делать свой MsgBox и столкнулся с одной проблемой, обойти которую не могу.
Проблема высчитать высоту окна формы чтобы влезло сообщение. Стандартный MsgBox это всё делает автоматически а в моём случае я увеличиваю высоту поля и формы чтобы влез текст.
Но тексты бывают:
"Строка1" & "Строка 2" - вмещается в одну строку
"Строка1" & vbNewLine & vbNewLine & "Строка 2" - вмещается уже в три строки при одинаковом количестве символов.
Поэтому определить количество строк просто определив длину текста и разделив на количество символов в поле по ширине не получается.
Не могу даже придумать как определить есть ли в тексте vbNewLine
Для каждого сообщения высчитывать высоту эмпирическим путем и передавать в форму - кажется не очень правильно.

Может кто натолкнет в каком направлении двигаться?
...
Рейтинг: 0 / 0
Управление формами
    #39965516
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVOV, а сам искать не пробовал? всё на сто раз обговорено...

1. API DrawText
2. Access.WizHook. TwipsFromFont
...
Рейтинг: 0 / 0
Управление формами
    #39965839
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Пробовал, но по таким словам не додумался поискать. Спасибо, буду изучать...
...
Рейтинг: 0 / 0
Управление формами
    #40038194
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять столкнулся с "неправильным" поведением форм настроить которое не могу.
Задача. Открыть форму 4.
Условие чтобы при активации приложения в любой момент времени выводилась последняя открытая форма вверху, в панели задач была одна вкладка приложения и не показывалось окно Access. Это условие в принципе было выполнено выше по топику.
1 случай - открыть прямо с формы 1. Открывается, функционирует нормально.
2 случай - открыть сначала форму 3 а потом с неё ту же форму 4. Открывается но функционирует неправильно. Переходы по ТАБ работают не на ней а на форме 3 с которой она открыта. Начинаю что-то менять в коде перестаёт выполняться условие, при активации приложения (при активации 4 форма не выводится наверху).
Помогите сделать так чтобы во 2 случае 4 форма работала корректно (переходы по ТАБ были на ней).
...
Рейтинг: 0 / 0
21 сообщений из 121, страница 5 из 5
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Управление формами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]