Ощибка -Compile error:

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Ощибка -Compile error:

Сообщение Nick202 » 26.03.2006 (Вс) 16:53

Я только недавно начал изучать VB по учебнику повторяя все действия я всё время сталкиваюсь с одной и той же ошибкой Compile error:Sub or Function not defined и прога не работает : .Как исправить? :?

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

Сообщение Amed » 26.03.2006 (Вс) 16:56

Добро пожаловать в стройные ряды!
1) Переведи название ошибки и "догадайся", в чем дело.
2) Приведи пример кода, без него ничего непонятно.

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 26.03.2006 (Вс) 17:02

Private Sub Slider1_Change()
Label1.Caption = StrS(Slider1.Value)
Label3.Caption = StrS(Slider1.Value * Slider2.Value)
End Sub

Private Sub Slider2_Change()
Label2.Caption = StrS(Slider2.Value)
Label3.Caption = StrS(Slider1.Value * Slider2.Value)
End Sub
Еще есть две надписи (Label) Желтым цветом обводиться первая строчка тип ошибка.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 26.03.2006 (Вс) 17:05

StrS измени на Str$
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 26.03.2006 (Вс) 17:28

Спасибо!Всё пошло :D

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 27.03.2006 (Пн) 15:27

Не хотелось бы создавать еще одну пустяковую тему поэтому не буду :D :D . Где ощибка :( искал не нашёл
Private Sub HScrol1_Change()
If num Then
Shape1.Left = HScroll1.Value
Else
Shape2.Left = HScroll1.Value
End If
End Sub
(num это переменная)

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

Сообщение RayShade » 27.03.2006 (Пн) 15:29

После ELSE я бы поставил : (сразу, без пробела Else: )

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 27.03.2006 (Пн) 15:34

Спасибо!А тут что не так я думал тут тоже самое а оказывается не так то просто.
Private Sub VScroll1_Change()
If num Then
Shape1.Top = VScroll1.Value
Else:
Shape2.Top = VScroll1.Value
End If
End Sub

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

Сообщение RayShade » 27.03.2006 (Пн) 15:44

Текст ошибок я думаю, нодо бы приводить.

Или хотя бы код чтоли :)

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 27.03.2006 (Пн) 15:59

.Top = вот ощибка или это нето (Method or data member not found)

Nick202
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.03.2006 (Вс) 15:47

Сообщение Nick202 » 27.03.2006 (Пн) 18:52

.....

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

Сообщение RayShade » 28.03.2006 (Вт) 10:18

Может, у тебя буква русская в названии проперти? ;)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.03.2006 (Вт) 10:24

У тебя вообще есть такой объект на форме - shape1?
Быть... или не быть. Вот. В чём вопрос?

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

Сообщение RayShade » 28.03.2006 (Вт) 10:49

Не. Если бы такого объекта не было, то ошибка была бы Object Required (424). А тут именно есть объект, но у него проперти нет.

Может он просто, русские буквы туда случайно написал ;)

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 28.03.2006 (Вт) 12:27

Nick202 писал(а):.Top = вот ощибка или это нето (Method or data member not found)

Выложи код, а не "обрубки"!

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

Сообщение GSerg » 28.03.2006 (Вт) 12:36

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

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 28.03.2006 (Вт) 12:40

GSerg
Имеешь в виду это:
Код: Выделить всё
Private Sub VScroll1_Change()
If num Then
Shape1.Top = VScroll1.Value
Else:
Shape2.Top = VScroll1.Value
End If
End Sub

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

Сообщение RayShade » 28.03.2006 (Вт) 13:06

Да, боюсь он имеет в виду именно это :)

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 28.03.2006 (Вт) 13:14

Ну в любом случае - работает. Только после Else двоеточие - НЕ надо. ААА ошибка может быть потому, что он кинул на форм какой-то контрол (явно - не Shae)/ Скорее всего - Line. А вообще - :?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 28.03.2006 (Вт) 14:59

т.е. Ты кинул контрол у которого нет такого свойства и назвал его Shape1?

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 28.03.2006 (Вт) 16:06

GAGArin
Ты у кого спрашивешь, не у меня ли? Ведь всё это лишь мои предположения о том, какую ошибку мог допустить Nick202

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 28.03.2006 (Вт) 19:11

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

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 28.03.2006 (Вт) 19:16

FAKK2
А контрол Line тоже по-твоему имеет св-во Top, вот скорее всего он и спутал Shape c Line, да потом ещё и переименовал :lol: Сколько же нужно выпить, чтобы такое тварить (если конечно мои предположения истины) :lol: :lol: :lol:

Tamplier
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 183
Зарегистрирован: 18.11.2005 (Пт) 13:35
Откуда: Москва

Сообщение Tamplier » 29.03.2006 (Ср) 8:24

19:11

Под вечер писал. Устал, наверно. Вот и пишет че-то не то....

Roman-vb
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 24.01.2006 (Вт) 18:31
Откуда: БРЯНСК

Сообщение Roman-vb » 29.03.2006 (Ср) 15:22

Tamplier
Ну точно, под вечер, да ещё и пьяный! :D

Krioss McKill'em
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 09.05.2006 (Вт) 2:06

Сообщение Krioss McKill'em » 09.05.2006 (Вт) 2:13

помогите плиз

Private Sub Command1_Click()
For i = 1 To 8
Ng(i) = InputBox("Enter city name")
Label(i).Caption = "Ng(i)"
Next

выдаёт опять же "Sub or Function не определено" и выделяет Label. Label Есть! если вынести отдельно цикл с лейблом на отдельную кнопку, то inputbox работает, а Лэйбл снова Нет.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 09.05.2006 (Вт) 2:57

Вот это да!!!!
Никогда не видел, чтоб человек за полтора месяца не сдвинулся в VB ни на шаг +_+

Во-первых, по смыслу:
Label(i).Caption = "Ng(i)"
замени на
Label(i).Caption = Ng(i)

Во-вторых:
Ты уверен, что создал массив Label'ов (видно из "Label(i)")?
В-третьих - никогда не видел, чтоб Label1 переименовывали в Label =)

Krioss McKill'em
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 09.05.2006 (Вт) 2:06

Сообщение Krioss McKill'em » 09.05.2006 (Вт) 9:59

Полтора месяца это про меня? С чего? Не, я совсем недавно.
Всё, теперь всё получилось. Просто до этого было Label1, label2... а теперь Labe1(0), Label1(1)... Ну и кавычки конечно убрал.
Спасибо.

Krioss McKill'em
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 09.05.2006 (Вт) 2:06

Сообщение Krioss McKill'em » 10.05.2006 (Ср) 13:34

For c = 2 To N
f = c + 2
If f <= N Then List1.RemoveItem f
Next

Опять не пашет! говорит что неправильно функция или аргумент. Но итемы при этом сперва удаляет! Хочу чтоб удалял, а потом по аналогии сделать с "с = 3 to N"... f = c+3... в общем чтоб оставил только простые числа. (или это можно коротко задать??)

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

Сообщение Viper » 10.05.2006 (Ср) 13:44

Если N это число элементов, то при f = N происходит попытка удаления элемента за пределами списка, поскольку нумерация начинается с 0. Это во-первых, а во-вторых, при удалении элементов из списка их исло уменьшается и N не будет соответствовать числу элементов списка. Можно попробовать удалять с конца, например

For i = N - 1 To 0
List1.RemoveItem i
Next i
Весь мир матрица, а мы в нем потоки байтов!

След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 143

    TopList