![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() У меня есть массив ArBB[0..3] - массив типа TBitBtn, в котором есть 4 кнопки BitBtn. Одни из этих кнопок имеют картинки, другие не имеют, то есть у них свойство Glyph=nil;
Сами элементы массива располагаются вертикально, т.е. так: bitbtn1 bitbtn2 bitbtn3 bitbtn4 Мне нужно сделать так, что если кнопка не имеет картинки, то она получает картинку вышележащего квадрата, а тот квадрат получает картинку ещё вышележащего квадрата и так далее. Выходит, что если есть «пустота» на месте картинки , то её заполняют вышележащие квадраты, то есть «падают». Вот эта процедура: Код:
procedure TForm1.BitBtn25Click(Sender: TObject); var i1,p,k:integer; begin for i:=3 downto 0 do begin if ArBB[i].Glyph=nil then begin for i1:=i-1 downto 0 do p:=ArBB[i1].Glyph.Width; for k:=0 to 6 do if ArWidth[k]=p then Case_(ArBB[i1+1],k); end; end; end; Насчёт Case_: эта процедура в кнопку bb загружает рисунок под «номером» m. Код:
procedure TForm1.Case_(bb:TBitBtn; m:integer); begin case m of 0: bb.Glyph.LoadFromFile('zvonok.bmp'); 1: bb.Glyph.LoadFromFile('banan.bmp'); 2: bb.Glyph.LoadFromFile('grusha.bmp'); 3: bb.Glyph.LoadFromFile('sliva.bmp'); 4: bb.Glyph.LoadFromFile('jagoda.bmp'); 5: bb.Glyph.LoadFromFile('dgekpot.bmp'); 6: bb.Glyph.LoadFromFile('sim.bmp'); end; end; ArWidth – это массив с ширинами картинок. Каждая из 7 картинок имеет свою ширину – от 45 до 51. Я таким образом их отличаю. ArWidth: array [0..6] of integer = (50,51,49,48,47,45,46); где 50 –это ширина 'zvonok.bmp'….. 46 – это ширина 'sim.bmp'. Почему при нажатии на BitBtn25 ничего не происходит? Последний раз редактировалось Admin, 09.06.2011 в 21:35. |
#2
|
||||
|
||||
![]() Это мой проект
|