 |
Как упростить... - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
06.07.2012, 16:54
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 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
|
|
|
|
Сержант
|
 Регистрация: 07.05.2012
 Сообщений: 117
 Популярность: 1781
 Сказал(а) спасибо: 16
Поблагодарили 82 раз(а) в 44 сообщениях
|
Re: Как упростить...
Где много кода? Не вижу.
|
|
|
06.07.2012, 17:20
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 10.10.2011
 Сообщений: 35
 Популярность: 184
 Сказал(а) спасибо: 16
Поблагодарили 21 раз(а) в 9 сообщениях
|
Re: Как упростить...
|
|
|
06.07.2012, 17:22
|
#4
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: Как упростить...
С твоим подходом - нет.
Откуда берется количество необходимых монет?
|
|
|
06.07.2012, 18:17
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 19.02.2012
 Сообщений: 36
 Популярность: 447
 Сказал(а) спасибо: 25
Поблагодарили 50 раз(а) в 40 сообщениях
|
Re: Как упростить...
Если я правильно понял, что ты проверяешь, какой пункт выбран в комбобоксе, то в данном случае можно упростить так:
Код:
if (sComboBox1.ItemIndex = 0) then
begin
case sComboBox2.ItemIndex of
0: ShowMessage('Нужно 30 монет!');
1: ShowMessage('Нужно 63 монет!');
// и т.д.
end;
end;
|
|
|
06.07.2012, 23:09
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 25.03.2010
 Сообщений: 6
 Популярность: 16
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
|
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
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
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
|
|
|
|
Сержант
|
 Регистрация: 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.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:37.
|
 |