Visual Basic програмування, Різне, Програмування, статті

1 УПРАВЛІННЯ ПОДІЯМИ У КОМБОБОКСЕ


Дві проблеми можуть трапитися, коли збентежений юзер повзає по комбобоксу за допомогою мишки вгору і вниз, а потім натисканням на Enter робить свій юзерскій вибір. По-перше, натискання на сіру стрілку викликає дві події: Change і Click. По-друге, натискання на Enter переміщає фокус до наступного елементу форми, тоді як натискання на кнопку миші не викликає подібного ефекту (тобто фокус залишається на комбобоксе). Тому, якщо Ваш код поміщений в секцію події Change, то на стрілочки вгору / вниз (клавіатурою) викличе це подія, чого Ви, природно, не хочете. Навпаки, якщо Ви ставите свій код тільки в секцію події Lost Focus і юзер клацає мишею на своєму виборі, то фокус не піде з комбобокса, а юзер буде споглядати текст, який він обрав своєю мишею, і думати, чому це нічого не відбувається. Нижчевикладене рішення “фільтрує базар” подій Click, що генеруються натисканнями на стрілочки клавіатури, і змушує контрол втратити фокус.В секції Declarations форми введіть наступне


У VB3 треба поміняти тип прапора на integer
Dim bNoise as Boolean 
True означає, що відбувається “шум”, на який не слід реагувати


А цей код введіть в секції події Form_Load:


bNoise = False


Цей код введіть у події KeyDown комбобокса:


Private Sub cbTest_KeyDown(KeyCode As _ 
        Integer, Shift As Integer) 
якщо юзер використовує стрілки для їзди по списку комбобокса
ігнорувати події Click
        If KeyCode = vbKeyDown Or KeyCode _ 
                = vbKeyUp Then bNoise = True 
End Sub


Цей код вводиться в події Click комбобокса:


Private Sub cbTest_Click() 
        If bNoise Then 
                Ignore Noise events 
                (up or down arrow) 
                bNoise = False 
        Else 
Увести фокус з контрола
                SendKeys “{TAB}”, True 
        End If 
End Sub


Тепер Вам залишається написати код, який містить реакцію на вибір користувача, і занести його в секцію події LostFocus комбіка.
  


2. Коментування та РАСКОММЕНТІРОВАНІЕ БЛОКІВ КОДА


VB5 
Level: Beginning 
 


VB 5.0 дозволяє Вам разом закоментувати цілий блок коду, а потім також швидко розкоментувати його. Це дуже корисно при налагодженні, коли Вам не потрібно виконувати цілий ряд операторів, і в той же час Ви не можете їх видалити ось так от просто за здорово живеш. Між тим, пара кнопарей Comment / Uncomment присутня тільки в тулбарі Edit, який треба спеціально викликати :-(. Щоб швидко викликати тулбар Edit, правою кнопкою миші на будь-якому тулбарі в VB, і виберіть потім команду Edit.
  
  
   


3. Значення за умовчанням для Необов’язкові параметри


VB5 
Level: Beginning


Якщо Ви коли-небудь програми на VB4, то Ви можливо користувалися потужною фішкою під назвою Необов’язкові параметри (Optional parameters). VB5 пішов ще далі: тепер ці параметри можуть бути будь-якого типу (не тільки Variants), і можуть з’являтися в процедурах Property. Цікаво, що Ви можете тепер задавати для них значення за замовчуванням.


Property Get Value _ 
        (Optional index As Long = 1) 
End Property


Ви можете тепер робити це без колишнього раніше обов’язковим (і моторошно гальмівним) тестом IsMissing:


Property Get Value _ 
        (Optional index As Long) 
If IsMissing(index) Then index = 1 
… 
End Property

4. НЕ СТВОРЮЙТЕ ALIAS-них ЗМІННИХ


VB5 
Level: Beginning


Ніколи не передавайтe глобальну змінну в якості аргументу в процедуру, яка також безпосередньо звертається до цієї змінної з себе (навіщо?). Якщо Ви на 100% впевнені, що прямуєте цьому правилу у Ваших програмах, то закресліть опцію Assume No Aliasing в діалоговому вікні Advanced Optimizations, яке викликається з пункту Compile діалогу Project Properties (уф, сподіваюся, зрозуміло). Якщо компілятор native code знає, що цих самих alias-них змінних немає, то він спокійно копіює значення змінних в спритні регістри ЦПУ, і переписує їх значення назад в RAM тільки при виході з процедури. Це збільшує швидкість виконання скомпільованих програм.
  
  
 


5. Центрування ФОРМИ НА ЕКРАНІ


VB5 
Level: Beginning


Всі знають про маленького кодіке, що дозволяє Вам центрувати форму на екрані незалежно від графічного дозволу. Тепер Ви можете досягти того ж результату, всього лише присвоївши значення vbStartUpScreen (= 2) новому властивості StartUpPosition форми (з’явилося у версії 5). Ви навіть можете відцентрувати форму щодо її батьківського вікна, привласнивши значення vbStartUpOwner (= 1). Присвоєння можна зробити у вікні Property відповідної форми. Коли Ви центріруете форму всередині батьківського вікна, не забудьте додати другий аргумент на методі Show.


Form2.Show vbModal, Me 
  
 


6. Не захоплюйтеся АВТООПТІМІЗІЦІЕЙ FAST CODE


VB5 
Level: Beginning


Якщо поглянути на опції native code оптимізації, то спершу так і кортить клацнути на “Optimize for Fast Code”. Однак, як не дивно це може прозвучати, дана дія далеко не завжди гарантує очікуваний ефект. Апплікухі, оптимізовані на швидкісне виконання, як правило, не оптимізуються (пардон за каламбур), а лише отримують більшу кількість пам’яті при завантаженні. Це звертається для них повільнішою завантаженням, що особливо помітно на машинах з недостатньою кількістю RAM, і в підсумку створює враження, що Ваша апплікуха працює повільніше, ніж оптимізована під компактний код. З тієї самої причини, радиться компіліть апплікухі в P-code. У разі об’ємних, UI-і базоданскіх апплікух, виграш від компіляції в native-code аж ніяк не переважить збільшення розміру апплікухі. Взагалі, щоб точно знати, яка компіляція потрібна Вам, юзайте VB Application Performance Explorer (APE), який лежить на VB CD.
 


7. НЕ ВСЕ ШАБЛОНИ СТВОРЕНІ ОДНАКОВО


VBA5 
Level: Beginning


На відміну від інших продуктів Office 97, шаблони Word 97 містять business-application engine, який зберігається окремо від документів, іспользюущіх цей engine. Засновані на шаблонах книги Excel і презентації PowerPoint зберігають в собі шаблони, на основі яких вони створені. На практиці, всі документи Word складаються з 2х VBA проектів: перший проект створений на базі основного (оригінального, що зберігається в Word) шаблону (Всі документи Word засновані на шаблонах), а другий проект належить самому документу Word. З іншого боку, книги Excel і презентації PowerPoint, створені на шаблонах, містять тільки один VBA проект. Кожен файл містить свою власну копію проекту оригінального шаблону. Зміни, вироблені в цьому шаблоні, не зачіпають основний шаблон, що зберігається в додатку.
 


8. НАСТРОЙКА Тулбар У VB


VB5 
Level: Beginning


Ось кілька пропозицій по налаштуванню IDE в VB5:
Додати закладку в тулбокс можна, клікнувши правою кнопкою миші на кнопці General (що на тулбоксе), і вибравши Add Tab. Ви можете також переміщати і видаляти закладки, і переміщати ікони контролів з одного закладки на іншу, використовуючи звичайний метод drag-and-drop.
Витягнути кнопку будь-якого пункту меню на тулбар можна, клікнувши правою кнопкою на будь-якому тулбарі і вибравши пункт Customize. Перейдіть на закладку Commands, виберіть потрібний пункт меню в правому віконці, і перетягніть його на панель інструментів. Першими кандидатами на додавання є пункти Project-References, Project-Properties, і Tools-Add Procedure.
Як створити абсолютно новий тулбар на вкладці Toolbars діалогового вікна Customize. Після того, як Ви визначили вміст майбутнього тулбара, для додавання кнопок на цей тулбар використовуйте описану абзацом вище процедуру. Коли у Вас на екрані активізовано діалогове вікно Customize, правою кнопкою на будь-якій кнопці тулбара і Ви зможете поміняти малюнок кнопки, створити роздільник, заховати / показати текст і т.д.
 


9. Як заховати всі віконця ПРОЕКТУ


VB5 
Level: Beginning


Коли Ви працюєте з кількома пректу відразу, можна заплутатися в нагромадженні туєва хучі віконець з різних проектів. Однак, Ви можете тимчасово заховати усі віконця, пов’язані з даним проектом, клацнувши по піктограмі проекту у віконці Project Explorer так, щоб всі гілки, що стирчать з нього, зникли. Тоді ж згорнуться і всі вікна, пов’язані з даним проектом. Цю можливість можна скасувати, клацнувши на сответствующим квадратику на закладці General в меню Tools-Options.
 


10. STANDALONE БІБЛІОТЕКИ ТИПІВ


 VB4 16/32, VB5 (Enterprise Edition) 
Level: Intermediate


Koгда Ви створюєте Ваш out-of-process OLE сервер, то VB вбудовує бібліотеку типів сервера (companion type library) в EXE-файл, не генеруючи при цьому. TLB файл. Однак, якщо у Вас Enterprise Edition VB4 або VB5, то закресливши квадратик Remote Server File, Ви змусите VB створювати standalone біліотеку типів. У VB5, ця опція знаходиться на вкладці Component діалогового вікна Properties меню Project.
  
 

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


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

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

Ваш отзыв

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

*

*