![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день !
Помогите выяснить в чём проблема Я создаю 50 кнопок в режиме run time, помещая их в ряд по 10 штук в прцессе создания задаю различные свойства мне нужно чтоб кнопки с определённым tag были невидимы я делаю так: Код:
var Form1: TForm1; a:TButton; mas:array[1..50]of tbutton; i,z:integer; implementation {$R *.dfm} procedure TForm1.FormShow(Sender: TObject); var top,cap:integer; begin top:=5; z:=0; for I := 1 to 10 do begin a:=Tbutton.Create(self); a.Parent:=form1; a.Height:=20; a.Width:=20; a.Top:=top; a.Left:=z*21; a.Tag:=i; a.Caption:=Inttostr(a.Tag); z:=z+1; end; z:=0; for I := 11 to 20 do begin case a.tag of 18:a.Visible:=false; 20:a.Visible:=false; end; a:=Tbutton.Create(self); a.Parent:=form1; a.Height:=20; a.Width:=20; a.Top:=top+20; a.Left:=z*21; a.Tag:=i; a.Caption:=Inttostr(a.Tag); z:=z+1; end; z:=0; for I := 21 to 30 do begin case a.tag of 30:a.Visible:=false; end; a:=Tbutton.Create(self); a.Parent:=form1; a.Height:=20; a.Width:=20; a.Top:=top+40; a.Left:=z*21; a.Tag:=i; a.Caption:=Inttostr(a.Tag); z:=z+1; end; z:=0; for I := 31 to 40 do begin case a.tag of 38:a.Visible:=false; 40:a.Visible:=false; end; a:=Tbutton.Create(self); a.Parent:=form1; a.Height:=20; a.Width:=20; a.Top:=top+60; a.Left:=z*21; a.Tag:=i; a.Caption:=Inttostr(a.Tag); z:=z+1; end; z:=0; for I := 41 to 50 do begin a:=Tbutton.Create(self); a.Parent:=form1; a.Height:=20; a.Width:=20; a.Top:=top+80; a.Left:=z*21; a.Tag:=i; a.Caption:=Inttostr(a.Tag); z:=z+1; end; end; end. Всё работает как часы, за исключением того, что кнопки с tag = 20,30 и 40 не становятся невидимыми. Почему то цикл массива не затрагивает обработку этих кнопок , если я делаю например for I := 31 to 41 do, то кномка 40 обрабатывается как положенно и становится невидимой , но тогда после неё появляется кнопка 41 а этого ненужно ![]() Кто подскажет в чём причина ? Последний раз редактировалось kaizer131, 03.09.2009 в 14:35. |
#2
|
||||
|
||||
![]() Так ты сначала проверяешь Tag, а только потом его присваиваешь
![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() О точно, заработался
![]() Вот что значит свежий взгляд ! Спасибо ![]() |