|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Is not valid integer value / Delphi XE
Программа меняет все значения, со знаком (=), в порядке убывания. А когда ввожу без знака ( =) то возникает ошибка.
И вот вопрос: Как, место сообщения Is not valid integer value - Вывести свой текст. К примеру, сообщение: "Внимание, вы ввели неправильные - значения". Прикрепил картинки: Код:
function MySort(L: TStringList; ind1, ind2: integer): integer; var i1, i2: integer; begin i1 := StrToInt(L.ValueFromIndex[ind1]); i2 := StrToInt(L.ValueFromIndex[ind2]); if i1 = i2 then result := 0 else if i1 > i2 then result := 1 else result := -1; end; procedure TForm1.Button2Click(Sender: TObject); var L: TStringList; begin L := TStringList.Create; L.Text := Memo1.Text; L.CustomSort(MySort); Memo2.Text := L.Text; L.Free; end; |
#2
|
|||
|
|||
Код:
begin Caption := '='; try i := StrToInt(Caption); except on E: EConvertError do begin MessageDlg(PChar('Внимание, вы ввели неправильные - значения'), mtError, mbOKCancel, 0); end; end; end; |
Этот пользователь сказал Спасибо nixon232 за это полезное сообщение: | ||
Taras2020 (24.04.2018)
|
#3
|
||||
|
||||
Не очень хорошо в таком виде обрабатывать исключение. Метод прервется и динамически созданный TStringList не будет уничтожен - привет утечка.
Код:
procedure TForm1.Button2Click(Sender: TObject); var L: TStringList; begin L := TStringList.Create; try L.Text := Memo1.Text; try L.CustomSort(MySort); except ... обработка исключения ... end; Memo2.Text := L.Text; finally L.Free; end; end; Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
Taras2020 (25.04.2018)
|