Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 15:36   #1
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
Сообщение Защита от ввода неправильных значений в pascal

Как можно осуществить защиту от ввода неправильных значений(все знаки и символы кроме минуса и точки служащей для написания не целых чисел), в визуальном pascal'е(lazarus), чтобы программа не завершалась аварийно?
GaJIbI4 вне форума Ответить с цитированием
Старый 08.05.2010, 15:43   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Код:
{$I-}
ReadLn (DateCom);
CodIor:=IOResult;
{$I+}
If CodIor <>0 then ....
Я думаю как-то так. Где многоточие, там действия по обработке ошибки.
baster128 вне форума Ответить с цитированием
Старый 08.05.2010, 16:38   #3
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

А в какую часть программы вставить этот код чтобы работал. Мой код программы:

Код:
unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
  StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:integer;
begin
A:=StrToint(Edit1.Text); B:=StrToint(Edit2.Text); C:=StrToint(Edit3.Text);
label4.caption:='Результат= '+intToStr(A+B+C);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.Label1Click(Sender: TObject);
begin

end;

initialization
  {$I unit1.lrs}

end.
GaJIbI4 вне форума Ответить с цитированием
Старый 09.05.2010, 10:20   #4
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

вроде не работает этот код
Код:
{$I-}
ReadLn (DateCom);
CodIor:=IOResult;
{$I+}
If CodIor <>0 then ....
GaJIbI4 вне форума Ответить с цитированием
Старый 09.05.2010, 12:29   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

то могу предложить два способа.
Один сложнее, но зато больше даёт возможностей по контролю.
Второй - намного проще.

первый способ.
используя readkey анализировать нажатую клавишу, и дальше выполнять нужное действие.. если доступно - приписывать введённый символ к вводимой строке, либо, если нажали управляющую клавишу, то редактировать вводимую строку... Т.е. реализовать inline-редактор.
(если не испугает сложность и "многа букв" - то пример реализации могу подкинуть...)

второй. ввод осуществлять в строку. Строчку переводить в число и смотреть, насколько удачно получилось...

Код:
var
  s : string;
  DD, i : integer;
begin
  WriteLn('Введите целое число');
  repeat
    readln(s);
    val(s, DD, i);
    if i<>0 then WriteLn('Ошибка ввода. Пробуйте ещё раз (пустая строка - выход без ввода!)')
  until (i=0) or (s='');
  if s<>'' then Writeln(DD)
    else Writeln('Вы отказались от ввода');
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита значений текстовых полей от HEX редактора. Вавел из ГМТУ Общие вопросы Delphi 7 18.03.2017 10:48
Защита от кривого ввода на С++ survavior Помощь студентам 4 13.04.2010 17:56
Как сделать запрет ввода букв в поле для ввода input zvezda_t PHP 1 27.12.2009 22:02
Массивы и построение таблицы значений х,у по графику (Turbo Pascal) JIUMOH Помощь студентам 6 21.12.2009 20:30
Pascal. Одномерные массивы разрешенных и неразрешенных значений. FatCat Помощь студентам 2 05.12.2008 11:39