![]() |
|
|
#1
|
|||
|
|||
|
Привет специалисты программирования. Для оптимизации нижеследующего кода необходимо перевести в case, но у меня не получается (нехватает знания). Если у кого найдется желание, дайте немного знания новичку. Спасибо всем, кто заглянул.
Код:
if w1='1' then
begin
wNach:=0;
wKon:=6;
end;
if w1='2' then
begin
wNach:=1;
wKon:=5;
end;
if w1='3' then
begin
wNach:=2;
wKon:=4;
end;
if w1='4' then
begin
wNach:=3;
wKon:=3;
end;
if w1='5' then
begin
wNach:=4;
wKon:=2;
end;
if w1='6' then
begin
wNach:=5;
wKon:=1;
end;
if w1='7' then
begin
wNach:=6;
wKon:=0;
end; |
|
#2
|
|||
|
|||
|
сделал вот так, но выдает ошибку oridinal type required
Код:
case w1 of
1: begin wNach:=0; wKon:=6; end;
2: begin wNach:=1; wKon:=5; end;
3: begin wNach:=2; wKon:=4; end;
4: begin wNach:=3; wKon:=3; end;
5: begin wNach:=4; wKon:=2; end;
6: begin wNach:=5; wKon:=1; end;
7: begin wNach:=6; wKon:=0; end
else showmessage('Ошибка');
end; |
|
#3
|
||||
|
||||
|
case со строками не работает.
Код:
var
Value: Integer;
if TryStrToInt(w1, Value) then
case Value of
1: begin wNach:=0; wKon:=6; end;
2: begin wNach:=1; wKon:=5; end;
3: begin wNach:=2; wKon:=4; end;
4: begin wNach:=3; wKon:=3; end;
5: begin wNach:=4; wKon:=2; end;
6: begin wNach:=5; wKon:=1; end;
7: begin wNach:=6; wKon:=0; end
else
ShowMessage('Ошибка');
end;Последний раз редактировалось ryderx34, 02.06.2011 в 10:33. |
|
#4
|
|||
|
|||
|
Цитата:
Код:
case StrToInt(w1) of
1:
begin
wNach:=0;
wKon:=6;
end;
2:
...
end;Код:
wNach:= StrToInt(w1) - 1; wKon:= 7 - StrToInt(w1); |
|
#5
|
|||
|
|||
|
Но анализ кода говорит нам, что можно обойтись одной формулой, без case:
Код:
wNach:= StrToInt(w1) - 1; wKon:= 7 - StrToInt(w1); Спасибо за быстрый ответ . |
|
#6
|
|||
|
|||
|
Уважаемые гуру. Есть задачка, которую несколько дней не могу решить. Видно такие задачки Вам ничего не стоят, помогите у кого будет желание.
Имеется DateTimePicker, дата которого равняется системной дате. Есть таблица с полей Дата_Фикс. При нажатии на кнопку в Grid-е должно выводится только те строки таблицы, которые входят в эту неделю, то есть NachNed-DateTimePicker.date и KonNed+DateTimePicker.date Последний раз редактировалось Молоток, 02.06.2011 в 15:23. |