Basic
5 отговора
248 прегледа
Basic
как в текстово поле да правя справка при натискане на бутон дали са въведени само числа. Без букви.
Re: Basic
CString str = m_ctrlEditBox.GetWindowText();
int nLenght = str.GetLength();
for (int i = 0; i < nLength; i++)
{
if (!isdigit(str))
{
//syob6tenie za gre6ka
}
}
stoj, ta gledaj
int nLenght = str.GetLength();
for (int i = 0; i < nLength; i++)
{
if (!isdigit(str))
{
//syob6tenie za gre6ka
}
}
stoj, ta gledaj
Или пък ...
::SetWindowLong(hwnd, GWL_STYLE, ::GetWindowLong(hwnd, GWL_STYLE) | ES_NUMBER)
Re: Basic
Predpolagam che iskash da vidish reshenie na VB ne na C :))
Seshtam se mai za edna fynkcia IsNumeric ili neshto takova no eto edin primer:
If IsNumeric(Text1.Text) Then
MsgBox "V poleto e napisano chislo"
Else
MsgBox "V poleto ne e napisano chislo"
End If
Probvai pa moje i da stane :))))

Seshtam se mai za edna fynkcia IsNumeric ili neshto takova no eto edin primer:
If IsNumeric(Text1.Text) Then
MsgBox "V poleto e napisano chislo"
Else
MsgBox "V poleto ne e napisano chislo"
End If
Probvai pa moje i da stane :))))
Решението по-горе,
което дадох ползва Windows API - нещо, което предполагам е възможно в VB. Освен това там се вижда, че има такъв стил за edit полета, така че предполагам още като си правиш формата можеш да кажеш, че това поле е само за числа.
Само да отбележа, че според MSDN, подобен стил (ES_NUMBER) не позволява да се въвеждат нечисла, но няма проблем да си paste-неш такива.
Само да отбележа, че според MSDN, подобен стил (ES_NUMBER) не позволява да се въвеждат нечисла, но няма проблем да си paste-неш такива.
Re: Basic
Абе човека доколкото схващам си пита за Бейсик, не за VB или С. Все пак ГОГО е дал добро решение. Има е един по-куц начин:
If trim(a)=trim(str(val(trim(a)))) then - Значи е число :-))) Защото IsNumber извън VB няма да работи.
don't waste my time - waste yours !
If trim(a)=trim(str(val(trim(a)))) then - Значи е число :-))) Защото IsNumber извън VB няма да работи.
don't waste my time - waste yours !