IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Dark side of Programming, Visual Basic
Bourn
сообщение 29 Dec 2006, 19:02
Сообщение #1

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




И так, начнем уроки «Dark side of Programming» на VB.
Начну я с того, что потребуется для запуска примеров, и как это можно сделать.
Вам понадобиться сама среда разработки, желательно VB6, но в принципе VB5 тоже сойдет, если ни того, ни другого нет, и не представляется возможности достать, то запускаем Word и жмем Alt+F11, если, конечно же, установлен VBA с пакетом офиса.

Немного расскажу о VBA и как там работать.
Начнем с того, что после запуска VBA мы должны добавить форму в наш проект, да и не забудьте отключить антивирусы, иначе они могут ругаться и т.п., надо щелкнуть на проекте правой кнопкой, выбрать пункт Insert-> UserForm. Далее мы можем размещать на форме то, что нам надо кнопки и т.п. Для запуска проекта нажмите Run.

Для VB6 мы создаем новый проект и размещаем на формах то, что нам требуется. Если мы будем работать с диалогами (пока не будем, и они нам не особо потребуются) то можно оставить форму, а если не будем, то можно форму из проекта удалить и добавить модуль, в нем написать:

Sub Main()
End Sub

Переключить возможности запуска можно в Project -> Project properties -> Startup object там как раз и выбираем или Sub Main или Form1 (хотя название формы может быть другое) . Для запуска проекта нажмите Run.

Перейдем к оформлению, те, кто уже знакомы с VB и пишут в нем можно это не читать: оформлять я буду по последнему методу через Sub Main. Все, что будет идти до строчки Sub Main(), это все что объявляется, все, что после это дополнительные процедуры и функции. Вы можете использовать форму, особенно это касается те, кто будут писать на VBA, мы ставим кнопку или прямо при загрузке формы должны писать код, он соответственно будет выполняться или при нажатии на кнопку или при загрузке формы, хотя параметров для выполнения кода может быть уйма. Так вот, два раза щелкаем на элементе, толи это кнопка толи это форма, мы переходим в область кода в процедуру, которая появилась, вставляем код заключенный между Sub Main() и End Sub, все что выше или ниже этого вставляем соответственно выше или ниже вашей процедуры.

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


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 30 Dec 2006, 00:32
Сообщение #2

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




Ну вот и первый пример я не забочусь о оптимизации кода, а только переписываю примеры Хроны, некоторые команды я не знаю поэтому выкручиваясь как могу, тот кто предложит лучшую реализацию я исправлю пример smile.gif.

Код
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private FSwap As Integer

Sub Main()
   FSwap = -1
   While FSwap <> 1
       SwapMouseButton (FSwap)
       FSwap = Not FSwap
       Sleep ((Rnd(4) + 1) * 100)
   Wend
End Sub


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 30 Dec 2006, 10:01 (Сообщение отредактировал Chrono Syndrome - 30 Dec 2006, 10:03)
Сообщение #3

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Код
Private FSwap As Integer

Ну, вообще-то, скорее уж: As Boolean (просто в PB нет такого типа данных), и:

Код
FSwap = Not FSwap


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 30 Dec 2006, 12:21
Сообщение #4

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




это не сработает я проверял надо передавать 1 или -1 чтобы инвертировать кнопки мыши и 0 чтобы восстановить


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 30 Dec 2006, 12:44 (Сообщение отредактировал Chrono Syndrome - 30 Dec 2006, 12:44)
Сообщение #5

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Цитата(Bourn @ 30 Dec 2006, 13:21)
это не сработает я проверял надо передавать 1 или -1 чтобы инвертировать кнопки мыши и 0 чтобы восстановить

А разве True не равно -1 и False не равно 0 ?


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 30 Dec 2006, 13:41
Сообщение #6

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




странно а почему у меня выходит что not -1 = 1 ?


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 30 Dec 2006, 15:03 (Сообщение отредактировал Chrono Syndrome - 30 Dec 2006, 15:23)
Сообщение #7

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Цитата(Bourn @ 30 Dec 2006, 14:41)
странно а почему у меня выходит что not -1 = 1 ?

Странно... Весьма. Гм, а Not True ?


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 03 Jan 2007, 08:07
Сообщение #8

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Вопрос не в тему, но нужен:
Есть Combobox под именем Cm1... Нужно, чтобы после выбора 1 пункта Combobox под именем Cm2 блокировалась... Какой код нужен?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 03 Jan 2007, 09:12
Сообщение #9

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




2 DracoLich
такой
Код
Private Sub Cm1_Click()
   If Cm1.ListIndex = 0 Then Cm2.Enabled = False
End Sub

при этом лучше чтобы style был dropdownlist


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 03 Jan 2007, 10:15
Сообщение #10

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Спасиб, работает... Еще - как вывести показ переменной в тексте?
Вот код:
vars = val(txt.text)
txt1.text = "Для примера: s="
Что нужно дописать, чтоб значение s вставилось?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 05 Jan 2007, 20:09
Сообщение #11

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




а s у тебя чему равно?
и зачем vars = val(txt.text)?
если s типа string то просто
txt1.text = "Для примера: s="+s
если нет, то
txt1.text = "Для примера: s="+str(s)


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 10 Jan 2007, 10:15
Сообщение #12

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




У меня две маленькие просьбы:
1) дабы не лазить в тему по PB созданной Хроной, можно и в этой теме писать что делает написанная программа
2) маленько и про язык рассказывать (например в первом примере можно было бы рассказать про существуемые типы данных и про правила их объявления)
Спасибо
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 11 Jan 2007, 05:25
Сообщение #13

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




буду комментировать прогу, щас просто не переписываю примеры, тк времени нет экзамены (например следующий экзамен через 3 часа smile.gif)


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 13 Jan 2007, 19:57
Сообщение #14

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Цитата
а s у тебя чему равно?
и зачем vars = val(txt.text)?
если s типа string то просто
txt1.text = "Для примера: s="+s
если нет, то
txt1.text = "Для примера: s="+str(s)

Дело в том, что мне нужно несколько переменных в одном сообщении, и они текстовые, т.е. типа "Они пошли в ...(переменная s), и там их встретил ...(переменная d)"

И еще: как можно "заблокировать" выпадающие таблицы? А то я могу и выбирать, и писать свой вариант, что мне совсем не нужно...


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 14 Jan 2007, 12:22
Сообщение #15

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




2 DracoLich
1)читай лучше посты http://forum.df2.ru/index.php?showtopic=47...ndpost&p=143799
2)txt1.text ="Они пошли в "+s+", и там их встретил "+d
и тп


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 06 Feb 2007, 15:41
Сообщение #16

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




А как называется элемент управления в который можно вставит/написать несколько абзацев?
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 06 Feb 2007, 18:35
Сообщение #17

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




RichEdit
ну или TextEdit с включенным MultiLine


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 06 Feb 2007, 21:01
Сообщение #18

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




да и почему в текст едит с мультилайн вручную только 1 строку можно вписать?
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 07 Feb 2007, 09:32
Сообщение #19

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




Спасибо Бёрн. Через shift+enter можно несколько строк.

Только у меня что-то русский текст пропадает, когда я его в документ вставляю из поля ТекстЭдит, англицкий текст и цифры нормально встают, а русские буквы заменяются пробелами (или еще чем-то непойму)
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 07 Feb 2007, 16:08
Сообщение #20

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




1)ну обычно я юзаю ctrl+enter
2)попробуй "кирилицу" для документа сделать(разберишь с шрифтами и кодировками)


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 13 October 2025 - 14:47
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика