Войти

Показать полную графическую версию : [решено] Работа с переменной


drovosek
10-12-2010, 07:48
Всем привет. Помагите пожалуйста. Вопрос тупой.
У меня 5 картинок. У каждой имя (b1,b2,b3,b4,b5). Есть массив a[1..5] Мне надо менять у них атрибут по условию, я пишу цикл


for i:=1 to 5 do begin if a[i]=yslovie then begin b{тут надо что бы переменная стала (b"i") тоесть либо b1,b2......}.Visible:=false; end; end;

сли я напишу bi то получается он ищет картинку bi, а мне надо чтобы он вместо i подставлял значение из цикла. Вроде понятно объяснил.
Тут видать надо i в скобки какие то поставить или ченить другое сделать.

Lilsun
10-12-2010, 09:02
Что то не очень понятно что нужно сделать.

Можно менять "random`но"
Если я понял правильно то вам нужно сделать так:

If то что нам нужно then
Выполняем действие
Else
Выполняем другое действие;

Можно и так:
If то что нам нужно then
begin
тут действие
//Тут можно писать несколько действий.
end
Else
тут действие;

И так:
If то что нам нужно then
if действие then
тут второе действие
esle
действие;

Как то как. Если что то не понял то напишите по лучше,помогу.

Если нужно сделать что то типа анимации можно таймером менять.
Вот,посмотрите тут (http://www.delphisources.ru/pages/faq/faq_delphi_basics/Case.php.html)

pva
10-12-2010, 09:28
drovosek, учись изъясняться. Можно свернуть в такую форму:

var
b_refs : array[1..5] of TPicture;
i: integer;

begin
b_refs[1] := b1;
b_refs[2] := b2;
b_refs[3] := b3;
b_refs[4] := b4;
b_refs[5] := b5;

for i:=1 to 5 do
begin
if condition_match(a[i]) then b[i].Visible := false;
end
end

А лучше вообще всё хранить не в b1..b5, а в массиве аналогично b_refs. Я исходил из предположения что элементы массива a не приводятся к TPicture (иначе можно было бы пользоваться a).
мне не хватает HTML-ного тега <var>, чтобы отделять имена переменных от обычного текста :(

drovosek
10-12-2010, 17:57
pva, спсибо, я не знал что можно массив из картинок сделать. Думал только из числе и текста можно.

pva
11-12-2010, 11:05
drovosek, Массив (в делфи) можно сделать из всего, что:

копируется (клонируется, счётчики ссылок)
создаётся конструктором без параметров (либо имеет значение nil)

В делфи все классы управляются указателями, а для них вышеперечисленное справедливо.
чтобы массив стал "хозяином" своего содержимого, требуется чтобы содержимое умело саморазрушаться, т.е. был бы описан деструктор




© OSzone.net 2001-2012