MGAlex
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору В приведенном выше коде дело дальше 1 картинки не пойдет. Если уж Вы решили использовать свойство Tag, то его нужно для начала изменять после загрузки изображения: Код: if Image9.Tag=0 then begin Image9.Picture.LoadFromFile('alpha/д.png'); Image9.Tag := 9; end else if Image10.Tag=0 then begin Image10.Picture.LoadFromFile('alpha/д.png'); Image10.Tag := 10; end else begin Image11.Picture.LoadFromFile('alpha/д.png'); Image11.Tag := 11; end; | Однако приведенный код явно не оптимизирован. В игре будут разные слова и, соответственно, разное количество букв. При переходе на следующее задание все тэги обнуляем, все Image делаем невидимыми, а потом нужное количество Image показываем, в зависимости от количества букв в новом слове. При клике на нужную букву (Image) нужно делать цикл, например, такой: Код: procedure TForm1.Image4Click(Sender: TObject); var a, i: Integer; begin a := 0; with Panel1 do for i := 0 to ControlCount - 1 do if (Controls[i] is TImage) then if ((Controls[i] as TImage).Visible = true) and ((Controls[i] as TImage).Tag = 0) and (a = 0) then begin (Controls[i] as TImage).Picture := (Sender as TImage).Picture; (Controls[i] as TImage).Tag := (Sender as TImage).Tag; //присваиваем заполняемой ячейке значение Tag выбранной буквы (Image) a := 1; //(Sender as TImage).Picture.LoadFromFile('грузим какую-нибудь серую картинку, показывающую, что буквва выбрана и ячейка пустая'); //(Sender as TImage).Enabled := false; чтобы второй раз нельзя было кликнуть по картинке end; end; | В данном случае пустые ячейки (картинки) в которые нужно вставлять буквы, я расположил на Panel1 и иду только по ним, т.к. на форме будут и другие Image, в которых будут буквы из которых нужно выбирать: Н, А, С, О, Я, К. Каждой из букв (Image), среди которых нужно выбирать нужные буквы, я бы присваивал значение Tag от 1 до 33 при загрузке задания. Ну а при заполнении всех ячеек уже можно проверять по тегам, праивльно выполнено задание или нет. Принцип такой. | Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 22:51 10-11-2013 | Исправлено: MGAlex, 22:53 10-11-2013 |
|