![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно создать оператор проверки? [D7]
IIIakal © (2009-03-19 09:39:00)Здравствуйте! Помогите пожалуйста решить такую задачу:
имеется 10 переменных: s1, s2 и т.д. нужно сделать такую проверку
if s1>0 then
набор команд
else
if s2>0 then
набор команд
else
и т.д.
Т.е. если переменная больше 0 , то выполнять заданные действия.
Спасибо за внимание!
Anatoly Podgoretsky (2009-03-19 14:53:00) [21]> IIIakal (19.03.2009 14:45:41) [41]
Других дать нельзя, ты вообще должен на меня молиться, столько времени удастся съэкомить, не будет жалко бесцельно прожитых лет, лучше дворником.
IIIakal (2009-03-19 14:45:00) [22]
> Зря ты это с программированием связался, не твое это.
Ну да, такие советы проще всего давать.....
Anatoly Podgoretsky (2009-03-19 14:41:00) [23]Зря ты это с программированием связался, не твое это.
IIIakal (2009-03-19 14:38:00) [24]
> запись значений в массив
>
> :=S[1]>0;
*
f:=s[1]>0;
нескаприровался
IIIakal (2009-03-19 14:36:00) [25]не я понял что от минимума до максимума массива s
а как и где она объявляется?
я написал вот так:
var
Kol: array [1..10] Of TLabel;
Image: array [1..10] of TImage;
S, K: array [1..10] of integer;
F: boolean;
N: integer;
begin
запись значений в массив
:=S[1]>0;
for N:=Low(S) to High(S) do begin
Kol[N].Visible:=f;
Image[N].Visible:=f;
if F then begin
F:=S[N]>0;
Kol[N].Caption:=IntToStr(K[N]);
Image[N].Picture.LoadFromFile('img/1.jpg');
end;
вылетает с ошибкой при выполнение...
Медвежонок Пятачок (2009-03-19 14:24:00) [26]а то типа сразу было не понятно
IIIakal (2009-03-19 14:21:00) [27]спс
Медвежонок Пятачок (2009-03-19 14:19:00) [28]переменная цикла, принимающая значения от Low(S) до High(S)
IIIakal (2009-03-19 14:16:00) [29]смешно
Медвежонок Пятачок (2009-03-19 14:15:00) [30]буква
IIIakal (2009-03-19 14:08:00) [31]
> for N:=Low(S) to High(S) do begin
N - что это?
ЮЮ (2009-03-19 11:52:00) [32]
>
> по моему нельзя создать массив с именем Label
создай с другим. А по моему нельзя 10 раз подряд копипастить один и тот же код. Тем более, что завтра слотов потребуется 100, а послезавтра их количестово будет задаваться динамически в зависимости от записей, возвращаемых запросом. Но тебя же это не останавливает :)
IIIakal (2009-03-19 11:45:00) [33]
> {RASkov}
по моему нельзя создать массив с именем Label...
{RASkov} (2009-03-19 11:24:00) [34]Вот примерно так попробуй:
f:=S[1]>0;
for N:=Low(S) to High(S) do begin
Label[N].Visible:=F;
Image[N].Visible:=F;
if F then begin
F:=S[N]>0;
Label[N].Caption:=IntToStr(K[N]);
Image[N].Picture.LoadFromFile(<сформированное имя>);
end;
end;
где
Label: array [1..10] Of TLabel;
Image: array [1..10] of TImage;
S, K: array [1..10] of Integer;
F: boolean;
IIIakal (2009-03-19 11:21:00) [35]Ура заработало!!! Всем огромное спасибо за помощь)))
ЮЮ (2009-03-19 11:13:00) [36]'img/no j.gif'
верни как было :)
IIIakal (2009-03-19 11:13:00) [37]а как тогда сделать, может через метки?
ЮЮ (2009-03-19 11:12:00) [38]
> Убрал переменные, создал два массива....программа компилируется,
> но отоброжатеся только первый image///
else здесь не нужен
if s[1]>0 then begin
slot1.Visible:=true;
label1.Visible:=true;
label1.Caption:=inttostr(k[1]);
image1.Picture.LoadFromFile('img/noj.gif');
image1.Visible:=true;
end;
if s[2]>0 then begin
slot2.Visible:=true;
label2.Visible:=true;
label2.Caption:=inttostr(k[2]);
image2.Picture.LoadFromFile('img/noj.gif');
image2.Visible:=true
end;
а отступу внутри блока begin ... end - ОЮЯЗАТЕЛЬНЫ
Медвежонок Пятачок (2009-03-19 11:11:00) [39]все верно
если s[1]>0, то другие ветки ифа просто не выполняются.
букварь-то покури....
IIIakal (2009-03-19 11:07:00) [40]Убрал переменные, создал два массива....программа компилируется, но отоброжатеся только первый image///
if s[1]>0 then begin
slot1.Visible:=true;
label1.Visible:=true;
label1.Caption:=inttostr(k[1]);
image1.Picture.LoadFromFile('img/noj.gif');
image1.Visible:=true;
end
else if s[2]>0 then begin
slot2.Visible:=true;
label2.Visible:=true;
label2.Caption:=inttostr(k[2]);
image2.Picture.LoadFromFile('img/noj.gif');
image2.Visible:=true
end
else if s[3]>0 then begin
slot3.Visible:=true;
label3.Visible:=true;
label3.Caption:=inttostr(k[3]);
image3.Picture.LoadFromFile('img/noj.gif');
image3.Visible:=true;
end
end;