Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Как определить кнопку Cancel в InputBox?

Поиск:
Alan Young еще в 2002 году :) написал следующее:
You display an InputBox. But did the user press Cancel - or OK without entering anything? If you thought there was no way to tell the difference, you're wrong.

You see, if the user presses cancel, vbNullString is returned. However if they press OK, the empty string ("") is sent back. But in Visual Basic, vbNullString equates to an empty string, so you can't compare the two - even though in reality, they're completely different.

However you can use the StrPtr ('string pointer') function to determine whether the return string is indeed a vbNullString - as by definition, a vbNullString 'pointer' is zero.

And this code demonstrates how to do that.
Код

Dim strInput As String

strInput = InputBox("Enter something:")

If StrPtr(strInput) = 0 Then
    MsgBox "You pressed cancel!"
End If

www.developer.com

То есть то, что я тогда написал превращается в
Код

Option Explicit

Private Sub Command1_Click()
Dim Message As String
Dim Title As String
Dim MyValue As String
Message = "Имя пользователя"   ' Set prompt.
Title = "Введите ваше имя"

Do While True
  MyValue = InputBox(Message, Title, "")
  If MyValue = "" And StrPtr(MyValue) <> 0 Then
     MsgBox "Укажите ваше имя", vbOKOnly + vbCritical, "Ошибка"
  Else
     Exit Do
  End If
Loop

If MyValue <> "" Then MsgBox "Привет, " & MyValue & "!"
End Sub
Автор: cardinal






Просмотров: 3006

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную