поможите люди добрые

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

поможите люди добрые

Сообщение Naked » 12.08.2005 (Пт) 3:34

Как с помощью API узнать индекс элемента в массиве элементов

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.08.2005 (Пт) 4:57

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

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 12.08.2005 (Пт) 6:23

шо не так?
т.е индекс контрола

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 12.08.2005 (Пт) 9:49

оставлен на второй год...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 12.08.2005 (Пт) 10:43

я в шоке :shock:
Весь мир матрица, а мы в нем потоки байтов!

VINNY-PYX
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 125
Зарегистрирован: 02.02.2004 (Пн) 17:24
Откуда: из роддома

Сообщение VINNY-PYX » 12.08.2005 (Пт) 10:49

У меня сердечный приступ... вызовите скорую... аррр.... ах.... (все, умер)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.08.2005 (Пт) 10:51

А зачем, именно с помощью API то ? :shock:

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 12.08.2005 (Пт) 12:26

потому что с АПИ это очень готично...

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 12.08.2005 (Пт) 14:11

Naked
Вообще Control.Index, а как ты к нему обращаешься, если индекса не знаешь?

А вот как с помошью АПИ - даже не знаю. VarPtr(Control) - указатель на объект - а дальше через CopyMemory попробовать вытащить из памяти класса свойство index...
Программисты не глючат - глючат компиляторы...

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 15.08.2005 (Пн) 1:43

Если не знаете ответа на этот вопрос, то избавьте от своих насмешек.
Звезд вроде много а помощи никакой...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.08.2005 (Пн) 11:33

Код: Выделить всё
Private a(1 To 500) As Integer
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

Private Function search(number As Integer) As Integer
Dim j As Integer
For j = 1 To 500
If a(j) = number Then
MessageBox Form1.hwnd, "Нашёл!!!", "Ура!!!", 0
search = j
Exit For
End If
Next j
End Function

Private Sub Form_Load()
Dim i As Integer
Dim res As Integer
Randomize
For i = 1 To 500
a(i) = Rnd * 500
Next i

res = search(25)
End Sub

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.08.2005 (Пн) 11:45

Amed ГЫ! Действительно апи присутствует, но можно тада проще.

Массив кнопок Command1:
Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)

Private Function SearchControl(nControl, ArrayControls) As Long
Dim i As Long, IB As Long, IC As Long
IC = ArrayControls.Ubound
IB = ArrayControls.lbound

For i = IB To IC
    If nControl.Index = ArrayControls(i).Index Then
        Sleep 1: SearchControl = i: Exit Function
    End If
Next
SearchControl = -1
End Function

Private Sub Command1_Click(Index As Integer)
MsgBox SearchControl(Command1(Index), Command1)
End Sub


А вот это самый простой способ ;):
Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)

Private Sub Command1_Click(Index As Integer)
Sleep 1
MsgBox Index
End Sub
Программисты не глючат - глючат компиляторы...

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 15.08.2005 (Пн) 11:46

Naked писал(а):Если не знаете ответа на этот вопрос, то избавьте от своих насмешек.
Звезд вроде много а помощи никакой...

Каков вопрос - таковы и ответы.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 17

    TopList