подскажите про Try/except

Тема в разделе "Delphi - Базы данных", создана пользователем Antuan, 27 июн 2006.

Статус темы:
Закрыта.
  1. Antuan

    Antuan Гость

    Подскажите пожалуйста как сделать обход ошибки через try/except...если надо чтобы в строчку были введены только циферки а не буквы....
    если можно с примером...!
     
  2. Barmutik

    Barmutik Гость

    Код (Text):
    try
    StrToInt(Ваша строка);
    except
    MessageDlg('Строка содержит не числовое значение!', mtWarning, [mbOK], 0);
    end;
     
  3. Antuan

    Antuan Гость

    а что надо пистать вмесот "ваша строка"?//я чего то туплю...?
     
  4. Гость

    Вместо "ваша строка" в твоем случае нужно писать, к примеру x := edit1.text, где Х перименная целового типа, ну или ни целого (вещественного)! :p

    не правильно я тебе подсказал!!! :huh: нужно писать так x := strtoint(edit1.text);

    (не ошибается тот кто ни фига не делает, а еще работаю между прочим!!! :angry: )
     
  5. DZX

    DZX Гость

    А вот в delphi 10 есть хороший набор функций TryStrTo*

    if TryStrToInt(edit1.text,i)
    begin
    // все ok
    end
    else
    // Error
     
  6. Гость

    Delphi 10 это я так понимаю Delphi 2006? :angry:
     
  7. DZX

    DZX Гость

    Совершенно верно :) 10 - 2006 (маркетинг однако)
     
  8. Antuan

    Antuan Гость

    у меня дэльфи в два раза меньше..тоесть пятый..но если постараца то и етот старичок вполне работоспособен

    большое спасибо Barmutik' у и Димке!
     
  9. romka

    romka Гость

    Можно ещё с помощью обработчика события OnKeyPress у TEdit разрешать и запрещать ввод любых символов.
    Вот пример:

    procedure TSelForm.Edit2KeyPress(Sender: TObject; var Key: Char);
    const
    Symbols: set of char=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', #8];

    begin
    If not (Key in Symbols) then
    Key:=#0;
    end ;


    Есть ещё такой способ: StrToFloatDef(Edit1.Text, DefaultValue), здесь DefaultValue возвращается в случае ошибки. Но этот способ не всгда подходит.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей