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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.11.2010, 06:02
whizzkey whizzkey вне форума
Прохожий
 
Регистрация: 16.10.2010
Сообщения: 35
Репутация: 10
По умолчанию Конструкция выбора в делфи

Всем добрый день, подскажите каким образом реализуется множественный выбор в делфи? Т.е. дано к примеру 5 условий - когда какое либо из условий выполняется - происходит определенное действие
Я делаю вот так
Код:
if Edit6.Text=0  or @ Edit2.Text:=''
or Edit3.Text:='' or  Edit4.Text:='' 
or Edit5.Text:=''
then
begin
WriteTest:=false ;
end
else
WriteTest:=true;
на что делфи мне пишет operator not applicable to this operand type либо variable requared
Ответить с цитированием
  #2  
Старый 05.11.2010, 06:54
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

При использовании or пиши сравнения в скобках:
Код:
if (Edit1.Text='text 1') or (Edit2.Text='text 2') or (Edit3.Text='text 3') then
И строки не сравниваются с числами:
Код:
Edit6.Text=0 // неправильно
Ответить с цитированием
  #3  
Старый 05.11.2010, 06:56
whizzkey whizzkey вне форума
Прохожий
 
Регистрация: 16.10.2010
Сообщения: 35
Репутация: 10
По умолчанию

Цитата:
Сообщение от ryderx34
И строки не сравниваются с числами:
Имеется ввиду Edit6.Text='0' значение Edit'a равное 0
А как можно сделать следующее?? - чтобы помимо сравнения выводилось сообщение по каждому из edit'ов что то из типа 'Введите текст в Edit'
Код:
If (Edit6.Text=0, Showmessage='Введите текст в Edit') or...end

ЗЫ writetest у меня процедура , описанная в модуле, как запретить ее выполнение при удовлетворении одного из условий?
writetest:=false; - не работает

Последний раз редактировалось whizzkey, 05.11.2010 в 07:21.
Ответить с цитированием
  #4  
Старый 05.11.2010, 08:51
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

Не совсем понял о чём речь, но попробую
Код:
// проверяется наличие введённого текста:
if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') then
  ShowMessage('Введите текст в каждый Edit') // если что-то не введено выводится сообщение
else
  WriteTest; // если всё введено, то вызывается процедура WriteTest
end;
это нужно?
Ответить с цитированием
  #5  
Старый 05.11.2010, 10:38
whizzkey whizzkey вне форума
Прохожий
 
Регистрация: 16.10.2010
Сообщения: 35
Репутация: 10
По умолчанию

Цитата:
Сообщение от ryderx34
Не совсем понял о чём речь, но попробую
я видимо криво обьяснил - ладно покажу кодом
Код:
if (Edit1.Text='') "<-- Месссадж введите тото-тото в Edit1" 
or (Edit2.Text='') "<--Месссадж введите тото-тото в Edit2"
почему хочу сделать чтобы было по каждому едиту в отдельности? потомучто Edit1 - содержит только числовые значения, Edit2 - строковые
Ответить с цитированием
  #6  
Старый 05.11.2010, 10:53
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Код:
if edit1.text = '' then
   showmessage('караул')
else 
  if edit2.text = '' then
     showmessage('ыыы')
 
Ответить с цитированием
  #7  
Старый 05.11.2010, 11:33
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

после второго showmessege'а ; не забудьте
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #8  
Старый 06.11.2010, 03:56
whizzkey whizzkey вне форума
Прохожий
 
Регистрация: 16.10.2010
Сообщения: 35
Репутация: 10
По умолчанию

Цитата:
Сообщение от TOJluK
Код:
if edit1.text = '' then
   showmessage('караул')
else 
  if edit2.text = '' then
     showmessage('ыыы')
 
так то и я могу=)) я просто хотел задействовать OR чтобы было меньше писанины
Ответить с цитированием
  #9  
Старый 06.11.2010, 10:52
Аватар для SerginhoLD
SerginhoLD SerginhoLD вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 73
Репутация: 12
По умолчанию

пробежаться по компонентам, посмотреть какие edit'ы пусты, и вывести showmessage
__________________
знаете почему внизу эскалатора бабка в будке сидит?
она там педальки крутит и лесенка едет!
Ответить с цитированием
  #10  
Старый 06.11.2010, 12:55
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Что бы мало было писанины надо чтоб эти Edit -ы у тебя были нумерованы по очереди...это раз
а вот и код

Код:
var
ed: Tcomponent;
i: integer;
begin
 for i := 1 to 10 do
 begin
   ed:=FindComponent('Edit'+inttostr(i));
   if ed <> nil then
   begin
     if (ed as TEdit).Text='' then
     showmessage((ed as TEdit).Name + ' Пустой');
   end;
 end;
end;
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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