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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2012, 00:06   #1
Matrix6993
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 69
По умолчанию Еще одна проблема с Edit'ом

Я походу вообще чайник в программировании, но Ребят, у меня курсовик сейчас прогорит из за этой ошибки помогите пожалуйста конкретнее! У меня стоит на форме 3 Edita для вода информации, и 1 Button с названием "Ввод". Условия задачи таковы: Если хотя бы в 1 Edit'е ничего не написано, то должно выводить сообщение "Введите пожалуйста данные" и в сообщение кнопочка "ОК". Напишите пожалуйста код и скажите куда его вставить, если вам не трудно конечно, буду очень вам благодарен! Спасибо заранее!
Matrix6993 вне форума Ответить с цитированием
Старый 24.01.2012, 00:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да много куда можно прицепить такую проверку + сообщение.
ну, раз уж Вы кнопку не делаете недоступной, тогда я бы проверку и реакцию (сообщение) повесил на кнопку.
примерно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Trim(Edit1.Text)='' then begin
     Application.MessageBox('Вы не заполнили Edit1', 'Ошибка', MB_ICONERROR or MB_OK);
     Edit1.SetFocus;
     Exit;
  end;
  if Trim(Edit2.Text)='' then begin
     Application.MessageBox('Вы не заполнили Edit2', 'Ошибка', MB_ICONERROR or MB_OK);
     Edit2.SetFocus;
     Exit;
  end;
  if Trim(Edit3.Text)='' then begin
     Application.MessageBox('Вы не заполнили Edit3', 'Ошибка', MB_ICONERROR or MB_OK);
     Edit3.SetFocus;
     Exit;
  end;

  // тут Ваши действия, если все эдиты заполнены
  ShowMessage('Всё заполнено! Что-то делаем...');
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.01.2012, 00:41   #3
Matrix6993
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 69
По умолчанию

Даже при таком раскладе выходит системная ошибка: "Project Project1.exe raised exception class EConvertError with message ''' is not a valid floating point value'. Process stopped. Use Step or Run to continue.". но к сожалению не это: "Вы не заполнили Edit" (( КАК БЫТЬ?
Matrix6993 вне форума Ответить с цитированием
Старый 24.01.2012, 00:58   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Попробуй использовать вместо StrToFloat -> StrToFloat2
Код:
 function StrToFloat2(const AStr : String) : Double;
    var FS : TFormatSettings;
    begin
      case Pos('.', AStr) of
        0 : FS.DecimalSeparator := ',';
        else FS.DecimalSeparator := '.';
      end;
      Result := StrToFloat(AStr, FS);
    end;
_Engine_ вне форума Ответить с цитированием
Старый 24.01.2012, 00:59   #5
xakkkkker
Форумчанин
 
Аватар для xakkkkker
 
Регистрация: 15.12.2007
Сообщений: 226
По умолчанию

Я не знаю что у вас не получается, но я только что скопировал код Serge_Bliznykov и все заработало. Смотри вложение.
Вложения
Тип файла: rar 111.rar (170.3 Кб, 9 просмотров)
xakkkkker вне форума Ответить с цитированием
Старый 24.01.2012, 01:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В зависимости от настроек в винде в качестве десятичной точки может использоваться запятая или точка. Возможно в этом проблема. Или левый символ в эдите
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.01.2012, 01:19   #7
Matrix6993
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 69
По умолчанию

Хаккер у нас тут delpfi а не pascal
Matrix6993 вне форума Ответить с цитированием
Старый 24.01.2012, 01:30   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Хаккер у нас тут delpfi а не pascal
открою вам секрет, то Делфи.
да и Делфи вырос из object pascal.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 24.01.2012 в 08:44.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.01.2012, 08:41   #9
xakkkkker
Форумчанин
 
Аватар для xakkkkker
 
Регистрация: 15.12.2007
Сообщений: 226
По умолчанию

Цитата:
Сообщение от Matrix6993 Посмотреть сообщение
Хаккер у нас тут delpfi а не pascal
Вы вообще открывали то, что я выложил?
Там проект Win32 на дельфи 7. Там даже не консольное приложение, а приложение с формой.
Да что вам говорить если вы дельфи и паскаль не различаете.
xakkkkker вне форума Ответить с цитированием
Старый 24.01.2012, 15:34   #10
Marinesku
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 13
По умолчанию Зачем усложнять

Если одно из полей пустое, пишем так:

if Edit1.text='' then
ShowMessage('Введите текст');

Кроме ShowMessage есть и другое - MessageDlg.

Там будет уже не одна (ОК), а две кнопки Yes и No.

Пишем так:

if Edit1.text='' then
begin
if
MessageDlg('Были внесены новые слова. Сохранить их?', mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
{пишешь то что должно выполниться при нажатии кнопки Yes}
end;
Marinesku вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще одна проблема с непонятным файлом в реестре DeKot Безопасность, Шифрование 10 08.06.2009 00:04
проблема с пустым edit'ом SMERSH Помощь студентам 2 15.09.2008 19:26
Еще одна задача felice Паскаль, Turbo Pascal, PascalABC.NET 2 03.02.2008 14:32
еще одна задача в BP Jasper Паскаль, Turbo Pascal, PascalABC.NET 2 05.12.2006 15:13