Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Textbox и Кнопка


Автор: Vadok 22.12.2003, 20:02
Люди помоги плиз .....у меня такая проблема : у меня на форме два textbox`a и одна кнопка ...
кнопка когда на ниё кликаешь должно появиться слово " привет" .......но мне надо что бы это слово появлялось в том textbox"е в котором я нахожусь!!!! exclamation.gif

Автор: cardinal 22.12.2003, 20:46
Помести на форму два TextBox по имени Text (с разными Index) и кнопку.

Код
Dim pointer As Integer

Private Sub Command1_Click()
Text(pointer).Text = "Привет!"
End Sub


Private Sub Text_LostFocus(Index As Integer)
pointer = Index
End Sub



Автор: ssb 22.12.2003, 20:49
Делаешь переменную, в которой будет содержаться имя активного текстбокса. Каждму из ник в собітии focus (или как там еще?) прописываешь присвоение этой переменной определенного имени. При клике на кнопке проверяешь значение переменной.

Автор: Vadok 22.12.2003, 21:52
у меня ещё есть кнопка которая должна очищать сожержимое всех textbox ....но так как у меня
2 textbox`a с одинаковым именем ...то он показует ошибку... .....чё делать...confused.gif

Автор: cardinal 22.12.2003, 22:39
Код
Private Sub Command1_Click()
Dim n As Object
For Each n In Text
n.Text = ""
Next
End Sub

Автор: Vadok 22.12.2003, 23:19
пасибо... БОЛЬШОЕ ...но у меня ещё вопрос.....когда я написал в ручьную какоето слово в textbox а потом нажал клавишу которая добовляет слово " привет" .. и у меня то что я напечатал ...поменялось все на " привет " ...мне надо что бы к тому что есть добовлялось слово "привет"

Автор: Vadok 22.12.2003, 23:22
ВСЁ БОЛЬШОЕ СПАСИБО,,,,,,я РАзобрался...

Автор: Vadok 23.12.2003, 00:01
а как мне прибавить то что у меня в 1 textbox + 2 textbox = 3 textbox

тоисть например если я ввожу число в 1 textbox "1" а во втором 2 textbox " 2" то в третем должно получиться "3"

Автор: kostik_16 23.12.2003, 00:26
Если тебе надо приьавить строки, то пишешь:
text3.text = text1.text & text2.text

Если числа, то:

text3.text = text1.text + text2.text

Вот так!!!!!!!!

Автор: Vadok 23.12.2003, 01:18
у меня textbox первый и второй называеться одинаково у них только разные Index()

Автор: shilnik 23.12.2003, 05:55
text(3).text = text(1).text + text(2).text

Автор: Vadok 23.12.2003, 07:48
оно не прибовляет а одно соединяет с другим.....например :
text(1).text = 1 а в text(2).text = 2 то в text(3).text получанться "12"

Автор: shilnik 23.12.2003, 10:56
Элементарно: text(3).text = text(1).text & text(2).text

Автор: shilnik 23.12.2003, 10:57
Цитата(Vadok @ 23.12.2003, 00:01)
а как мне прибавить то что у меня в 1 textbox + 2 textbox = 3 textbox

тоисть например если я ввожу число в 1 textbox "1" а во втором 2 textbox " 2" то в третем должно получиться "3"

Так что все-таки надоconfused.gifconfused.gif?

Автор: cardinal 23.12.2003, 15:37
kostik_16, ты сам пробовал, что написал?
shilnik, вопрос поставлен понятно, в след. раз сначала думать, а потом писать.
Товарищи я в этой теме уже нашел 3 бесполезных ответа.
Мы здесь не для того чтобы набирать очки за ответы, а для того чтобы помогать друг другу.

Вот то, что человек хотел:
Код
Text(2) = CInt(Text(0)) + CInt(Text(1))

Автор: Vadok 23.12.2003, 19:57
cardinal да это то что нужно...пасибо......тему можно уже закрыть......

Автор: Black_Star 8.1.2004, 20:15
Цитата
Вот то, что человек хотел:
Код
Text(2) = CInt(Text(0)) + CInt(Text(1))


Я так не думаю. В этом коде есть ошибка
Дело в том, что при text(1)="" произойдет ошибка sad.gif
Попробуйте так:
Код
Text(2)=Val(Text(0))+Val(Text(1))

Автор: cardinal 8.1.2004, 22:31
Цитата
Я так не думаю. В этом коде есть ошибка

Пока ее там нет smile.gif.
Человек спроосил:
Цитата
если я ввожу число в 1 textbox "1" а во втором 2 textbox " 2" то в третем должно получиться "3"

Я ему и ответил, а для того чтобы все всегда работало так как хочется надо проверять содержание TextBox`ов и соответственно реагировать.
p.s.
Код
Text(2)=Val(Text(0))+Val(Text(1))

car + dinal = 0 wow.gif smile.gif

Автор: Black_Star 9.1.2004, 22:20
Все верно! Так и должно быть, а ты попробуй в своем примере что-нибудь написать... smile.gif
Сразу скажет Error. А все потому, что Text(1)="". А дабы не делать проверку на "" и на IsNumeric мой вариант оптимален smile.gif
А если хочешь, чтобы получилось Cardinal , надо так:
Код
Text(2)=Text(0) & Text(1)

А дабы ваще оригинально было, стоит вначале проверить Text(0) и Text(1) на IsNumeric, а потом вабрать метод сложения biggrin.gif

Автор: cardinal 9.1.2004, 22:50
Цитата
car + dinal = 0

Да я хотел сказать, что сделали мы то, что дает нам непонятный результат. Ошибку должен выдавать, а мы должны на нее реагировать.
Цитата
А дабы не делать проверку на "" и на IsNumeric мой вариант оптимален

В том то и дело, что делать ее надо, а все остальное - это плохой стиль программирования (мое личное мнение) потому, что в длинной проге мы потом долго будем искать возникновение ошибки (если забудем о встроеной нами отличной подставе). Мы допустили, что пользователь не ввел никакого значения, а потом удивляемся почему наш пентюк полчаса трещал и выдал результат, который нас не удовлетворяет. Ну опечатался пользователь и ввел 76н6 + 54 и что за результат он получит? Вообще надо пользоваться компонентом Microsoft Masked Edit Control в таких ситуациях.
Цитата
А если хочешь, чтобы получилось Cardinal , надо так...

Спасибо! rolleyes.gif

Автор: Black_Star 9.1.2004, 23:02
Ну в чем проблема?
Код

If IsNumeric(Text(0)) And IsNumeric(Text1(1)) Then
  Text(2)=Text(0)+Text(1)
  Else
  Text(2)=Text(0) & Text(1)
End If

Автор: Vadok 10.1.2004, 00:03
блин всё и так работало ...чё вы опять начинаетеconfused.gif

Автор: Vadok 10.1.2004, 00:07
лутше...помогите над темой " Сохранение" ....

Автор: cardinal 10.1.2004, 04:12
Black_Star, не ты меня не понял. Проблемы тут нет - просто или у тебя калькулятор или у тебя слеплялка текста smile.gif, а смысла в двух вещах одновременно я не вижу. Поэтому один из случаев надо исключать либо с помощью "маски", либо сообщением об ошибке.
Vadok, ну ты блин даешь! Я даже тему в FAQ открыл:
http://forum.vingrad.ru/index.php?act=ST&f=33&t=16498
Тебе уже все объяснили!
Если ты хочешь, чтобы за тебя все сделали, то пиши в раздел "Работа" exclamation.gif

Автор: Vadok 10.1.2004, 19:13
cardinal да там всё только через АРИ функции.... мне всё равно что через ini что через dat всё равно ...просто надо что бы прога читала то что написано в том файле в который она сохроняет...и всё ..там не нужны АПИ функиции ...



Автор: cardinal 10.1.2004, 20:05
Цитата
там не нужны АПИ функиции

Нужны, не нужны... Какая разница? Результат важен, а он будет именно такой как ты хочешь. Я не понимаю почему ты так боишься API. Ну сложно по началу, но дак так всегда.
Ну а если не хочешь API, то используй Write, Print, Read, Get или Put - что тебе больше нравиться. Как уже давно было написано на форуме - надо только поискать.

Автор: Black_Star 10.1.2004, 21:13
Цитата
Нужны, не нужны... Какая разница? Результат важен!

Полность поддерживаю !!! smile.gif

Автор: Vadok 10.1.2004, 21:36
cardinal я пишу проги ...методом изучения....и до АПИ функций я ещё не дошёл...

Автор: Guest 15.12.2004, 11:20
Подскажите как мне сделать следующее:


Private Sub TextBox1_Change()
??????????? - необходимо чтобы значение textbox записывалось в ячейку А1 на листе1
End Sub

Автор: Akina 15.12.2004, 11:53
Цитата(cardinal @ 23.12.2003, 16:37)
Text(2) = CInt(Text(0)) + CInt(Text(1))

Цитата(cardinal @ 8.1.2004, 23:31)
Text(2)=Val(Text(0))+Val(Text(1))

Господа, у текстбокса есть свойство Value...

Автор: boevik 15.12.2004, 12:37
Цитата(Akina @ 15.12.2004, 11:53)
Цитата(cardinal @ 23.12.2003, 16:37)
Text(2) = CInt(Text(0)) + CInt(Text(1))

Цитата(cardinal @ 8.1.2004, 23:31)
Text(2)=Val(Text(0))+Val(Text(1))

Господа, у текстбокса есть свойство Value...

Akina, мы говорим о VB6?
С каких это пор у текстбокса есть свойство Value?

Автор: cardinal 15.12.2004, 15:37
Да и вообще теме год как исполнился, может соберемся и отметим? smile
Модератор: Пожалуйста, один топик - один вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)