Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 21:03   #1
nattaella
 
Регистрация: 08.01.2011
Сообщений: 8
Вопрос

У меня есть массив 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 ничего не происходит?

Это мой проект
Вложения
Тип файла: rar Новая папка (2).rar (181.7 Кб, 12 просмотров)

Последний раз редактировалось Stilet; 11.06.2011 в 15:55.
nattaella вне форума Ответить с цитированием
Старый 11.06.2011, 11:02   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

Воть, исправил!
Вложения
Тип файла: rar REBUILD.rar (181.7 Кб, 11 просмотров)
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 11.06.2011, 14:32   #3
nattaella
 
Регистрация: 08.01.2011
Сообщений: 8
По умолчанию

спс всё получилось
nattaella вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Bitbtn Vladnet Помощь студентам 2 03.06.2009 17:58
bITBTN Vladnet Общие вопросы Delphi 4 03.06.2009 11:34
Caption в BitBtn!!! rivers Компоненты Delphi 14 11.08.2008 15:36
BitBtn и ее Bitmap Yogik™ Помощь студентам 2 19.11.2007 17:12
Кнопка BitBtn Yurek Общие вопросы Delphi 10 05.11.2007 18:42