На
этой странице располагаются советы для начинающих и опытных программистов.
Последующий пакет советов
смотрите ниже…..
Visual Basic: Полезные советы
1. Есть много программ, снимающих маски с окон с паролями... Все, наверное, видели: наводишь мышку на окно со звёздочками и в окне программы-взломщика появляется текст пароля. Приложения, написанные на Visual Basic не защещены от этого... Другими словами в текстовом окне всё же находится текст, только замаскированный. Я же нашёл как этого избежать:
Dim pswd As String
Private Sub
Text1_KeyPress(KeyAscii As Integer)
2.Сочитание операторов Chr(13) + Chr(10) можно заменять константой vbCrLf. 3.Чтобы Ваш EXE не был запущен одновременно два раза в событие Form_Load впишите: Private Sub Form_Load() 4.Чтобы запустить
на VB5.0 исходники, написанные на VB6.0 откройте файл проекта с
расширением VBP каким-нибудь текстовым редактором и удалите строки: 5.Если Вы применяете в вашей программе сравнение текстовых строк, то Вам будет полезно напоминание следующего:
"Visual Basic" <> "Visual BASIC"
UCase ("Visual Basic") = UCase
("Visual BASIC")
6.Если Вы хотите
В MsgBox'e вывести несколько строк и каждые раз с новой строки, то между
этими строками нужно вставить константу vbCrLf: 7. На одном из
русских сайтов, посвященных VB, я наткнулся на целую дискуссию, посвященную
тому, что делать и как бороться с Null (в частности, при работе с базами
данных). Возможно, я не прав, но я всегда для этих целей пользуюсь маленькой
функцией, помещенной где-нибудь в Public Function CheckNull(sCheck as String) as String И все. 8.Очень часто вместо обычных кнопок используются картинки. Т.е. существует всего три картинки - одна на которую будут жать (img1), вторая отжатая (img2) и третья нажатая (img3) (img2 и img3 - невидимы). Делаем это так: Private
Sub Form_Load()
Private Sub Image1_MouseDown(Button
As Integer,
Shift As Integer,
_ Private Sub Image1_MouseUp(Button
As Integer,
Shift As Integer,
_ Этот приём знает каждый... Но есть в нём один недостаток, а именно: при серии непрерывных кликов на объект картинка почему-то реагирует через раз. Т.е. то нажмётся, то не нажмётся. Так вот вот сам совет :-) : чтобы этого избежать в событие Img1_MouseDown нужно вставить строку SendKeys "A" Т.е. картинке одновременно посылается нажатая клавиша. Почему так, понять не могу сам. Но в скобках, конечно же, не важна буква "A" - там может стоять и В и С. Главное само событие. Если кто-нибудь может дать этому вразумительное объяснение - давайте! Заранее благодарю! 9.Если в течении работы программы Вам нужно несколько раз менять значения двух переменных, то используйте эту процедуру: Sub Swap
(V1 As Variant,
V2 As Variant) Вызов: Но объявление перменных желательно поменять с Variant на то, которое нужно Вам - меньше памяти надо будет. А эта процедура - универсальна! Чтобы не содержали аргументы V1 и V2, их значения поменяются местами. 10. В Бэйсике есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы!!! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory!!!!!! А получить её можно так: ABC = Environ ("windir") И ВСЁ! ABC = Environ
("TMP") 'директория временных файлов TEMP НО И ЭТО ВСЁ
ЕЩЁ НЕ ВСЁ!!!! Вставьте следуюшую процедуру в окно Code, запустите проект, кликните на форме увидите список всех переменных и их значений! Private
Sub
Form_Click() ТЕПЕРЬ ВСЁ! ;-)) И теперь все, кто недолюбливает API-функции (по-моему их вообще мало, кто долюбливает :-)) могут пользоваться только этой строчкой! 11.Чтобы сделать
форму с рамками, но без заголовка, нужно изменить следующие её свойства:
12.Если нужно поменять значение переменной As Boolean на противоположное, то вместо процедуры: If
ABC Then можно использовать строку: ABC = Not ABC И тогда какое значение не содержала бы переменная ABC, оно (значение) станет противоположным! 13.Чтобы в меню между пунктами ввести разделительную полоску, в окне "Menu Editor" в поле "Caption" введите "-" (тире), а поле "Name" любое имя. 14.Если ваша форма содержит меню, введите в событие Form_Load этот код и под меню появится маленькая полоска, подчёркивающая меню: AutoRedraw = True |