Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#1: 2013-05-17 13:42:11 ЛС | профиль | цитата
Всем привет.

Подскажите как сделать чтобы при вводе данных в Edit (от 1 до 10 символов) программа распознавала ввели буквы или цифры?

ну т.е. ввел "ааа" message Текс
ввел "123" message Цифры
ввел "a123" message Неизвестно

Если данная тема поднималась киньте ссылку плз, поиском пока не нашел.
карма: 0

0
Ответов: 1061
Рейтинг: 22
#2: 2013-05-17 14:09:16 ЛС | профиль | цитата
code_31005.txt

Поставишь условие и разделитель строки и всё! ))
карма: 0

1
файлы: 1code_31005.txt [218B] [81]
Голосовали:Gunnman
Ответов: 655
Рейтинг: 18
#3: 2013-05-17 14:15:30 ЛС | профиль | цитата
RinniX, спс) почти так как нужно!) только п.3. ввел "a123" message Неизвестно не работает.
карма: 0

0
Ответов: 1061
Рейтинг: 22
#4: 2013-05-17 14:16:33 ЛС | профиль | цитата
Gunnman писал(а):
только п.3. ввел "a123" message Неизвестно не работает.

Вот сейчас над этим и думаю! )))
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2013-05-17 14:29:56 ЛС | профиль | цитата
Gunnman писал(а):
ввел "a123" message Неизвестно
Почему "Неизвестно" ?
Это текст. (Хотя, в таком написании, возможно и HEX)
RinniX, сначала делаем - потом думаем ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8961
Рейтинг: 824
#6: 2013-05-17 15:03:01 ЛС | профиль | цитата
Gunnman, code_31009.txt
карма: 19

1
файлы: 1code_31009.txt [1.7KB] [157]
Голосовали:Tad
Ответов: 1061
Рейтинг: 22
#7: 2013-05-17 15:08:12 ЛС | профиль | цитата
Tad писал(а):
RinniX, сначала делаем - потом думаем ?

Ага!

А вот мой вариант! ))

code_31010.txt


------------ Дoбавленo в 15.08:
У Леонид, заумно как-то!
карма: 0

0
файлы: 1code_31010.txt [1.7KB] [114]
Гость
Ответов: 17029
Рейтинг: 0
#8: 2013-05-17 15:18:32 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-21 13:07:01
карма: 0

0
Ответов: 655
Рейтинг: 18
#9: 2013-05-17 15:44:36 ЛС | профиль | цитата
Всем спасибо! Очень выручили!!!
------------ Дoбавленo в 15.44:
RinniX, StrtoInt кстатЕ) 3a например выдает как 3 ;) так что с ним не катит) но за помощь спасибо!
карма: 0

0
Ответов: 1061
Рейтинг: 22
#10: 2013-05-17 15:53:34 ЛС | профиль | цитата
Gunnman писал(а):
StrtoInt кстатЕ) 3a например выдает как 3

Не понял! Всё там норм вроде!
------------ Дoбавленo в 15.53:
ааа, это я фильтр только на цифры применял, поэтому и выдаёт вместо "3а" только 3! Так-что всё там нормально. )))
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#11: 2013-05-17 16:59:13 ЛС | профиль | цитата
Gunnman,

Add(MainForm,2953706,126,112)
{
Height=110
Position=1
}
Add(Edit,3193473,182,112)
{
Left=65
Top=10
Width=110
MaxLenField=10
ClearAfterEnter=1
link(onEnter,13467802:doTest,[])
}
Add(InlineCode,13467802,238,119)
{
WorkPoints=#6:doTest|
EventPoints=#6:onTest|
Code=#15:unit HiAsmUnit;|13:// Author Tad|24:// Определить что в Edit|22:// Возможные варианты:|11:// 1. Текст|11:// 2. Число|15:// 3. Число HEX|9:interface|0:|30:uses windows, kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|23: onTest: THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|14: var s:string;|15: i:integer;|26: fT, fH, fD, Len:byte;|5:BEGIN|23: s := toString(_Data);|20: If s='' then exit;|22: fT:=0; fH:=0; fD:=0;|18: Len:= Length(s);|20: for i:=1 to Len do|8: begin|48: If s[i] in['A'..'F','a'..'f'] then inc(fH);|47: If s[i] in['0'..'9','.','-'] then inc(fD);|71: If s[i] in['A'..'Z','a'..'z','А'..'Я','а'..'я',' '] then inc(fT); |7: end;|25: s:='Смешанный текст';|30: If len=fT then s:='Текст';|39: If Len=fH+fD then s:= 'HEX-строка';|31: If Len=fD then s:= 'Число';|0:|26: _hi_onEvent(onTest, s);|4:END;|0:|4:end.|
link(onTest,1393397:doText,[])
}
Add(Label,1393397,294,119)
{
Top=40
Width=340
Caption=""
AutoSize=1
Alignment=2
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1536
Рейтинг: 176
#12: 2013-05-17 17:33:00 ЛС | профиль | цитата
RinniX писал(а):
У Леонид, заумно как-то!
Я, например, часто пользуюсь подобным алгоритмом.
Add(MainForm,2953706,210,63)
{
}
Add(Edit,11691394,210,119)
{
Left=65
Top=25
Width=210
link(onChange,8895335:doEvent1,[])
}
Add(Label,13069886,546,175)
{
Left=290
Top=25
Caption=""
}
Add(Str_Enum,3886399,301,126)
{
Delimiter=""
link(onEnum,13334760:doCompare,[])
link(onEndEnum,1977923:doOperation,[(347,139)(347,216)])
}
Add(StrMask,13334760,357,126)
{
Mask="#"
link(onFalse,7453646:doClear,[])
link(onTrue,12121445:doClear,[(400,139)(400,174)])
}
Add(Memory,7453646,441,119)
{
Default=Integer(1)
}
Add(Memory,12121445,448,161)
{
Default=Integer(2)
}
Add(StrList,1496625,497,168)
{
Strings=#0:|5:Текст|5:Цыфры|14:И то, и другое|
Point(doGetString)
Point(onGetString)
link(onGetString,13069886:doText,[])
}
Add(Math,1977923,441,210)
{
link(onResult,1496625:doGetString,[])
link(Op1,7453646:Value,[])
link(Op2,12121445:Value,[])
}
Add(Hub,9375891,357,84)
{
link(onEvent1,7453646:doValue,[(416,90)(416,125)])
link(onEvent2,12121445:doValue,[(407,97)(407,167)])
}
Add(Hub,8895335,259,119)
{
link(onEvent1,6039347:doData,[(284,125)(284,90)])
link(onEvent2,3886399:doEnum,[])
}
Add(DoData,6039347,301,84)
{
Data=Integer(0)
link(onEventData,9375891:doEvent1,[])
}
Вот, слегка упростил схему Леонида.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2013-05-17 21:19:24 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-21 13:07:01
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#14: 2013-05-17 22:10:48 ЛС | профиль | цитата
Хардкорный вариант
Add(Edit,11691394,462,217)
{
Left=65
Top=25
Width=210
link(onChange,11418665:doExec,[])
}
Add(Label,13069886,672,217)
{
Left=290
Top=25
Caption=""
}
Add(RE_Search,11418665,511,217)
{
Expression="^d+$"
link(onMatch,5351780:doData,[])
link(onNotFound,8345683:doExec,[(550,230)(550,272)])
}
Add(RE_Search,8345683,560,266)
{
Expression="^[^d]+$"
link(onMatch,16565561:doData,[])
link(onNotFound,15134608:doData,[(599,279)(599,321)])
link(SourceStr,11691394:Text,[(566,257)(468,257)])
}
Add(DoData,5351780,560,217)
{
Data=String(Цифры)
link(onEventData,16671785:doWork2,[])
}
Add(DoData,16565561,609,266)
{
Data=String(Текст)
link(onEventData,9481238:doWork2,[])
}
Add(HubEx,16671785,651,217)
{
link(onEvent,13069886:doText,[])
}
Add(DoData,15134608,609,315)
{
Data=String(ХЗ)
link(onEventData,9481238:doWork3,[(655,321)])
}
Add(HubEx,9481238,651,266)
{
Angle=3
link(onEvent,16671785:doWork3,[])
}
карма: 10
3
Голосовали:ser_davkin, RinniX, miver
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)