Страницы: 1
RSS
Пользовательская форма с изменяемыми размерами (без API)_
 
Добрый день.  
Давно хотел поделиться своей наработкой изменения размеров формы без применения функций API, а тут вчера напомнили ).  
Возможно уже были похожие решения, ну что же тогда освежим.  
см. файл
Редко но метко ...
 
Классно!  
Маску курсора над углом лучше бы другую...
 
{quote}{login=subtlety}{date=17.02.2012 01:51}{thema=}{post}Маску курсора над углом лучше бы другую...{/post}{/quote}  
Согласен, насчет вида курсоров - это уже так сказать полет вашей фантазии, их вообще можно невидимыми сделать). Можно применять только курсор в углу.  
Я сделал так сказать общий вариант для понимания самого процесса, а дальнейшая доработка дело личное.
Редко но метко ...
 
спасибо!
 
Антон,    
Осталось сделать контролы на классах, и что бы они тоже были резиновыми.
Спасибо
 
а без labelов изменения слабо? :)
Живи и дай жить..
 
Я делал как то измение размеров рисунка на листе, я высчитывал область  действия того или иного события, и соответственно выполнял само событие.
Спасибо
 
РЕ: слэн  
Это как, покажите ?!  
 
РЕ: R Dmitry  
Предела совершенству нет!  
Я сделал простейший вариант, который не требует меганапряга мозга, при этом в свою очередь может облегчить написание кода под конкретную задачку.
Редко но метко ...
 
Типа такого.
Спасибо
 
{quote}{login=GIG_ant}{date=17.02.2012 02:35}{thema=}{post}РЕ: слэн  
Это как, покажите ?!{/post}{/quote}:)  
да все тоже самое.. но это вопрос на вопрос..
Живи и дай жить..
 
Уважаемый конструктор GIG_ant  
, как вы смотрите на возможность фиксации , установленого юзером размера? По моему простому юзеру эта задача не по силам.
 
РЕ: слэн - "а без labelов изменения слабо?"  
 
Вот примерчик, как вариант )
Редко но метко ...
 
РЕ: Аноним.  
Дык в файле как раз ификсированные минимальные и максимальные значения размеров формы (смотрите код)
Редко но метко ...
 
у меня в календаре есть вариант
Живи и дай жить..
 
{quote}{login=GIG_ant}{date=17.02.2012 02:57}{thema=}{post}Дык в файле как раз ификсированные минимальные и максимальные значения размеров формы{/post}{/quote}  
Плиз  
А все же, вопрос на засыпку  
Как зафиксировать , произвольно выбраный юзером , размер формы? Чтобы он оставался при повторном запуске таким же, как и перед закрытием формы.  
Заранее респект и уважение
 
GIG_ant, хорошее и полезное решение.  
Взял себе в копилку.  
 
Я обычно делал resize формы, изменяя ей свойство ZOOM  
(при этом контролы на форме тоже меняют размеры)  
Думаю, если заменить изменение размеров формы изменением ZOOM,  
получится даже лучше.  
(как-нибудь сделаю и выложу, если понадобится такое реализовать)  
 
 
 
> Как зафиксировать , произвольно выбраный юзером , размер формы?  
 
В книге Уокенбаха есть пример.  
Надо в реестре сохранять размеры формы, а при запуске формы - считывать их из реестра, и устанавливать.
 
Назовите пожалуйста в какой, напишите название книги  
Спасибо
 
>>Как зафиксировать , произвольно выбраный юзером , размер формы ?  
 
>Надо в реестре сохранять размеры формы, а при запуске формы - считывать их из реестра, и устанавливать.  
 
Сохраняем и считываем в(из) списке(а) имён книги:
 
Учебники талантов Планеты ).Спасибо!
 
Действительно мудрое решение.  
Благодарю и молюсь за вас Богу
 
уважаемый С.М.  
Не могу понять какой именно макрос или макросы фиксирует размер формы. Очень прошу , подскажите пжт,а то хочу сделать то же самое для своей формы и не получается.  
Спасибо
 
Уважаемый "Некто",  
здесь, при закрытии формы, создаются (и пересоздаются) имена, и их сойствам RefersTo  
присваиваются значения высоты и ширины формы  
(правда я перемудрил - высота, в моём довеске к Антоновому (GIG_ant) коду, не используется)  
Private Sub ButtonExit_Click()  
   With ThisWorkbook  
       .Names.Add "MainForm.UzerHeigh", Me.Height  
       .Names.Add "MainForm.UzerWidth", Me.Width  
   End With  
   Unload Me  
End Sub  
 
А тут, при открытии формы, значения обратно считываются и присваиваются соответствующим свойствам формы:  
Private Sub MyMainFormAndControlDefaultSize()  
   Dim EN As Long  
   On Error Resume Next  
   With ThisWorkbook  
       Me.Height = Evaluate(.Names("MainForm.UzerHeigh").Name)  
       Me.Width = Evaluate(.Names("MainForm.UzerWidth").Name)  
   End With  
   EN = Err.Number  
   On Error GoTo 0  
   If EN <> 0 Then ' если этих имён в книге ещё не существовало, то устанавливаются стандартные (Антона) значения '  
       Me.Height = 147  
       Me.Width = 220  
   End If  
   ........
 
Спасибо . еще раз попробую внедрить
 
:-(  
фразу "(правда я перемудрил ..."  
читать как "высота, в моём довеске к Антоновому (GIG_ant) коду, таки используется"  
:-)
 
RE: "Как зафиксировать , произвольно выбраный юзером , размер формы?"  
 
Вариантов много:  
Сохранять размеры:  
- на листе в ячейках  
- в именах документа (как показал С.М.)  
- в реестре (как говорил EducatedFool)  
- в свойствах документа (читаем справку по CustomDocumentProperties)  
 
вот вариант с сохранением на скрытом листе.
Редко но метко ...
 
Подправил, что бы возвращались размеры по умолчанию при правом клике.
Редко но метко ...
Страницы: 1
Читают тему
Наверх
Loading...