Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.04.2018, 00:19
Taras2020 Taras2020 вне форума
Прохожий
 
Регистрация: 15.01.2018
Сообщения: 36
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию 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;
Изображения
Тип файла: jpg 1.jpg (30.2 Кбайт, 1 просмотров)
Тип файла: jpg 2.jpg (53.5 Кбайт, 1 просмотров)
Ответить с цитированием
  #2  
Старый 24.04.2018, 08:09
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Код:
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  
Старый 24.04.2018, 16:48
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Не очень хорошо в таком виде обрабатывать исключение. Метод прервется и динамически созданный 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)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter