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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.10.2012, 12:31
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию Проверка поля Edit

Здравствуйте! Я здесь человек новый, как и в делфи.
Задали нам курсовую по делфи. Все вроде бы хорошо, вроде с помощю гуглы все нахожу но не могу выйти из замкнутого круга.
У меня есть массив на 100 случайных чисел которые каждое нужно перемножить на коэффициент к1. Это действие происходит когда нажимаю кнопку старт1. Когда не водишь даные (число) в поле едит выкидует ошибку и программа завершается. Мне нужно сделать проверку данных которые водиться в поле едит. То есть если коэффициент не равен 5 сообщение: Ведите свой коэффициент. Но вот как сделать если коэффициент вобще ничему не равен (то есть в поле едит пусто)?

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

Код:
procedure TForm1.Button1Click(Sender: TObject);
var k1:real;

begin
k1:=0;
Label2.caption:=LabeledEdit1.Text;
k1:=StrToFloat(Edit1.Text);
if k1 = 5 then
begin
    //Происходит действие с массивом, Истина
end
else
if k1 <> 5 then
begin
   //Сообщение об ошибке, Лож
end
end;

Последний раз редактировалось Nevil_White, 29.10.2012 в 12:33.
Ответить с цитированием
  #2  
Старый 29.10.2012, 12:45
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Nevil_White
Мне нужно сделать проверку данных которые водиться в поле едит. То есть если коэффициент не равен 5 сообщение: Ведите свой коэффициент. Но вот как сделать если коэффициент вобще ничему не равен (то есть в поле едит пусто)?.....
Код:
procedure TForm1.Button1Click(Sender: TObject);
var k1:real;

begin
k1:=0;
Label2.caption:=LabeledEdit1.Text;
k1:=StrToFloat(Edit1.Text);
if k1 = 5 then
begin
    //Происходит действие с массивом, Истина
end
else
if k1 <> 5 then
begin
   //Сообщение об ошибке, Лож
end
end;
Пробуй так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  k1: Real;
begin
  Label2.Caption := LabeledEdit1.Text;
  k1 := StrToFloatDef(Edit1.Text, 0);
  if k1 = 5 then
  begin
    //Происходит деймтвие с массивом, Истина
  end
  else
  begin
    //Сообщение об ощибке, Лож
  end
end;
Или ещё лучше так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  k1: Extended;
begin
  Label2.Caption := LabeledEdit1.Text;
  if TryStrToFloat(Edit1.Text, k1) and (k1 = 5) then
  begin
    //Происходит деймтвие с массивом, Истина
  end
  else
  begin
    //Сообщение об ощибке, Лож
  end
end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Nevil_White (29.10.2012)
  #3  
Старый 29.10.2012, 12:50
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию

попутный вопрос: как правильно сделать вывод сообщения если лож чтоб был правильный коэффициент?
Ответить с цитированием
  #4  
Старый 29.10.2012, 12:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Nevil_White
попутный вопрос: как правильно сделать вывод сообщения если лож чтоб был правильный коэффициент?
В том месте где условие ложно просто присваивай переменной k1 правильный коэффициент.
Ответить с цитированием
  #5  
Старый 29.10.2012, 13:01
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию

Нет, я наверно не правильно выразилса. Если веденный коэффициент не правильный то нужно проинформировать пользователя чтоб он вел правильный. Я видел что нужно создать процедуру на кнопке онклик и написать showmessege но она не работает так как выкидует неизвестную команду
Ответить с цитированием
  #6  
Старый 29.10.2012, 13:08
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Nevil_White
Нет, я наверно не правильно выразилса. Если веденный коэффициент не правильный то нужно проинформировать пользователя чтоб он вел правильный. Я видел что нужно создать процедуру на кнопке онклик и написать showmessege но она не работает так как выкидует неизвестную команду
Нельзя в программе использовать неизвестные команды.
Делай так:
Код:
  ShowMessage('Ошибочный параметр');
  // Или так:
  MessageDlg('Ошибочный параметр', mtError, [mbOk], 0);

p.s. В Delphi работает intellisense (т.е. при наборе слова автоматически либо по нажатию Ctrl+Пробел выскакивает список возможных команд).
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Nevil_White (29.10.2012)
  #7  
Старый 29.10.2012, 13:14
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо, работает. Я так понимаю если значение лож то действие истины не выполняется?
Ответить с цитированием
  #8  
Старый 29.10.2012, 13:19
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Nevil_White
Спасибо, работает. Я так понимаю если значение лож то действие истины не выполняется?
Да. Не ложь это истина, а не истина это ложь.
Ответить с цитированием
  #9  
Старый 29.10.2012, 13:21
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо. Тема закрыта, я еще вернусь с массивами но позже, если возникнут проблемы =)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter