вопрос про текстбоккс

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

вопрос про текстбоккс

Сообщение Студентка » 13.06.2005 (Пн) 16:24

у меня на форме 2 текстбокса.
в 1 -м появляется значение 0.353434
мне нужно чтобы во втором это значение было целое т.е. 35
как это сделать, подскажите пожалуйста

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 13.06.2005 (Пн) 16:34

из 0.353434 целого не получишь... или тебя нужно 2 цифры поле запетой показать... то
Function Round(Number, [NumDigitsAfterDecimal As Long])

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: вопрос про текстбоккс

Сообщение VVitafresh » 13.06.2005 (Пн) 16:40

Студентка писал(а):у меня на форме 2 текстбокса.
в 1 -м появляется значение 0.353434
мне нужно чтобы во втором это значение было целое т.е. 35
как это сделать, подскажите пожалуйста


Если конкретно для указанного выше случая, то так:
Код: Выделить всё

Text2.Text = Round(Val(Text1.Text) * 100, 0)


А вообще не совсем понятно, что нужно получить в общей формулировке.
Последний раз редактировалось VVitafresh 13.06.2005 (Пн) 16:43, всего редактировалось 1 раз.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 13.06.2005 (Пн) 16:42

Может так:
Код: Выделить всё
Dim num As Double
num = 0.353434

Text1.Text = num

num = Round(num, 2)
num = Mid(num, 3)

Text2.Text = num
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 16:43

я написала код Text5.Text = Val(text1.Text) * 100
но он в текстовом поле 5 выдает 0
А значение в текстовом поле у мнея появляется в результате выполения одной процедуры.Т.е. я не заношу его туда сама.
Как поступить?

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 16:51

Вся загвоздка в том, что в текстбоксе1 данные постоянно меняются, т..е при нажатии кнопки у меня срабатывает процедура, котора отображает определенные значения в текстбоксе1.
мне нужно чтобы эти значения отображались в целом виде в тестбоксе 5.
То что вы мне написали работает если данные в тестбоксе не меняются, тогда в тестбоксе они отображаются в целом виде, т.е. в 100 раз больше.
т.к. данные обновляются постоянно, он мне в тестовом поле 5 даетс все врепмя 0. Почему? и как это можно исправить?

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 13.06.2005 (Пн) 16:52

из 0.35 ты никак не получишь целого числа, кроме одного конечно - 0.
оно тоже считается целым числом.
попробуй введи 1.35 например в коде Jenizix'a может сработает?
Пошли все на фиг, я фея! :flower:

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 13.06.2005 (Пн) 16:52

А мой код не работает?
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 16:53

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

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 16:58

Павлуша код который написал
VVitafresh вполне работает и получаю целое число 35, т.е. число большее в 100 раз.
Но это работает только в тех случаях когда число не изменяется постоянно, т.е. допуситм у меня при загрузке формы в одном тестбоксе прописана 3. я проверила этот код и у меня в другом тестбоксе поялвилось 300
Но...
про тот текстбокс ( Textbox5) что я говорю. я изначально не знаю какие там данные появятся, т.к. они результат процедуры, и эти данные почему то не хотят с помощью вышеперечисленного кода [bVVitafresh превращаться в целое число, у меня только 0 получается

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 13.06.2005 (Пн) 16:59

А после выполнения процедуры написать
Text2.Text = str$(CInt(Val(Text1.Text)*100)) Изображение
На это не смотрите! Это не подпись!!!!!!

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 13.06.2005 (Пн) 17:00

Студентка
Дай мне исходник твоей проги и код VVitafresh'a я посмотрю и может чего сделаю...
Пошли все на фиг, я фея! :flower:

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 13.06.2005 (Пн) 17:03

Вот рабочий код:
Код: Выделить всё
    Dim num As String

    num = Round(Val(Text1.Text), 2)
    num = Mid(num, InStr(1, num, ",") + 1)

    Text2.Text = num

И не нада мне тут лялятополя разводить )))))
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 13.06.2005 (Пн) 17:04

и все-же пусть даст мне сорцы - мне вдруг так интересно стало.. :)
Пошли все на фиг, я фея! :flower:

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 17:06

Alexander N. Samarin
все равно почему то не работает
вот текст процедуры:
Dim MyNeuron As clsNeuron
Set MyNeuron = New clsNeuron
With MyNeuron
.Synapses = 2
.Synapse(1) = 0.01

.Synapse(2) = 0.01
.Weight(1) = HScroll1.Value
.Weight(2) = -0.3
text1.Text = .Value

после ее выполнения в тестбоксе 1 поялвятеся какое-то десятичное значение
При вставке кода
Text5.Text = str$(CInt(Val(Text1.Text)*100))
В текстовом поле 5 появляетс я все -равно 0
хоя его я вставляю сразу после text1.Text = .Value

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 17:23

Павлуша
вот код формы:
Код: Выделить всё
Option Explicit
Dim MyNeuron As clsNeuron

Private Sub Command1_Click()
Dim num As String
Set MyNeuron = New clsNeuron
With MyNeuron
.Synapses = 2
.Synapse(1) = 0.01
.Synapse(2) = 0.01
.Weight(1) = HScroll1.Value
.Weight(2) = -0.3
Text2.Text = .Value
num = Round(Val(Text2.Text), 2)
num = Mid(num, InStr(1, num, ",") + 1)
Text3.Text = num
End With
HScroll1.Value = 25
End Sub

Private Sub Form_Load()
HScroll1.Min = 25
HScroll1.Max = 100
End Sub

Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
End Sub

Private Sub HScroll1_Scroll()
Text1.Text = HScroll1.Value
End Sub

вот код модуль который используется
Называтеся clsNeuron
Код: Выделить всё
Option Explicit

Private mvarSynapses() As Double
Private mvarWeights() As Double
Private mvarSynapsesNum As Long

Public Property Let Synapses(ByVal NewVal As Long)
If NewVal > 0 Then
ReDim Preserve mvarSynapses(1 To NewVal)
ReDim Preserve mvarWeights(1 To NewVal)
mvarSynapsesNum = NewVal
End If
End Property

Public Property Get Synapses() As Long
Synapses = mvarSynapsesNum
End Property

Public Property Get Synapse(ByVal Index As Long) As Double
If Index >= 0 And Index <= mvarSynapsesNum Then
Synapse = mvarSynapses(Index)
End If
End Property

Public Property Let Synapse(ByVal Index As Long, ByVal NewVal As Double)
If Index >= 0 And Index <= mvarSynapsesNum Then
mvarSynapses(Index) = NewVal
End If
End Property

Public Property Get Weight(ByVal Index As Long) As Double
If Index >= 0 And Index <= mvarSynapsesNum Then
Weight = mvarWeights(Index)
End If
End Property

Public Property Let Weight(ByVal Index As Long, ByVal NewVal As Double)
If Index >= 0 And Index <= mvarSynapsesNum Then
mvarWeights(Index) = NewVal
End If
End Property

Public Property Get Value() As Double
Dim s As Double
Dim i As Long

s = 0
For i = 1 To mvarSynapsesNum
s = s + mvarSynapses(i) * mvarWeights(i)
Next i
Value = Activation(s)

End Property

Private Function Activation(ByVal NET As Double)
Activation = 1 / (1 + Exp(-NET))

End Function

Private Sub Class_Initialize()
mvarSynapsesNum = 1
ReDim mvarSynapses(1 To 1)
ReDim mvarWeights(1 To 1)
End Sub

на форме 3 текстбокса, 1hscroll, и одна кнопка.
У меня не получатся может у тебя получится
Последний раз редактировалось Студентка 13.06.2005 (Пн) 18:02, всего редактировалось 1 раз.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 13.06.2005 (Пн) 17:29

Исполбзуй тег [syntax="vb"] дл выделения кода! Ок?
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 20:29

Кто нибудь знает ответ на мой вопрос???
ООООчень НУУУжно!!!!!

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

Сообщение Amed » 13.06.2005 (Пн) 20:41

Возможно, я не в тему, но на форуме ещё одна девушка появилась!!! RayShade, дай звание нашей новой прелестнице!

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

Сообщение Amed » 13.06.2005 (Пн) 20:44

А если не
Код: Выделить всё
Text5.Text = str$(CInt(Val(Text1.Text)*100))
, а
Код: Выделить всё
Text5.Text = str$(CInt(.Value*100))
?

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

Сообщение RayShade » 13.06.2005 (Пн) 20:47

Рано ей еще звание давать :) После 300 постингов, по традиции, дадим.

Если придумаем :)

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 21:46

Amed

Код: Выделить всё
Text5.Text = str$(CInt(Val(Text1.Text)*100))

работает, но только в том случае если я еще напишу
Код: Выделить всё
 
Private Sub Text5_Change()
Text5.Text = text1.Text * 100
End Sub

в противном случае, если такую фразу не пишу, он в тестовом поле 5 возвращает 0
проблема моя в том, что мне данные из этого текстового поля 5 надо запсать в БД
я могу записать данные из тестового поля 1 в БД, но мне нужно целое число.
если я поставлю для тестового поля 5 datafield=sr datdsourse = adodc2,
т.е. такие данные какие я ставлю для текстового поля 1, то
он мне пишет type mismatch
указывает на строку
Код: Выделить всё
Text5.Text = text1.Text * 100

и пишет Unable to bind to field or datamember :'sr'

если я удаляю строку
Код: Выделить всё
Text5.Text = text1.Text * 100

то в текстовом поле 5 возвращается 0.

Если указываю для текстового поля 1 где получаются десятичные числа datafield=sr datdsourse = adodc2 и при наличии строки
Код: Выделить всё
Text5.Text = text1.Text * 100

в поле 5 все считается, но мне это число никак в БД не записать...
что делать???

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 22:10

все коды что написаны здесь вами работают, в том смысле что число у меня увеличивается в 100 раз.
я пробавала на примере, вввожу в тестбокс 0.2323232
он мне выдает 23
но в моем случае
в тестбоксе 5 число не становится целым, оно принимает вид 23,232323

что я делаю неправильно?
мне нужно чтобы просто было 23
хотя даже я исаользую значение тестбокса в msgboxe
Код: Выделить всё
str1 = "риск инвестиций оценен как с редний с вероятностью" & Round(CDbl(text1.Text) * 100, 0) & " % . результат внесен в отчет"
MsgBox str1

и у меня в сообщении выводит целое число!

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 13.06.2005 (Пн) 22:20

С этим я разобралась..
у меня встречный вопрос..
я получила значние 56 на label1
но у меня в базу оно заносится как 5,61438E+19
почему? и что сделать, чтобы оно в БД было тоже целым?

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

Сообщение Amed » 13.06.2005 (Пн) 23:27

С предыдущим всё понятно? Надо ещё Fix или Int применить к числу, чтобы отбросить дробную часть (округлить как вариант).

5,61438Е+19 - это не 56, совсем не 56. Это даже не 5,61438Е+1. Это 5,61438*10^19. Проверяйте код, девушка. Где-то лажа прячется.

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 14.06.2005 (Вт) 6:18

Amed
А как это сделать? как применить к числу fix или int?

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.06.2005 (Вт) 7:53

Студентка писал(а):Amed
А как это сделать? как применить к числу fix или int?

x=int(Твоё число)
x=Fix(Твоё число)

Код: Выделить всё

Fix(23.154332) ' на выходе получаем 23
Int(23.154332) ' на выходе получаем 23
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 14.06.2005 (Вт) 13:54

Ruslan Demidow
Извини, может вопрос мой тупой слегка, но я не знаю изначально какое число получу в процедуре, можно вместо числа подставить
val( text1.text) или как тогда сделать??

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

Сообщение uhm » 14.06.2005 (Вт) 14:00

Можно, можно.

[off]
Студентка, где же ты учишься-то?
[/off]

Студентка
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 06.06.2005 (Пн) 18:40

Сообщение Студентка » 14.06.2005 (Вт) 17:40

uhm
ну я уже не учусь практически... :)))
а это точно работать будет?

След.

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

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

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

    TopList