Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Как упростить...

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 06.07.2012, 16:54   #1
 Разведчик
Аватар для megbum
 
megbum на правильном путиmegbum на правильном пути
Регистрация: 10.10.2011
Сообщений: 35
Популярность: 184
Сказал(а) спасибо: 16
Поблагодарили 21 раз(а) в 9 сообщениях
 
По умолчанию Как упростить...

Можно ли как-нибудь упростить эти строчки, чтобы меньше кода было?
Код:
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[0]) then ShowMessage('Нужно 30 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[1]) then ShowMessage('Нужно 63 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[2]) then ShowMessage('Нужно 99 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[3]) then ShowMessage('Нужно 139 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[4]) then ShowMessage('Нужно 183 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[5]) then ShowMessage('Нужно 231 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[6]) then ShowMessage('Нужно 284 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[7]) then ShowMessage('Нужно 342 монет');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[8]) then ShowMessage('Нужно 406 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[9]) then ShowMessage('Нужно 477 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[10]) then ShowMessage('Нужно 555 монет!');
  Ответить с цитированием
Старый 06.07.2012, 17:02   #2
Заблокирован
 Сержант
Аватар для D.E.Z.E.R.T.I.R
 
D.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражания
Регистрация: 07.05.2012
Сообщений: 117
Популярность: 1781
Сказал(а) спасибо: 16
Поблагодарили 82 раз(а) в 44 сообщениях
 
По умолчанию Re: Как упростить...

Где много кода? Не вижу.
  Ответить с цитированием
Старый 06.07.2012, 17:20   #3
 Разведчик
Аватар для megbum
 
megbum на правильном путиmegbum на правильном пути
Регистрация: 10.10.2011
Сообщений: 35
Популярность: 184
Сказал(а) спасибо: 16
Поблагодарили 21 раз(а) в 9 сообщениях
 
По умолчанию Re: Как упростить...

Цитата:
Сообщение от D.E.Z.E.R.T.I.RПосмотреть сообщение
Где много кода? Не вижу.

Ну в каждем ComboBox'е по 50 значений
тоесть к 1 значению первого комбобокса будет из второго 50
и так подумать 2500 строчек будет
  Ответить с цитированием
Старый 06.07.2012, 17:22   #4
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Как упростить...

С твоим подходом - нет.
Откуда берется количество необходимых монет?
  Ответить с цитированием
Старый 06.07.2012, 18:17   #5
 Разведчик
Аватар для R.A.Z.O.R.
 
R.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известен
Регистрация: 19.02.2012
Сообщений: 36
Популярность: 447
Сказал(а) спасибо: 25
Поблагодарили 50 раз(а) в 40 сообщениях
Отправить сообщение для R.A.Z.O.R. с помощью Skype™
 
По умолчанию Re: Как упростить...

Цитата:
Сообщение от megbumПосмотреть сообщение
Можно ли как-нибудь упростить эти строчки, чтобы меньше кода было?
Код:
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[0]) then ShowMessage('Нужно 30 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[1]) then ShowMessage('Нужно 63 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[2]) then ShowMessage('Нужно 99 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[3]) then ShowMessage('Нужно 139 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[4]) then ShowMessage('Нужно 183 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[5]) then ShowMessage('Нужно 231 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[6]) then ShowMessage('Нужно 284 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[7]) then ShowMessage('Нужно 342 монет');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[8]) then ShowMessage('Нужно 406 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[9]) then ShowMessage('Нужно 477 монет!');
if (sComboBox1.Text=sComboBox1.Items[0]) and(sComboBox2.Text=sComboBox2.Items[10]) then ShowMessage('Нужно 555 монет!');

Если я правильно понял, что ты проверяешь, какой пункт выбран в комбобоксе, то в данном случае можно упростить так:

Код:
   if (sComboBox1.ItemIndex = 0) then
   begin
      case sComboBox2.ItemIndex of
         0: ShowMessage('Нужно 30 монет!');
         1: ShowMessage('Нужно 63 монет!');

         // и т.д.

      end;
   end;
  Ответить с цитированием
Старый 06.07.2012, 23:09   #6
 Разведчик
Аватар для aktivizion15
 
aktivizion15 никому не известный тип
Регистрация: 25.03.2010
Сообщений: 6
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
Отправить сообщение для aktivizion15 с помощью ICQ
 
По умолчанию Re: Как упростить...

или можно по-другому:
в комбобокс дописать так:
вариант1 (30)
вариант2 (63)
и спарсить
Код:
showmessage(copy(combobox2.Text,pos('(',combobox2.Text),pos(')',combobox2.Text)));
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
showmessage('нужно '+
copy(combobox1.Text,
pos('(',combobox1.Text)+1,
pos(')',combobox1.Text)-pos('(',combobox1.Text)-1)+' монет!');
end;
xD

Последний раз редактировалось aktivizion15; 06.07.2012 в 23:21.
  Ответить с цитированием
Старый 07.07.2012, 15:30   #7
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Как упростить...

ItemIndex? не,не слышал
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 07.07.2012, 15:45   #8
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 138
Популярность: 26409
Сказал(а) спасибо: 53
Поблагодарили 567 раз(а) в 198 сообщениях
 
По умолчанию Re: Как упростить...

Чубарые, все же можно в одну строку написать. ООП для кого придумали? Нет чтоб учебник прочитать, пишут черти че.
for i:=0 to ComponentsCount-1 do
if Components[i] is TsComboBox then // вариант 2 - if Components[i].Tag = 2 (присвоить всем нужным боксам тег - 2)
... траляля ...

Ну а тут :
var msg:string;
begin
if sComboBox1.ItemIndex = 1 then
Case sComboBox2.ItemIndex of
0: msg:='123';
1: msg:='trololo';
.......
end;
end;
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось Рэйзор; 07.07.2012 в 16:09.
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 13:37.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net