Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Повтор или одно и тоже делать при не завершении цикла ну не знаю как назвать?ООП?? ))

63K
05 августа 2011 года
maksimla
26 / / 25.07.2011
VB6
у меня в форму 2 изображение вставлены Один солдат другая пуля. При нажатии мышки на форму пуля летит от солдата прямо. И пока пуля не залетит за край формы нельзя следующию пулю пустить.
Код:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Image2.Left = Image2.Left + 20
If Image2.Left >= Form1.ScaleWidth Then
Image2.Left = 720
Timer1.Enabled = False
End If
End Sub


Можете объяснить как сделал чтобы можно было много пуль выпустить?

А еще как мне сделать массив чтобы в него записывались 2 переменные
mas(i).x=2
mas(i).y=3
както так как сделать?
63K
05 августа 2011 года
maksimla
26 / / 25.07.2011
Есть такое еще задание на форме много разноцветных шариков. Первый шарик гонится за мышкой второй за первым и так далее. Сделать массив шариков
А я только сделал так
Код:
Dim X1(1000), Y1(1000), i, j As Integer



Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
i = i + 1
Text1.Text = i
X1(i) = X
Y1(i) = Y
Cls
If i > 25 Then Circle (X1(i - 25), Y1(i - 25)), 50
If i > 50 Then Circle (X1(i - 50), Y1(i - 50)), 50
If i > 75 Then Circle (X1(i - 75), Y1(i - 75)), 50
If i > 100 Then Circle (X1(i - 100), Y1(i - 100)), 50
If i >= 1000 Then i = 100

End Sub
327
05 августа 2011 года
UserNet2008
748 / / 03.04.2010
1)
Я вам только концепцию программы дальше сами
Создайте массив Image2() допустим из 10 пуль, массив можно располжить в любом месте формы т.к свойство Visible = Fasle

Код:
'число пуль  
Dim NumberBullets as Integer

Private Sub Form_Load()
    NumberBullets = 1
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Select Case NumberBullets
    Case IS <= 10
    Image2(NumberBullets).Visible = True
    Case Else
    NumberBullets = 0
End Select

NumberBullets = NumberBullets + 1

Timer1.Enabled = True
End Sub
 
Private Sub Timer1_Timer()

For i% = 1 To NumberBullets
' НУЖНО ЗАПОМНИТЬ ПОЗИЦИЮ КАЖДОЙ ПУЛИ. Для этого создаем массив memPosBulletX
' Примерно так дальше Вы сами.  
Image2(i).Left = Image2(i).Left + 20
If Image2(i).Left >= Form1.ScaleWidth Then
Image2(i).Left = 720
Next i

Timer1.Enabled = False

DoEvents

End If

End Sub


2)В модуле
 
Код:
Public Type myType
  x As Integer
  y As Integer
End Type


' в форме
 
Код:
Dim myArray(10) As myType

myArray(0).x = 100
myArray(0).y = 50
63K
06 августа 2011 года
maksimla
26 / / 25.07.2011
1) я немножко не то хотел. Я хотел чтобы неограниченное количество можно было выпустить пуль.
Ну еще на форме есть кнопка и текстовое поле в текстовое поля вводишь какое то число и оно создает столько то ячеек, text,label, circle. Неопределенное количество.

У меня были 1 курсовая работа на Visual studio 2005 с++ windows forms aplication в котором мне надо было сделать игру шарики http://games.rambler.ru/game/id/balls может и мог бы тоже так массив сделать но я хотел чтобы сами они создавались но не сделал я.

Или другую японский кроссворд http://www.bestcrosswords.ru/jp/ хотел сделать сперва чтобы пользователь вводил сколько надо создать ячеек и создавалось столько то. И задание было по кроссворду пользователь вводит все параметры а программа решает кроссворд. Я вот первое что хотел сделать это столько сколько пользователь напишет создать ячеек не создал. А дальше не пробовал.

2 )
Спасибо то что хотел.
327
06 августа 2011 года
UserNet2008
748 / / 03.04.2010
В VB6 динамический массив объектов создать нельзя. [COLOR="green"]Хотя!!! думаю можно пробовать через новый класс.[/COLOR]
А вот VB2010 без проблем, но в VB2010 нельзя создать массив объектов путем копирования объектов как это делалось в VB6. Очень странно почему Билл отказался.
Теперь только программно можно создать массив объектов.
63K
06 августа 2011 года
maksimla
26 / / 25.07.2011
Ну если нельзя в vb6 то тогда может покажете как в VB2010 так сделать как я хочу или так невозможно?
63K
07 августа 2011 года
maksimla
26 / / 25.07.2011
нашол уже что хотел только на vc++
47K
09 ноября 2011 года
DISStudio
4 / / 15.02.2009
Цитата: UserNet2008
В VB6 динамический массив объектов создать нельзя.



Как же
Load Image1(index) еще никто не отменял

327
12 ноября 2011 года
UserNet2008
748 / / 03.04.2010
Цитата:
Load Image1(index) еще никто не отменял



[COLOR="blue"]Load[/COLOR] - это загрузка массива, но не создания [COLOR="red"]динамического[/COLOR] массива. Должна быть директива [COLOR="blue"]NEW[/COLOR].
Если в вкраце Вы должны создать программно [COLOR="red"]НОВЫЙ[/COLOR] объект, а объекту нужны свойства, ну [COLOR="blue"]Load[/COLOR] здесь не при делах.
Я может Вас не правильно понял, дайте код. Как Вы создаёте [COLOR="red"]динамический[/COLOR] массив при помощи [COLOR="blue"]LOAD[/COLOR] покумекуем вместе.

7
12 ноября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Всё очень просто.Создаём объект с именем ImageArr,например,и ставим ему свойство Index в 0(изначально там пусто,НЯП).Затем с помощью Load ImageArr(i)(i=1…N) создаём новые экземпляры(с помощью Unload,соответственно,уничтожаем) и задаём им нужные свойства(если объект по умолчанию скрыт,ставим Visible=True)
327
12 ноября 2011 года
UserNet2008
748 / / 03.04.2010
@pixo $oft спасибо я правда в VB6 не программирую но на досуге посмотрю

Короче на VB6 вот это я сделать не смог

Код:
Dim NumberPic(0) As PictureBox

' изменить размерность массива без потери существующих данных
    ReDim Preserve NumberPic(5)

For i% = 1 To 5
      NumberPic(i) = New PictureBox
      'добавим события GotFocus, LostFocus, Click можно и другие

      AddHandler NumberPic(i).MouseEnter, AddressOf MyNumberPic_MouseEnter
      AddHandler NumberPic(i).MouseLeave, AddressOf MyNumberPic_MouseLeave
      AddHandler NumberPic(i).Click, AddressOf NumberPic_Click

      'добавим контролы для NumberPic
      Me.Controls.Add(NumberPic(i))
Next
7
12 ноября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Я давно программиров(ну как давно…относительно:)),и не раз контролы размножал
Надо учесть,что 1й контрол должен на форме присутствовать.Чисто из кода я вроде ни разу не создавал
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог