Как выбрать одну из двух?

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

Как выбрать одну из двух?

Сообщение HugoFlex » 05.11.2004 (Пт) 19:11

Есть такой код
Код: Выделить всё
Shift = Getasynckeystate(vbKeyShift)
Ctrl = Getasynckeystate(vbKeyControl)
   
If Ctrl = 0 And (Shift And &H1) = &H1 Then
    Text1 = Text1 + " {Shift} "
End If

If Ctrl <> 0 And (Shift And &H1) = &H1 Then
        ActivateKeyboardLayout HKL_NEXT, 0
        Text1 = Text1 + " {CtrlShift} "
End If
   
If Shift = 0 And (Ctrl And &H1) = &H1 Then
    Text1 = Text1 + "{Ctrl}"
End If

If CapShf <> True Then
   ActivateKeyboardLayout HKL_NEXT, 0
   Text1 = Text1 + " {ShiftCtrl} "
End If

При одновременном нажатии кнопки Ctrl+Shift вызываются сразу два условия. Как мне сделать так, чтобы я смог выбрать одну из них но ни сразу вместе? :?: Возможно ответ к этому простой, но мне ни что ни приходит в голуву :(
Читай не затем, чтобы противоречить и опровергать, не затем, чтобы принимать на веру и не затем, чтобы найти предмет для беседы, но чтобы мыслить, рассуждать и мечтать.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.11.2004 (Пт) 19:17

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

ElseIf ...

End If

Правда, тогда приоритет выбора будет определяться порядком следования проверок в твоем коде.

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 06.11.2004 (Сб) 5:01

Такой способ мне явно не подходит. Надо чтобы проверка проводилась для двух сочетании
Читай не затем, чтобы противоречить и опровергать, не затем, чтобы принимать на веру и не затем, чтобы найти предмет для беседы, но чтобы мыслить, рассуждать и мечтать.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 06.11.2004 (Сб) 6:08

Я не совсем понимаю, что ты хочешь сделать, но может подойдет select case? А там уже в вариантах ставить проверку на второе условие.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 06.11.2004 (Сб) 6:46

Дело в том, что я проверяю не нажал ли пользователь на клавиатуре сочетание клавиш Ctrl+Shift. А если нажал то он должен поменять раскладку. Так вот, когда я нажимаю сначала Shift, затем Ctrl все работает нормально. Но когда я нажимаю одновременно на обе клавиши одновременно то раскладка менятся сначала например на русскую а потом на английскую, т.е вызываются сразу две условия :( (сначала для Ctrl+Shift, потом Shift+Ctrl). А мне надо чтобы вызывалось только одно при нажатии одновремнно на эти клавиши
Читай не затем, чтобы противоречить и опровергать, не затем, чтобы принимать на веру и не затем, чтобы найти предмет для беседы, но чтобы мыслить, рассуждать и мечтать.

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

Сообщение GSerg » 06.11.2004 (Сб) 10:48

Ой, какое извращение...
Брррр...


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


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

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

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

    TopList