Программирование
Веб программирование

Visual Basic советы

 
 

Не зная о чем писать, я решил тебе устроить маленький прогрузон, рассказать тебе множество моих советов, и может они тебе пригодятся.

1. Полноэкранный режим

Чтоб твоя программа была во весь экран необязательно использовать длинные API функции, можно обойтись и без нее.
Входим в VB(Standart EXE), у формы в свойстве BorderStyle - ставим 0 - None, в Form_Load пишем:

Private Sub Form_Load() 'При запуске формы:
Form1.Width = Screen.Width 'Ширина формы будет равна ширине экрана
Form1.Height = Screen.Height 'Высота формы будет равна высоте экрана
End Sub

2. Узнаем разрешение экрана

Слава мне!!! Я опять обошелся без API!!! На форму кидаем текстовое поле и кнопку. Код:

Private Sub Command1_Click() 'При нажатии на кнопку:
Dim width As String 'Объявляем переменную width как строковую
Dim height As String 'Объявляем переменную height как строковую

width = Screen.width / 15
height = Screen.height / 15
Text1.Text = width + "x" + height
End Sub

3. Делаем свое Меню

Здесь я не буду тебя грузить, скажу саму идею. На форму кидаем Frame. У него убираем свойство Caption, и него кидаем несколько меток. Это и будет твое меню. Сворачиваем фрейм до минимума, оставляем только одну метку, и при нажатии на нее фрейм должен разворачиваться до обычного размера, ну идею ты наверное понял, короче сделай так чтоб она была похожа на обычное меню. У тебя должна получится такая штука:

Достоинства этого меню: Ты можешь запихнуть туда картинку, поменять шрифт...

4. Запретить запуск двух копий программы

Хей перцы! Меня кто - нибуть слышит? Отлично! Тогда я тебе скажу одну полезную штуку, как надо запретить запуск двух копий программы, но не просто запретить, а и еще обасрать, чтоб в следующий раз юзер думал, а потом кликал!

Private Sub Form_Load() 
If App.PrevInstance = True Then 
MsgBox "Эй ламер поганый, ты что ослеп что ле, я уже запущена!!!",16,"Думай что делаешь!"
End 
End If 
End Sub

5. Послать строковое сообщение в любую другую программу

Ща я тебе покажу, как надо отсылать свои сообщения в любые другие программы. Тебе надо только указать заголовок той программы, куда ты хочешь отослать свой текст.

Private Sub Command1_Click()
AppActivate ("Безымянный") 'Здесь пишем заголовок программы (место Безымянный можешь написать WordPad, Установка связи...)
SendKeys ("Эй Блокнот - меня слышно?") 'Отсылаемый текст
End Sub

6. Узнаем имя своей программы

Очень часто(особенно когда в реестре прописываешь) надо знать имя своей программы. Ты скажешь: "А нафига? Я ведь ее назвал, и имя запомнил.". А юзер - то может ее и переименовать, для этого есть свойство ExeName у объекта App.

Private Sub Form_Load()
Text1.Text = App.EXEName + ".exe"
End Sub

7. Узнаем путь к своей программе

Иногда надо узнать полный путь к своей программе (например, чтоб прописать ее в реестре...), и для этого в VB есть свойство Path(Путь). На форму кинь Текстовое поле и кнопку.

Private Sub Command1_Click()
Text1.Text = App.Path 'В Текстовом поле появится путь к твоей программе
End Sub

8. Делаем автозапуск своей программы

Ты наверное заметил, что когда всуешь CD в CD - ROM, происходит Автозапуск. Если у тебя есть пишущий сидюшник, то это как раз для тебя, но если у тебя его нет, ты можешь сделать Autorun для диска C: например, или любого другого диска. Начнем! Я буду рассматривать на примере диска C:, т.к. не у всех сидюшник пишет, но точно также можно делать и для круглых дисков. В диске C: создай текстовой документ, в нем впиши:
[autorun]
open=1.exe
icon=1.ico
Здесь Open = путь к файлу,Icon = иконка для диска. Сохраняй его как Autorun.inf(он должен сидеть в корневом каталоге диска(у нас C:)). Входи в Мой комп, жми F5(обновить), и любуйся.

9. Окуратнее с Оператором DIM

Ты наверное заметил, что оператор Dim не обязательно писать пять раз, чтобы объявить пять переменных а можно написать так:

Dim QW1, QW2, QW3, QW4, QW5 As Long

Здесь мы объявляем пять переменных, но всели они будут Long? НЕТ!!! Первые четыре будут Variant, а только последняя будет Long. Если я тебе не говорил в чем разница между Variant, Long, Integer..., то слушай:
Variant - жрет памяти очень много, ее используют только начинающие VB программеры(если ты все еще используешь Variant - ТО СРОЧНО ПЕРЕХОДИ НА LONG!!!)
> Integer(8 бит) - Этот тип жрет памяти меньше чем Variant(она вроде 16 бит), но больше чем Long(2 бита).
Long - этот тип жрет памяти меньше всего, и ты если используешь другой, то переходи на него!!!
Это я говорю к тому, что если ты хочешь объявлять переменные в одну строчку, а не в пять, то пиши так:

Dim QW1 As Long, QW2 As Long, QW3 As Long, QW4 As Long, QW5 As Long

10. Аварийный выход

Иногда, бывает что программа виснет(очень часто это бывает когда цикл зацикливается). Короче, чтоб безопасно выключить программу надо нажать Ctrl + PauseBreak.

11. Переменные фиксированной длины

Иногда надо ограничить переменную до определенного количества символов, для этого при объявлении переменной нужно указать количество символов, до которых нужно ограничить переменную. Например:

Dim X As String * 3 'Ограничиваем переменную X до 3 символов
Private Sub Form_Load()
X = "123456"
MsgBox X 'Выдает 123
End Sub

12. Типы переменных

  1. String - строковые переменные
  2. Long - числовые переменные от -2147483648 до +2147483647
  3. Integer числовые переменные от -32768 до +32767, работают медлее Long
  4. Single - хранит дробные числа с точностью до 7 цифр, и длинной до 38 символов. Вычисления приблизительны
  5. Double - хранит дробные числа с точностью до 16 цифр и длиной до 300 символов. Вычисления тоже приблизительны. Работает медлее Single. 
  6. Variant - данные любого типа 
  7. Byte - хранит целые числа от 0 до 255. Экономит оперативную память и размеры массивов.

13. Комментарии

Комментарии задаются ковычкой '
Также, можно использовать оператор REM

Dim x as Long: REM Объявляем переменную x

Есть вопросы? Спроси на нашем форуме!!
КВЕР [02.10.2010 16:55]

Послать строковое сообщение в любую другую программу
есть способ кроме SendKeys? просто если языки не совпадают то получается какая-то хня. да и если совпадают некоторые символы , например, .(точка) : передаются ниправильно. можно при помощи Print или Write?

Гость [02.10.2010 16:57]

за 4 коммента сорь это лаг сайта удалить невозможно)

Nik [07.12.2010 06:46]

полноэкранный режим:
BorderStyle - 0 - None
WindowState - 2 - Maximized

Багир [17.04.2011 14:06]

Вот что бывает, когда открываешь на сайте возможность писать всем без регистрации и каптчи. С одной стороны удобно, но сразу лезут всякие упыри да вурдалаки...

Отче [20.04.2011 11:12]

Все, кто здесь флудит - МУДАКИ!!!!

canogaida [13.06.2011 18:16]

Люди могут простить вам добро, которое вы для них сделали, но редко забывают зло, которое они причинили вам.

EmaissePseumb [16.06.2011 19:53]

Тот, кого хоть раз в жизни угораздило вплотную познакомиться с фонарным столбом, по опыту знает, что любая скорость, превышающая ноль километров в час, уже опасна для жизни.

Download [19.06.2011 05:56]

Из жизни программистов: - Предположим что у тебя есть 1000 рублей... Ну, для круглого счета возьмем 1024!

Pentax [28.06.2011 13:51]

Анекдот на эту тему:
- Доктор, у меня склероз!
- И давно это у Вас?
- Что давно, доктор?

defEliree [29.06.2011 01:22]

Я — одинокий ворон в бездне света,Где каждый взмах крыла отмечен болью,Но если плата за спасенье — воля,То я спасенье отвергаю это.

PlaycleCync [29.06.2011 20:16]

И солнце светит как обычно, ради приличияспряталось бы к черту — я тебя ненавижу!Плакало бы небо за меня — было бы легче,время лечит, а меня только калечит
Нашёл на

popugai [13.07.2011 17:15]

У парикмахера был попугай-матершинник. И повадился в парикмахерскую мент ходить, попугай его видит и орет: ты мусор ебаный, гандон, пидарас. А мент за попугая с парикмахера то полтинник то сотню штрафа имеет. Задолбался парикмахер пошел топить попугая в реке да по дороге попа встретил. Батюшка ему в чем проблема сын мой. Тот рассказывает. Батюшка говорит у меня мол такой же попугай есть но исключительно культурный, давай меняемся а я твоего перевоспитаю. Ну поменялись. У мента кончаются деньги приходит он в парикмахерскую подходит к клетке, попугай молчит, подходит ближе тишина, он подходит совсем вплотную и шепче: ты что же меня не узнал? я тот гандон, тот пидарас, тот мусор ебаный. А попугай говорит: Кайся, кайся, сын мой...

sobaka [18.07.2011 10:45]

Поймал старик золотую рыбку.А она ему:- Отпусти меня, старче, выполню три твоих желания!И загадал старик такие желания:- Хочу, чтоб денег у меня было видимо-невидимо. Хочу, чтоб выпивки всякой (водки, вина, пива) было у меня хоть залейся, и еще хочу, чтоб кончал я одновременно с женой!...- Так и будет, - сказала рыбка и старик отпустил ее обратно в синее море...Наутро озверевший старик опять иступленно закидывает невод, пытаясьрыбку поймать. Поймал наконец.- Что тебе опять-то нужно? - спрашивает рыбка.- Отмени последнее мое желание! - требует старик.- Почему?- Отмени и все!- Ну почему?????????- Да на хрена мне такая радость - стою вчера, пиво пью... чувствую - КОНЧАЮ!

кролик домашний декоративный

Soft [20.07.2011 00:13]

Анекдот про программиста

Ирина: Привет. Я не могу войти в программу магазина, пишет пароль вводится с учетом регистра
Дмитрий: привет. Может быть, капс-лок включен?
Ирина: а как его выключить, я была 2 недели в отпуске, не знаю что включали что выключали

ASoftware [25.07.2011 17:05]
  • А я на прошлой неделе женился!
    • Поздравляю! Она тоже программист?
    • Нет.
    • Опа... а о чем вы с ней тогда разговариваете?!
лёлик первый [27.07.2011 22:14]

плавный переход на доску объявлений)))

ToonnaNesse [23.08.2011 11:19]

я следила за сайтом vbbook.ru, и некоторые разделы ресурса, мне очень понравились и я стала активнее на сайте vbbook.ru, однако, порой просто смешно наблюдать - там вроде все по делу, и мне кажется интересным даже.

fizotik [08.09.2011 23:58]

fizotik xtexcounter@bk.ru

Petrooblite [03.10.2011 07:36]

почерпнул много нового

abc [13.11.2011 22:23]

Пункт 9 не читайте. Чушь.
Автор не понимает разницы между битом и байтом. Integer - 2 байта (16 бит), Long - 4 байта (32 бита). Long не может занимать памяти меньше, чем integer, по определению.
Тип Variant можно использовать, если у вас не проблем с размером памяти или вы не гонитесь за суперэффективностью (хотя хороший стиль - определять все переменные). Кроме того, использование типа variant позволяет не заморачиваться и писать быстрее. Особенно, если не знаешь, какой тип выбрать. Например, переменную какого типа надо выбрать для значения свойства recordset.bookmark? Пишем variant и вперед.

Про типизацию объектов не пишу.

см. пункт 12. Надо читать 1, 7, 3, 2 и т.д.

алексей [13.11.2011 22:29]

ну да у меня пока не было ошибок о которых говориться в пункте 9

abc [13.11.2011 22:40]

Надо же, живой сайт))))

Ошибок не было потому, ставите, по совету автора long. Этот тип покрывает диапазон и byte и intrger. Но это как раз не рационально, поскольку для чисел, скажем от 0 до 255 (1 байт), резервировать 4 байта (> 2*10^9) совершенно избыточно. Никакой экономии, однако.

abc [13.11.2011 22:41]

intrger=integer. (I'm sorry).

алексей [13.11.2011 22:45]

abc ты что только заметил что сайт ожил XD

алексей [13.11.2011 22:46]

я один раз пользовался Double он нужен для точности

abc [13.11.2011 22:48]

Да первый раз здесь. Предыдущее сообщение 03.10.2011. Вообще-то это дохлость)))

abc [13.11.2011 22:55]

Single и double - это писание переменных для чисел с плавающей точкой. Это совсем другая песня. Попробуйте порешать на их основе бухгалтерские задачи. Столкнётесь с интересными явлениями, связанными с округлением. Для научно-инженерных расчетов, да, подойдут. А 2 с небольшим миллиарда могут оказаться недостаточными(long).

алексей [13.11.2011 23:09]

во первых тут не которые могуд быть скромные и не остовляют коменты во вторых сайт токо что ожил просто разраб токо что занялся сайтом

алексей [13.11.2011 23:11]

это про разнице коментов во времени

яыоквлрг.ю [10.12.2011 19:47]

счаплегю

NICKNAME [14.12.2011 06:48]

Stop hack the program!!!

AER [08.01.2012 13:48]

Основными типами данных, используемыми при описании переменных, являются:

Integer – целое число (2 байта);
Long – длинное целое число (4 байта);
Single – десятичное число одинарной точности (4 байта);
Double – десятичное число двойной точности (8 байтов);
Currency – десятичное число с фиксированной точкой (8 байтов);
String – строка текста (до 65400 символов);
Byte – целое от 0 до 255 (1 байт);
Boolean – логическое значение True или False (2 байта);
Date – дата и время (8 байтов);
Object – экземпляр класса (4 байта);
Variant – любой из перечисленных выше типов (16 байтов + 1 байт/символ).

AndrossIRF [19.04.2012 19:33]

Ваш сайт - vbbook.ru показался мне очень привлекательным и перспективным.
Хочу приобрести рекламное место для баннера в шапке Вашего сайта.
Какова будет стоимость данной услуги?
Оплачивать буду через WebMoney, 50% сразу, а 50% через 2 недели.

И еще, адрес моего сайта http://megasto.com.ua/ - он не будет противоречть тематике Вашего сайта?

Напишите о Вашем решении мне на почту megasto.com.ua@gmail.com
Заранее благодарен за оперативный ответ.

алексей [19.04.2012 23:12]

AndrossIRF, завтра решим примерно вечером

FireDay [21.04.2012 23:30]

sy4ki.net - "Hack again?!"
Не понял. Что ты имеешь в виду?

RageglakeLype [11.05.2012 23:48]

Hello. And Bye.

Алексей(alex13sh) [21.07.2012 22:01]

travmed, ты о чём?
я ща твой комент удалю!

escopubospeme [17.08.2012 15:46]

Привет Всем !!

Met [17.08.2012 19:23]

Зделать полноэкранный режим можно и без этих примочек height и Wight. А просто на ходиш на панели инструментов такое слово как WindowState и щелкаеш по треугольничку с права , там будет такие слова , 0нормально,1 свернуто, 2развернуто. Выбираеш то что надо и все. Private Sub Form_Load()
cуда пишеш свой код, после того как записал код при загрузке твоя форма примет тот или иной размер. Все очень просто.
End Sub

Met [17.08.2012 19:23]

Зделать полноэкранный режим можно и без этих примочек height и Wight. А просто на ходиш на панели инструментов такое слово как WindowState и щелкаеш по треугольничку с права , там будет такие слова , 0нормально,1 свернуто, 2развернуто. Выбираеш то что надо и все. Private Sub Form_Load()
cуда пишеш свой код, после того как записал код при загрузке твоя форма примет тот или иной размер. Все очень просто.
End Sub

FireDay [17.08.2012 22:13]

Me.WindowState = ...
vbNormal(=0), vbMinimized(=1), vbMaximized(=2)

Met [18.08.2012 09:37]

Да, можно и так.



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.