Створюємо меню на стартовій формі, MS Office, Програмні керівництва, статті

 

У цій статті я показав як можна заповнити формою все MDI вікно програми Access і натякнув, що форма як не можна краще підходить для розміщення логотипів, меню і т.п.


Спочатку створимо процедуру для виклику з Form_Open:
 


Private Sub LabelLocation()
Dim lngFormHeight As Long “для зберігання висоти розгорнутої форми
Dim lngFormWidth As Long “для зберігання ширини розгорнутої форми
Dim I As Integer
Dim lngСмещеніе As Long “для зберігання величини зсуву елементів меню
Dim lngLeftPoint As Long “ліва точка відліку
 


“Це код вже описаний у статті Стартова (головна) форма додатка
DoCmd.Echo False
DoCmd.Maximize


lngFormWidth = Me.InsideWidth
lngFormHeight = Me.InsideHeight
DoCmd.Restore
DoCmd.MoveSize 0, 0, lngFormWidth, lngFormHeight


Me.Detail.Height = 30000 “щоб не обмежувало переміщення елементів по вертикалі


“Маємо елементи оформлення – у нижній частині форми


“Розтягуємо напис lblПодвал темно-зеленого кольору
lblПодвал.Left = 5
lblПодвал.Height = lngFormHeight 4 “висота підвалу 1/4 висоти форми
lblПодвал.Width = lngFormWidth
lblПодвал.Top = lngFormHeight – lblПодвал.Height – 5


“Розташуємо txtРайон у правому нижньому куті
txtРайон.Left = lngFormWidth – (5670 + 400)
txtРайон.Height = 284
txtРайон.Width = 5670
txtРайон.Top = lngFormHeight – (txtРайон.Height + 100)
“Підкреслимо поле txtРайон для краси


“Необхідно дати команду Формат -> На передній план, щоб лінія не перекривалася полем txtРайон


linРайон.Left = lngFormWidth – (5670 + 350)
linРайон.Width = 5670
linРайон.Top = lngFormHeight – 150
“Розташуємо малюнок picLogo в лівому нижньому кутку форми
picLogo.Left = 5
picLogo.Top = lngFormHeight – (picLogo.Height)
 


Елементи оформлення ми розкидали по кутах. Тепер приступимо до створення меню:


lngСмещеніе = 283 “величина зсуву – від неї залежить” нахил “драбинки


Тут необхідно трохи пояснити як влаштовано меню. Кожен елемент меню складається з 4 елементів – 2 малюнків і 2 написів. Рисунок imgNUp містить картинку за замовчуванням, малюнок imgNDown показує картинку, коли користувач наводить мишкою на елемент меню. Картинки я запозичив з сайту Stardock.com – у них там викладені простирадла наборів іконок – мені більше нічого не треба було. Додав всієї простирадлі зеленуватий колір, акуратно вирізав необхідні іконки, залив тло картинок кольором фону стартовою форми і розклав на елементи Image по пунктам.


Напис lblNTitle містить назву пункту – воно ж і підсвічується, коли над елементом меню проводять мишкою. Напис lblNComment містить пояснювальну інформацію до пункту і не інтерактивно.


Моє меню містить 6 пунктів – Ви можете зробити будь-яку кількість – створіть малюнки і написи за шаблоном типу: imgNUp, imgNDown, lblNTitle, lblNComment збільште кількість проходів (For I = 1 to N). Зверніть увагу, розташування пунктів меню йде тільки по горизонталі, тому Вам доведеться спочатку самим розподілити пункти по вертикалі, як Вам зручніше. Ще зауваження: при невеликих дозволах екрану або вікна програми Access темно-зелена напис lblПодвал може “залізти” під пункти меню – картинки, володіючи світлим фоном, на темно-зеленою написи вони будуть виглядати неохайно.


“Значення лівого кута для вирвніванія пунктів меню по середині


lngLeftPoint = (lngFormWidth – Me.img1Up.Width) / 2


For I = 1 To intItemCount


“В розділі оголошень змінних модуля форми впишіть


“Private Const intItemCount = 6” кількість пунктів меню


“Почнемо центрувати панелі меню циклічним перебором елементів
Me(“img” & I & “Up”).Left = lngLeftPoint
Me(“img” & I & “Down”).Left = lngLeftPoint
Me(“lbl” & I & “Title”).Left = lngLeftPoint + 750
Me(“lbl” & I & “Comment”).Left = lngLeftPoint + 750
lngLeftPoint = lngLeftPoint + lngСмещеніе
Next


DoCmd.Echo True “включимо промальовування екрану
End Sub
 


Меню, що ми зараз розташували на формі, є статичним меню. Як “оживити” меню, читайте в наступній статті.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*