Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

маска edit (принимать только integer) [D7, WinXP]


stalk001 ©   (2004-11-29 20:39:00) 

нужно чтобы в edit текст записывалось только числовой тип или как определить что введенна буква
мне просто нужно создать масив з буквами но не ['a'..'z']-это все символы а только буквы???
это все что нужно дальше уже pos и тд //дальше я знаю
..а как масив просто букв зделать???


Leonid Troyanovsky   (2004-12-03 14:43:00) [1]


> GrayFace ©   (03.12.04 14:18) [11]
> Ой. Найдите 2 отличия между [10] и [8].


А.. тест на внимательность.
Изволь - первое:

> GrayFace ©   (30.11.04 06:05) [8]
> GrayFace ©   (03.12.04 14:16) [10]

Второе: первое оригинал, а второе - копия (с дефектами).

--
С уважением, LVT.


GrayFace   (2004-12-03 14:18:00) [2]

Ой. Найдите 2 отличия между [10] и [8].


GrayFace   (2004-12-03 14:16:00) [3]

Yanis ©   (29.11.04 23:24) [6]
if not (key in ['0'..'9','.',',']) then
  Key := #0;

if not (key in ['0'..'9','.',DecimalSeparator,ThousandSeparator,'e','+','-']) then Key := #0;
А если только целые, то if not (key in ['0'..'9',ThousandSeparator,'+','-']) then Key := #0;

GuAV ©   (29.11.04 23:31) [7]
SetWindowLong(h, GWL_STYLE, GetWindowLong(h, GWL_STYLE) xor ES_NUMBER);

Все-таки лучше and not, а то захочит человек два раза подряд сделать Edit числовым, и ...


GuAV   (2004-11-30 14:48:00) [4]

GrayFace ©   (30.11.04 6:05) [8]

Тогда лучше or.

Я именнот так и сделал специально - toggle ES_UMBER.


GrayFace   (2004-11-30 06:05:00) [5]

Yanis ©   (29.11.04 23:24) [6]
if not (key in ['0'..'9','.',',']) then
  Key := #0;

if not (key in ['0'..'9','.',DecimalSeparator,ThousandSeparator,'e']) then Key := #0;
А если только целые, то if not (key in ['0'..'9',ThousandSeparator]) then Key := #0;

GuAV ©   (29.11.04 23:31) [7]
SetWindowLong(h, GWL_STYLE, GetWindowLong(h, GWL_STYLE) xor ES_NUMBER);

Все-таки лучше and not, а то захочит человек два раза подряд сделать Edit числовым, и ...


GuAV   (2004-11-29 23:31:00) [6]

procedure TForm1.Button1Click(Sender: TObject);
var h: THandle;
begin
 h := Edit1.Handle;
 SetWindowLong(h, GWL_STYLE, GetWindowLong(h, GWL_STYLE) xor ES_NUMBER);
end;


Кстати,
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1101363417&n=0


Yanis   (2004-11-29 23:24:00) [7]

Что то типа:


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (key in ['0'..'9','.',',']) then
   Key := #0;
end;


GanibalLector   (2004-11-29 23:17:00) [8]

2 GuAV
Что есть ES_NUMBER?Засвети пример...и еще,а как на счет float?


GuAV   (2004-11-29 23:12:00) [9]

stalk001   (29.11.04 20:39)
нужно чтобы в edit текст записывалось только числовой тип


ES_NUMBER


GanibalLector   (2004-11-29 23:05:00) [10]

procedure TForm3.Edit2Change(Sender: TObject);
begin
if edit2.text<>'' then
try
strtoint(edit2.text);
old2:=edit2.text;
except
edit2.text:=old2;
edit2.SelStart:=length(edit2.text);
edit2.seltext:='';end;
end;


Davinchi   (2004-11-29 20:53:00) [11]

а еще в RxLib есть замечательные компоненты TCalcEdit and TCurrencyEdit1


YurikGL   (2004-11-29 20:49:00) [12]

проще всего maskedit пользвать ИМХО.
Можно обрабатывать onKeyPress и смотреть какая клавиша нажата.


Наверх

Титульная страница Поиск, карта сайта Написать письмо