Как ввести с клавиатуры в фоне?

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

Как ввести с клавиатуры в фоне?

Сообщение kibernetics » 20.07.2006 (Чт) 13:47

Уважаемые программеры!
как на форме можно реализовать следующий алгоритм:
есть форма, на ней Label. нужно: юзер набирает на клавиатуре номер, как бы в фоне, а после нажатия кнопки ввод, этот номер отображался в Label'e. Т.е. чтоб вводимые с клавиатуры кнопки вводились в буфер в фоне, а потом отображались на экране.
1. пустой экран
2. юзер набрал 15
3. ввод, и номер высвечивается в Label
Максимальное число двухзначное.
Очень горит, нужно сделать викторину. Подсобите кодом.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.07.2006 (Чт) 14:04

Вот код:
Код: Выделить всё
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Caption = Tag Else Tag = Tag & Chr(KeyAscii)
End Sub

Номер высвечивается в заголовке формы. Прикрутить лейбл -- домашнее задание.
Изображение

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 20.07.2006 (Чт) 14:25

tyomitch
фантастика! работет! огромаднейшее спасибо. детки будут рады новой игре...

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 20.07.2006 (Чт) 14:58

блин, столкнулся опять с проблемой.
если ввел, допустим, 15, то во второй раз число дописывается следом. а нужно, чтоб предыдущее число удалялось.
я так делаю:
Код: Выделить всё
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Label1.Caption = Empty
    Tag = Empty
If KeyAscii = 13 Then
    Tag = Tag & Chr(KeyAscii)
    Label1.Caption = Tag
    End If
End Sub

но ничего не работает. tyomitch натолкните как правильно сделать

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

Сообщение uhm » 20.07.2006 (Чт) 16:12

А можно я "натолкну"? :lol:

Код: Выделить всё
Private Sub UserForm_KeyPress(ByVal KeyAscii As Integer)
If KeyAscii = 13 Then
    Label1.Caption=Tag
    Tag=""
Else
    Tag = Tag & Chr(KeyAscii)
End If
End Sub


ЗЫ А откуда взялось ByVal KeyAscii As MSForms.ReturnInteger ?!
Быть... или не быть. Вот. В чём вопрос?

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 20.07.2006 (Чт) 17:31

uhm писал(а):ЗЫ А откуда взялось ByVal KeyAscii As MSForms.ReturnInteger ?!


дело в том, что при написании этого кода в ВБ6, редактор вываливается с ошибкой. Именно тогда, когда в строчке пишешь вставляешь в форму элемент Label. Точнее, барахлит конкретно эта строчка: If KeyAscii = 13 Then Label1.Caption = Tagя уже 2 раза перестанавливал ВБ. всегда ошибка. другие коды работают нормально, а этот вываливается...
а программка очень нужна, поэтому я решил её на ВБА под ексель написать, отсюда и ByVal KeyAscii As MSForms.ReturnInteger.
Но, не всё так гладко :(. как можно сделать, чтоб форма в екселе (т.к. в ВБ неработает у меня код) форма не имела рамки и разворачивалась на весь экран, в том числе и перекрывала строку пуск. Хочется создать впечатление настоящей игры, чтоб люди не видели строки под программой и рамок окна. Просто черный фон на весь экран и посередине белые буквы (Label).
Выручите, надо к празднику подготовится

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 21.07.2006 (Пт) 15:02

Cкажите, хоть кто-нибудь. Удавалось ли кому-то развернуть форму в Екселе на весь экран и чтоб окно было без рамки?
Мучаюсь уже второй день :cry:

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

Сообщение uhm » 21.07.2006 (Пт) 15:51

Удачно срезюмировал :lol:
Быть... или не быть. Вот. В чём вопрос?

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 24.07.2006 (Пн) 13:43

всё перепробовал. ничего не получается. вылетает ВБ.
поставил на другую машину. заработало.

объясните еще пожалуйста, как запустить видеоролик в максимальном режиме? это делается с помощью контрола windowsmediaplayer?
[/img]

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 24.07.2006 (Пн) 14:06

Код: Выделить всё
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim blnUnload As Boolean
If KeyAscii = 27 Then blnUnload = True
If KeyAscii = 13 Then
    Label1.Caption = Empty
    Label1.Caption = Tag
    Tag = Empty
    Else
    Tag = Tag & Chr(KeyAscii)
    End If
    If blnUnload = True Then Unload Me
End Sub

Private Sub Form_Load()
    Me.Width = Screen.Width
    Me.Height = Screen.Height
    Me.Left = 0
    Me.Top = 0
End Sub

вот мой код. пожалуйста! напишите кусочек кода, который позволял по кнопке "P" запускать видео на весь экран

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 24.07.2006 (Пн) 14:54

хотя бы не на весь экран, а просто запустить это видео. не могу разобраться ни с одним контролом.
есть:
MMControl
WindowsMediaPlayer
подскажите пожалуйста код, для запуска видео.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 24.07.2006 (Пн) 16:45

я замучился, но в итоге немного победил. эти вышеуказанные контролы какие-то ущербные. нужно было дополнительно открыть msdxm.ocx, потому что их в стандартной библиотеке не было и юзать свойства плеера 6.4. всё работает...
теперь вот мучаюсь еще с одной проблемкой... как это сделать так, чтобы в переменную allpresed запоминались все введенные цифры через запятую?

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 24.07.2006 (Пн) 19:21

Насчёт видео - подключаешь Microsoft Multimedia Control, кидаешь на форму. Ещё кидаешь PictureBox. Туда и будет выводиться видео. В коде пишешь:
Код: Выделить всё

Sub PlayMyVideo()
    MMC1.Notify = False
    MMC1.Wait = True
    MMC1.Shareable = False
    MMC1.hWndDisplay = Picture1.hwnd
    MMC1.DeviceType = "AVIVideo"
    MMC1.FileName = App.Path & "\MyCoolVideo.avi"
    MMC1.Command = "Open"
    MMC1.Command = "Play"
End Sub

Здесь Picture1 - это пикчурбокс. Код из какого-то старого проекта.

А это - корд из предыдущего поста, дополненный проигрыванием видео по кнопке p и запоминанием всех символов
Код: Выделить всё

Private Sub Form_KeyPress(KeyAscii As Integer)
Dim blnUnload As Boolean
If KeyAscii = 27 Then blnUnload = True
If KeyAscii = 13 Then
    Label1.Caption = Empty
    Label1.Caption = Tag
    Tag = Empty
ElseIf KeyAscii = 231 Or KeyAscii = 199 Or KeyAscii = 112 Or KeyAscii = 80 ' Это нажали p
     PlayMyVideo
Else
    Tag = Tag & Chr(KeyAscii)
    If AllPressed <> "" Then AllPressed = AllPressed & ", "
    AllPressed = AllPressed & Chr(KeyAscii)  ' Здесь запоминаются все введённые символы
    End If
    If blnUnload = True Then Unload Me
End Sub
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 03.08.2006 (Чт) 17:28

Tarik
спасибо, дружище, ввсё получилось :)


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

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

Сейчас этот форум просматривают: Mail.ru [бот], Yandex-бот и гости: 49

    TopList