![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() всем здравствуйте! делаю игрушку дело в том что не знаю как сделать правильно поэтому спрошу вас!
на форме будет использоваться много image; например 20 штук координаты каждого image будет закреплёна и в каждом будет разная картинка. (координаты выставляю в ручную без массива ) - image 1-20 Нужно чтобы один image из 20 появился рандомно, затем кликая по нему появляется следующая и так далее так же рандомно из 20,и нужно чтобы не повторялись как бы "использованное нельзя повторять" Пример кода: Код: Код:
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure MasClick(Sender: TObject); { Private declarations } public { Public declarations } end; var Form1: TForm1; mas:array[1..20] of TImage; //масив из 20 имадже m:set of byte; //множество номеров implementation {$R *.dfm} //создание масива procedure TForm1.FormCreate(Sender: TObject); var i,j,k,d:byte; begin randomize; d:=10; Form1.ClientHeight:=400+5*d; Form1.ClientWidth:=500+6*d; for i:=1 to 4 do for j:=1 to 5 do begin k:=5*(i-1)+j; mas[k]:=TImage.Create(Form1); with mas[k] do begin Parent:=Form1; width:=100; height:=100; Left:=j*d+100*(j-1); Top:=i*d+100*(i-1); canvas.Brush.Color:=clWhite; tag:=i; visible:=false;//все прячем OnClick:=MasClick end; end; i:=1+random(20); //один показываем m:=[i]; mas[i].Visible:=true; end; //процедура клика на имадже procedure TForm1.MasClick(Sender: TObject); var i:byte; begin repeat i:=1+random(20); until not(i in m); m:=m+[i]; //показываем очередной случайный if (sender is timage) then mas[i].Visible:=true; end; |