|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
присвоить значение "Tag" динамически создаваемым кнопкам в цикле
Здравствуйте, столкнулся с такой проблемой, в цикле создаются кнопки:
Код:
procedure Tmain.SpeedButton2Click(Sender: TObject); var i:integer; begin i:=ADOTable1.recordcount; //подсчёт кол-ва строк в БД while i>0 do begin but:=Tspeedbutton.Create(self); //but.Name:='but_'+inttostr(i); but.Tag:=i; but.Parent:=Flowpanel1; but.Width:=120; but.Height:=40; but.Cursor:=crHandPoint; but.AlignWithMargins:=true; DataSource1.DataSet.RecNo:=i; //выбор строки в таблице but.Caption:=DataSource1.DataSet.Fields[1].AsString; //текст на кнопке из первого столбца в таблице but.OnClick:=main.click; i:=i-1; end; end; после выполнения процедуры все кнопки имеют тег "1", проверял с помощью showmessage. А если убрать цикл и создать только одну кнопку, то её тег будет "29" (29 строк в таблице). Пробовал присваивать имя кнопкам, но тоже с циклом на выходе у всех кнопок значение "name" равно "but_1", а без цикла одна кнопка создаётся "but_29" Помогите пожалуйста, как нужно изменить процедуру? |