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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.10.2017, 14:07
Vadim8491 Vadim8491 вне форума
Прохожий
 
Регистрация: 09.10.2017
Сообщения: 3
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию На форме три Edit'а +Button1, тема такая

На форме три Edit'а +Button1, тема такая: Данные внесенные в Edit'ы запросом сохраняются в БД Нажатие на Button1 = MessageBox(Внести данную запись в базу?), при условии, что они заполнены, если хоть один Edit пуст, то MessageBox(Не все поля заполнены)
Код:
procedure TForm4.Button1Click(Sender: TObject);
var mr: TADOQuery;
begin
if (Edit1.Text <> '') or (Edit2.Text <> '') or (MaskEdit1.Text <> '') then
begin
case MessageBox(Handle,'Внести данного заемщика в базу?','Добавление',4) of

idyes: begin
mr:= TADOQuery.Create(nil);
mr.Connection:=fGeneral.ADOConnection1;
mr.SQL.Add('insert into tDB_GENERAL (FIO_KL,ID_KALITA,DATE_BRD_KL) VALUES ('''+Edit1.Text+''', '''+Edit2.Text+''', '''+MaskEdit1.Text+''') ');
mr.ExecSQL;
mr.Free;
 end;

 idno: begin  end;

else
 begin
 MessageBox(Handle,'Не все поля заполнены','Внимание',0)
 end;
end;
end;
Админ: Пользуемся тегами при оформлении кода!

Последний раз редактировалось Admin, 09.10.2017 в 19:18.
Ответить с цитированием
  #2  
Старый 09.10.2017, 14:21
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь
Код:
if (Edit1.Text <> '') or (Edit2.Text <> '') or (MaskEdit1.Text <> '') then
задано, что если Edit1.Text что-то содержит или Edit2, а ведь может и не содержать, вместо оператора or в данном варианте следует применить and, тогда условие отработает только если во всех трёх полях ввода чтонить будет набрано
Ответить с цитированием
  #3  
Старый 09.10.2017, 14:41
Vadim8491 Vadim8491 вне форума
Прохожий
 
Регистрация: 09.10.2017
Сообщения: 3
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию

Alegun, спасибо, понял, только все равно не пускает, ругается на ELSE

Код:
else
 begin
 MessageBox(Handle,'Не все поля заполнены','Внимание',0)
 end;
Админ: Пользуемся тегами при оформлении кода!

Последний раз редактировалось Admin, 09.10.2017 в 19:19.
Ответить с цитированием
  #4  
Старый 09.10.2017, 14:44
Vadim8491 Vadim8491 вне форума
Прохожий
 
Регистрация: 09.10.2017
Сообщения: 3
Версия Delphi: Delphi XE7
Репутация: 10
По умолчанию

Снимок.JPG,,,,,,,,,,,,,,,,,,,,,,,,
Ответить с цитированием
  #5  
Старый 09.10.2017, 14:48
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь чисто невнимательность, блоки begin\end не соблюдены и else
просто завис в воздухе

З.Ы. end; перед else к кейсу (case) относится, нужен закрывающий блок условия (if..then) end без точки с запятой

Последний раз редактировалось Alegun, 09.10.2017 в 14:58.
Ответить с цитированием
  #6  
Старый 09.10.2017, 18:15
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Перед else стоит end, так вот нужно убрать точку с запятой, что стоит после этого end-а.
Ответить с цитированием
  #7  
Старый 09.10.2017, 18:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Да нет, этот end; оператору выбора case принадлежит, нужно новый добавить, из курса молодого делфийца немного
Код:
 if {условие} then 
  begin
   case {переменная} of
{значение1} :
{значение2} :
{значение3} :
...
   else {case}

   end; {case}

   end else
    begin
...
    end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter