Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / MaxButton формы остаётся недоступной / 10 сообщений из 10, страница 1 из 1
15.11.2013, 14:11
    #38466425
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Всем доброго времени суток!
Ситуация следующая: в программе по нажатии по одной из кнопок форма разворачивается на весь экран (ThisForm.Widnowstate = 2) и свойству MaxButton формы присваивается значение .F., т.е. становится недоступной кнопка распахивания формы на весь экран.
Затем при нажатии ещё одной кнопки свойству MaxButton присваивается значение .T. (форма остаётся развёрнутой на весь экран), но кнопка распахивания формы остаётся недоступной (не смотря на то, что после изменения значения свойства MaxButton вызывается событие Refresh формы).
Вопрос: как сделать так, чтобы в результате вышеописанных действий кнопка распахивания всё-таки становилась доступной?
...
Рейтинг: 0 / 0
15.11.2013, 14:17
    #38466437
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
9IKOBВсем доброго времени суток!
Ситуация следующая: в программе по нажатии по одной из кнопок форма разворачивается на весь экран (ThisForm.Widnowstate = 2) и свойству MaxButton формы присваивается значение .F., т.е. становится недоступной кнопка распахивания формы на весь экран.
Затем при нажатии ещё одной кнопки свойству MaxButton присваивается значение .T. (форма остаётся развёрнутой на весь экран), но кнопка распахивания формы остаётся недоступной (не смотря на то, что после изменения значения свойства MaxButton вызывается событие Refresh формы).
Вопрос: как сделать так, чтобы в результате вышеописанных действий кнопка распахивания всё-таки становилась доступной?

Используй стандартные свойсва формы без выдумывания своих кнопок.
...
Рейтинг: 0 / 0
15.11.2013, 15:38
    #38466581
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
IgorNGИспользуй стандартные свойсва формы без выдумывания своих кнопок.
Не понял смысл ответа - я и так использую стандартные свойства WindowState, MaxButton. При чём тут кнопки?
Просто суть в том, что когда форма развёрнута на весь экран, кнопка, расположенная в правом верхнем углу окна слева от красного крестика не разворачивает форму, а возвращает её к исходным размерам. Получается, в этот момент она не MaxButton, и поэтому не становится доступной при присваивании свойству MaxButton значения .T.
...
Рейтинг: 0 / 0
15.11.2013, 15:43
    #38466588
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
9IKOBIgorNGИспользуй стандартные свойсва формы без выдумывания своих кнопок.
Не понял смысл ответа - я и так использую стандартные свойства WindowState, MaxButton. При чём тут кнопки?
Просто суть в том, что когда форма развёрнута на весь экран, кнопка, расположенная в правом верхнем углу окна слева от красного крестика не разворачивает форму, а возвращает её к исходным размерам. Получается, в этот момент она не MaxButton, и поэтому не становится доступной при присваивании свойству MaxButton значения .T.
Всегда так было. При развернутом на весь экран окне кнопка "развернуть" заменяется на "восстановить". Это виндовс делает во всех приложениях.
Не понимаю чем это тебе помешало? Какой смысл в кнопке "развернуть" если уже развернуто?

Чего именно ты хочешь добиться в итоге?
...
Рейтинг: 0 / 0
15.11.2013, 16:27
    #38466676
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Dima TВсегда так было. При развернутом на весь экран окне кнопка "развернуть" заменяется на "восстановить". Это виндовс делает во всех приложениях.
Не понимаю чем это тебе помешало? Какой смысл в кнопке "развернуть" если уже развернуто?

Чего именно ты хочешь добиться в итоге?
Я хочу, чтобы когда форма развёрнута на весь экран и кнопка "развернуть" недоступна, при нажатии на мою кнопку кнопка "развернуть" (в данном случае она уже кнопка "восстановить") стала доступна.
Пока единственное найденное мною решение - это при нажатии на мою кнопку восстанавливать исходные размеры формы, затем делать доступной кнопку "развернуть", затем снова распахнуть форму на весь экран. Причём в событии Resize формы написан некоторый код, и мне не хочется его прогонять два лишних раза.
...
Рейтинг: 0 / 0
15.11.2013, 16:27
    #38466677
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Dima TВсегда так было. При развернутом на весь экран окне кнопка "развернуть" заменяется на "восстановить". Это виндовс делает во всех приложениях.
Не понимаю чем это тебе помешало? Какой смысл в кнопке "развернуть" если уже развернуто?

Чего именно ты хочешь добиться в итоге?
Я хочу, чтобы когда форма развёрнута на весь экран и кнопка "развернуть" недоступна, при нажатии на мою кнопку кнопка "развернуть" (в данном случае она уже кнопка "восстановить") стала доступна.
Пока единственное найденное мною решение - это при нажатии на мою кнопку восстанавливать исходные размеры формы, затем делать доступной кнопку "развернуть", затем снова распахнуть форму на весь экран. Причём в событии Resize формы написан некоторый код, и мне не хочется его прогонять два лишних раза.
...
Рейтинг: 0 / 0
15.11.2013, 16:57
    #38466729
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
9IKOBПричём в событии Resize формы написан некоторый код, и мне не хочется его прогонять два лишних раза.
не прогоняй. Установи какой-нибудь флаг что Resize() отработал и больше не делай на него ничего. А форму разворачивай обратно при нажатии "восстановить"
...
Рейтинг: 0 / 0
15.11.2013, 17:06
    #38466740
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Как-то так напиши Resize()
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
if ThisForm.WindowState != 2
   return
endif
if ThisForm.nPrevWidth = ThisForm.Width and ThisForm.nPrevHeight = ThisForm.Height
  return
endif
ThisForm.nPrevWidth = ThisForm.Width
ThisForm.nPrevHeight = ThisForm.Height
... твой код


свойства nPrevWidth и nPrevHeight предварительно только добавь и нулями заполни.
...
Рейтинг: 0 / 0
15.11.2013, 17:14
    #38466749
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Другой вариант вообще убрать кнопки
Код: sql
1.
2.
3.
4.
ThisForm.MinButton = .F.
ThisForm.MaxButton = .F.
ThisForm.TitleBar = 0 
ThisForm.WindowState = 2
...
Рейтинг: 0 / 0
18.11.2013, 09:41
    #38468170
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MaxButton формы остаётся недоступной
Dima T,

Я создал глобальную переменную, по значению которой определяю в событии Resize, нужно ли выравнивать объекты по размеру формы или нет. Вот кусочек кода, где делается доступным кнопка MaxButton:
Код: sql
1.
2.
3.
4.
5.
6.
7.
IF .MaxButton = .F.
	m.glResize = .F.
	.WindowState = 0
	.MaxButton = .T.
	.WindowState = 2
	m.glResize = .T.
ENDIF
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / MaxButton формы остаётся недоступной / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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