![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно создать оператор проверки? [D7]
IIIakal © (2009-03-19 09:39:00)Здравствуйте! Помогите пожалуйста решить такую задачу:
имеется 10 переменных: s1, s2 и т.д. нужно сделать такую проверку
if s1>0 then
набор команд
else
if s2>0 then
набор команд
else
и т.д.
Т.е. если переменная больше 0 , то выполнять заданные действия.
Спасибо за внимание!
ЮЮ (2009-03-19 10:59:00) [41]
if s1>0 then begin
slot1.Visible:=true;
label1.Visible:=true;
label1.Caption:=inttostr(k1);
image1.Picture.LoadFromFile('img/1.gif');
image1.Visible:=true;
end
else begin
if s2>0 then
slot2.Visible:=true;
label2.Visible:=true;
label2.Caption:=inttostr(k2);
image2.Picture.LoadFromFile('img/2.gif');
image2.Visible:=true
end
else begin
if s3>0 then
slot3.Visible:=true;
label3.Visible:=true;
label3.Caption:=inttostr(k3);
image3.Picture.LoadFromFile('img/3.gif');
image3.Visible:=true;
end
else
end;
Подчеркнуте - не к селу, не к городу.
Твой код не соответствует subj-у
Должно быть
if s1>0 then begin
slot1.Visible:=true;
label1.Visible:=true;
label1.Caption:=inttostr(k1);
image1.Picture.LoadFromFile('img/1.gif');
image1.Visible:=true;
end
else if s2>0 then begin
slot2.Visible:=true;
label2.Visible:=true;
label2.Caption:=inttostr(k2);
image2.Picture.LoadFromFile('img/2.gif');
image2.Visible:=true
end
else if s3>0 then begin
slot3.Visible:=true;
label3.Visible:=true;
label3.Caption:=inttostr(k3);
image3.Picture.LoadFromFile('img/3.gif');
image3.Visible:=true;
end
...
при условии, что изначально установлено
slot1.Visible:=false;
label1.Visible:=false;
и т.д.
но код всё-же может и должен быть переписан так, чтобы было
for i := 1 to 10 do begin
<код должен использовать переменную i>
end;
Плохиш (2009-03-19 10:55:00) [42]
> {RASkov} © (19.03.09 10:50) [19]
Хотя скажем так "не в том месте эндыпонаставил..... горе программист" ;-)
Плохиш (2009-03-19 10:53:00) [43]
> {RASkov} © (19.03.09 10:50) [19]
Действительно, извиняюсь, дальше второй комбинации else begin мой взгляд и опускаться не стал :-)
{RASkov} (2009-03-19 10:50:00) [44]> [18] Плохиш © (19.03.09 10:49)
Синтаксически верно, но логически нет....
Автору вопроса достаточно внимательно посмотреть на [1]...
Плохиш (2009-03-19 10:49:00) [45]
> {RASkov} © (19.03.09 10:46) [16]
бегины-то тут при чём, к тому же поставленные синтаксически верно.
Плохиш (2009-03-19 10:48:00) [46]
> IIIakal (19.03.09 10:44) [15]
Или читаепь про оператор if then else или занимайся своими прямыми обязанностями.
{RASkov} (2009-03-19 10:46:00) [47]> [15] IIIakal (19.03.09 10:44)
> if s1>0 then begin
> slot1.Visible:=true;
> label1.Visible:=true;
> label1.Caption:=inttostr(k1);
> image1.Picture.LoadFromFile('img/1.gif');
> image1.Visible:=true;
> end
> else
> begin
> if s2>0 then
> slot2.Visible:=true;
> label2.Visible:=true;
> label2.Caption:=inttostr(k2);
> image2.Picture.LoadFromFile('img/2.gif');
> image2.Visible:=true
> end
> else
> begin
> if s3>0 then
> slot3.Visible:=true;
> label3.Visible:=true;
> label3.Caption:=inttostr(k3);
> image3.Picture.LoadFromFile('img/3.gif');
> image3.Visible:=true;
> end
> else
> end;
не в том месте бегины понаставил..... горе программист :)
IIIakal (2009-03-19 10:44:00) [48]
if s1>0 then begin
slot1.Visible:=true;
label1.Visible:=true;
label1.Caption:=inttostr(k1);
image1.Picture.LoadFromFile('img/1.gif');
image1.Visible:=true;
end
else
begin
if s2>0 then
slot2.Visible:=true;
label2.Visible:=true;
label2.Caption:=inttostr(k2);
image2.Picture.LoadFromFile('img/2.gif');
image2.Visible:=true
end
else
begin
if s3>0 then
slot3.Visible:=true;
label3.Visible:=true;
label3.Caption:=inttostr(k3);
image3.Picture.LoadFromFile('img/3.gif');
image3.Visible:=true;
end
else
end;
ЮЮ (2009-03-19 10:37:00) [49]
> форматировать? как?
Приведи код, который реально вызывал
> не, я так писал, ругается на второе else: ';' expected 'ELSE'
> found
>
и я покажу как :)
IIIakal (2009-03-19 10:34:00) [50]Извините, я полный чайник в Дельфе/паскале, не спорю, поэтому и прошу помощи
> однако о необходимости форматировать код
форматировать? как?
ЮЮ (2009-03-19 10:28:00) [51]
> В чем сут проблемы то?
синтаксическая ошибка в коде
';' expected 'ELSE' found';' expected 'ELSE' found
навела автора на мысль, что в дельфи трудно выразить очевидную логику автора.
дальнейшие реплики автора наводят на мысль, что цыклы он ещё не проходил, но уже знаетif then else, однако о необходимости форматировать код, дабы избежать элементарных ошибок он тоже, похоже, не знает
Плохиш (2009-03-19 10:22:00) [52]
> IIIakal (19.03.09 09:56) [8]
А я так и не понял.
В чем сут проблемы то?
ЮЮ (2009-03-19 10:20:00) [53]
>
> Переменные получаем из БД
Врешь, из БД получаешь значения, а хранить их в переменных s1..s10 - это твое решение.
Хранить можно и в array of string и в TStrings, тем более, что алгоритм один и тот же.
немо2 (2009-03-19 10:02:00) [54]да,
tMas=record
fa:integer;
fp:procedure;
end;
IIIakal (2009-03-19 09:56:00) [55]
> В чем сут проблемы то?
Переменные получаем из БД, каждая переменная отвечает за показ картинки в разных image, т.е. если =0 то картинку не показывать, если любое другое число то выводится картинка....
> А "набор команд" везде свой?
да, s1 - передает параметры image1, s2 - image2 и т.д.
немо2 (2009-03-19 09:53:00) [56]procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..3] of tMas;
i:integer;
procedure p1; begin showmessage('1'); end;
procedure p2; begin showmessage('2'); end;
procedure p3; begin showmessage('3'); end;
begin
a[1].fa:=1;
a[1].fp:=@p1;
a[2].fa:=-1;
a[2].fp:=@p2;
a[3].fa:=1;
a[3].fp:=@p3;
for i:=1 to 3 do
if a[i].fa<0
then exit
else a[i].fp;
end;
ЮЮ (2009-03-19 09:50:00) [57]
> не, я так писал, ругается на второе else: ';' expected 'ELSE'
> found
значит не так писал
ЮЮ (2009-03-19 09:48:00) [58]Или тебя смущает 10 if-oв? А "набор команд"везде свой?
Спасибо за внимание!
Пожалуйста! Лучше бы вопрос задал, вежливый ты наш :) В чем сут проблемы то?
IIIakal (2009-03-19 09:46:00) [59]
> немо2
Да
IIIakal (2009-03-19 09:46:00) [60]
> ЮЮ
не, я так писал, ругается на второе else: ';' expected 'ELSE' found