Вниз
Скачать: CL | DM;

Помогите сократить код...   Найти похожие ветки 

← →
r00t ©   (2003-11-08 10:39) [0]

Имеется такой код:

var
in1,in2,in3,...,in16:integer;
begin
if Edit1.Text="a" then in1:=1;
if Edit1.Text="b" then in1:=2;
if Edit1.Text="c" then in1:=3;
...
if Edit1.Text="z" then in1:=26;
/////////////////////////////////////////////
if Edit2.Text="a" then in2:=1;
...
{----------и т.д.-----------------}
end;

Возможно ли как нибудь автоматизировать данную
процедуру или делать все тупым перебором?
Заранее спасибо.


← →
Igorek ©   (2003-11-08 11:15) [1]

1) вместо in1,in2,in3,...,in16:integer; сделай массив
2) присваивай елементам массива код символов минус соотв. смещение


← →
Anatoly Podgoretsky ©   (2003-11-08 13:42) [2]

if Edit1.Text[1] in ["a".."z"] then in1 := Ord(Edit1.Text[1])-64;


← →
OlegGashev ©   (2003-11-08 13:45) [3]

if Edit1.Text[1] in ["a".."z"] then in1 := Ord(Edit1.Text[1])-ord("a")+1;


← →
phan   (2003-11-09 22:48) [4]

in1:=Ord(Edit1.Text[1]);
if (in1>96)and(in1<123) then in1:=in1-96;


← →
icWasya ©   (2003-11-10 09:56) [5]


var
int : array [1..16] of integer;
Edit : TEdit;
i : Integer;
.....

for i:=1 to 16 do begin
Edit:=FindComponent("Edit"+IntToStr(I));
if Edit.Text[1] in ["a".."z"] then in[i] := Ord(Edit.Text[1])-ord("a")+1;

end;



← →
Zergling ©   (2003-11-10 10:55) [6]

r00t ©

На будующее. Внекоторых ситуациях вместо кучи IF удобней использовать CASE


← →
Silver Alex ©   (2003-11-10 11:12) [7]

> Zergling

case работает с типом Integer, но не со String


← →
Плохиш_   (2003-11-10 11:13) [8]

>Silver Alex © (10.11.03 11:12) [7]

но также работает с типом char


← →
Zergling ©   (2003-11-10 11:15) [9]

Silver Alex © (10.11.03 11:12) [7]

Знаем. Но судя по коду ему нужен только один символ в работе, а с Char Case работает без проблем.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
3-65753
Abikos
2003-10-31 15:25
2003.11.20
Как реализовать такой запрос ?


1-65997
Иришка
2003-11-09 21:29
2003.11.20
ScrollBar


3-65738
Verba
2003-10-31 18:24
2003.11.20
Обновление Select


1-65850
Алёна
2003-11-07 14:37
2003.11.20
Почему хинт не появляется!


1-65952
STANT
2003-11-11 00:48
2003.11.20
Принудительно обновить StatusBar




   Наверх