|
|
Регистрация | << Правила форума >> | 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" Помогите пожалуйста, как нужно изменить процедуру? |
#2
|
|||
|
|||
Ваш код работвет
Код:
but.Tag:=i; but.Parent:=Flowpanel1; // Что будет если поставить сюда брейк поинт F5 и запустить ? but.Width:=120; but.Height:=40;// создается 29 кнопок, но т.к. по коду не видно, что они в разном месте. в итоге, ты видишь последнюю. Код:
var i: integer; but: tspeedButton; begin i := 5; while i > 0 do begin but := Tspeedbutton.Create(self); //but.Name:='but_'+inttostr(i); but.Tag := i; but.Parent := Form1; but.Width := 120; but.Height := 40; but.Cursor := crHandPoint; but.AlignWithMargins := true; but.Top := 0; but.Caption := IntToStr(But.Tag); ShowMessage(but.Caption); i := i - 1; end; end; Последний раз редактировалось nixon232, 26.04.2018 в 08:46. |
Этот пользователь сказал Спасибо nixon232 за это полезное сообщение: | ||
Stanei (26.04.2018)
|
#3
|
|||
|
|||
вот я валенок, весь день голову ломал и дошло, я имя и тег нажатой кнопки проверял через "but.name" и "but.tag". Правильно Вы сказали, что всё работает, все значения присваиваются. Ну лоханулся немного) Спасибо за помощь.
|