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

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

В TEdit - одни цифры и ОДНА запятая? [D7, WinXP]


Страницы:   1 2 3

tolstiak ©   (2005-01-17 16:09:00) 

Доброго всем, уважаемые!
С первой частью вопроса я справился :)), т.е. в TEdit одни цифры получаються..... но мне необходимо что бы (как в стандартном калькуляторе) блокировалось повторное нажатие "." или ","... как это сделать?


Ega23   (2005-01-17 16:34:00) [41]

Еще StringReplace(...DecimalSeparator...) 2 раза

А нафига? Val и так разберётся...  :о)


TUser   (2005-01-17 16:30:00) [42]


> Ega23 ©   (17.01.05 16:15) [2,3]

Еще StringReplace(...DecimalSeparator...) 2 раза


Ega23   (2005-01-17 16:15:00) [43]

Вру.

var
Code:Integer;
i:Double;


Ega23   (2005-01-17 16:14:00) [44]

procedure TForm1.Edit1Change(Sender: TObject);
var
i,Code:Integer;
begin
Val(Edit1.Text, i, Code);
if Code<>0 then
 begin
  showMessage('Ошибка в символе №'+IntToStr(Code));
  Edit1.SetFocus;
 end;

end;


Что-то типа этого...


TUser   (2005-01-17 16:13:00) [45]

var Edit1Text: string;

procedure FormCreate();
begin
 Edit1Text:=Edit1.Text;
end;

procedure Edit1Change();
var i: integer;
   r: boolean;
   f: boolean;
begin
 i:=1; r:=true; f:=false;
 while r and (i <= length(Edit1.Text)) do
   if Edit1.Text[i] in ['0'..'9'] then
     inc (i)
     else
   if Edit1.Text[i] in ['.',','] and not f then begin
      inc (i); f:=true;
      end else
      r:=false;
 if not r then
   Edit1.Text:=Edit1Text
   else
   Edit1Text:=Edit1.Text
end;


Страницы:   1 2 3

Наверх

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