Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно создать оператор проверки? [D7]


Страницы:   1 2 3 4

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;


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо