![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте, столкнулся с такой проблемой, в цикле создаются кнопки:
Код:
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". Правильно Вы сказали, что всё работает, все значения присваиваются. Ну лоханулся немного) Спасибо за помощь.
|