Створення рамок, що обрамляють форму, MS Office, Програмні керівництва, статті

Спочатку я зробив просто і тупо – просто розтягнув на формі два прямокутники rectDown і rectTop. Прямокутник rectDown зробив піднесеним і позиціонував його на самий нижній план форми. Прямокутник rectTop зробив втопленим і розмірами трохи менше rectDown. Позиціонував його зверху rectDown так, щоб здавалося, що по краю форми створена рамка. Потім накидав на форму елементи. Прямокутник rectDown пофарбував в темно-сірий колір, а rectTop в зеленуватий – ну такий стиль був у всіх форм в базі (Ви можете, звичайно вибирати будь-які кольори). Візуально форма виглядала красиво, мала тонку рамку по краях і зеленуватий колір фону. Так, у мене ще рядка заголовка у форми не було (тип кордону – відсутня). Для перетягування форми я використовую фальшиву рядок заголовка – напис, за яку можна вхопитися мишою (код буде розглянуто в наступній статті для користувача інтерфейсу).

Начебто було нормально спочатку, красиво, але потім стали виникати труднощі. Ці прямокутники постійно норовили сповзти відносно один одного і виходило некрасиво – з одного боку рамка трохи ширше, з іншого трохи вже. Коли в режимі розробки доводилося виділяти кілька контролів на формі мишкою (протягуванням з натиснутою клавішею), ясна річ, вибирався і зрушувався прямокутник rectTop, який був розкинуть по всій формі трохи вище rectDown, але нижче ніж інші контроли. Постійно доводилося підганяти краю форми до цих прямокутникам. Ну, загалом, якийсь час я з цим кошмаром мирився 😉


Вирішив я пошукати небудь API для цього, але поки не виявив (вірніше, виявив для форм VB, але до форм Access він не підійшов). Навіть на форумах ставив питання, але виразних відповідей не отримав (мабуть, погано питав ;). Приступивши до самостійних підступам, намацав рішення:


“Намалюємо з двох прямокутників навколо форми рамку
Me.rectDown.Left = 30
Me.rectDown.Top = 30
Me.rectDown.Width = 9740
Me.rectDown.Height = 5290
Me.rectTop.Left = 80
Me.rectTop.Top = 70
Me.rectTop.Width = 9660
Me.rectTop.Height = 5210
DoCmd.RunCommand acCmdSizeToFitForm


тут все зрозуміло – куди хочемо (або куди зручніше) кидаємо два прямокутники. Положення їх в режимі розробки не важливо, куди-небудь в кут заштовхати ;). У режимі виконання вони самі позиціонуються по краях форми. У Вас розмір форми може бути іншим, тому підберіть підходящі собі розміри (в твіпах). Як видно верхній прямокутник rectTop (кордон у нього втиснута) трохи менше і позиціонується трохи нижче і правіше прямокутника rectDown (з типом кордону – піднятий). Прямокутник rectDown забарвлений в темно-зелений колір (повторюю, вибирайте свої відповідні кольори, нічого з мене копіювати, а rectTop в зеленувато-жовтий (він і створює загальний колір фону форми).


Ну і найбільша заморочка була прихована в останній команді, точніше в її відсутності. Форма ніяк не хотіла приймати розміри по правій і нижній стороні rectDown. Ну звичайно, якщо виконувати команду меню Вікно – За розміром форми, то все ставало на свої місця – форма тиснула і брала потрібні розміри – те, що і було потрібно. Довелося пошукати таку команду ….


Взагалі об’єкт DoCmd.RunCommand багатий на різні корисні константи, практично на все всі команди меню і кнопки панелей інструментів є відповідні константи. Просто довелося пошукати відповідну команді меню Вікно-За розміром форми 😉 Рішення просто вразило мене своєю простотою 😉


Пізніше треба буде впритул зайнятися цікавим методом RunCommand об’єкта DoCmd (винести в окрему тему бібліотеки), я навіть сайтик виявив англицкий з досить докладним описом команд, залишилося тільки перекласти на великий і могутній 😉


Але повернемося до наших бара … тобто формам. Вставте цей нехитрий код в процедуру відкриття форми (при наявності, звичайно прямокутників з іменами rectDown і rectTop) і експериментуйте зі зсувами, квітами і кількістю 😉 прямокутників. Ви обов’язково досягнете результату, який повністю задовольнить Вас і виявиться найбільш гармонійним в оформленні Вашого користувальницького інтерфейсу. Все таки форма з красивим бордюром виглядає стильно і професійно ….

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


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

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

Ваш отзыв

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

*

*