есть tswitch, при его включении динамически создается кнопка в tabcontrol на tabitem2 (сам свитчер находится в tabitem1), и при выключении tswitch кнопка соответственно должна уничтожаться(btn.destroy). только вот при повторном нажатии на tswitch, происходит ошибка при попытке создать кнопку
btn := TButton.Create(tabbedwithnavigationform.i1); //i1 - кнопка лежащая в том же tabitem2
Пробовал также уничтожать кнопку другим способом - btn.free, все было без ошибок, вот только кнопка оставалась на форме, и в итоге при повторном нажатии на свитчер просто появлялась вторая кнопка. Пробовал еще и freeandnil(btn); результат точно такой же
весь код:
procedure addi (sw:tswitch; s:string; sob:myproc; ii:integer);
begin
if sw.IsChecked=false then
begin
izm[ii] := TButton.Create(tabbedwithnavigationform.i1);
izm[ii].BeginUpdate;
izm[ii].Position.Y:=-99;
izm[ii].Align := talignlayout.top;
izm[ii].TintColor:=tabbedwithnavigationform.i1.TintColor;
izm[ii].Text:=s;
izm[ii].OnTap:=sob;
izm[ii].EndUpdate;
izm[ii].Parent := tabbedwithnavigationform.VertScrollBox2;
end
else
begin
izm[ii].Destroy;
end;
end;
Вопрос
Alesk
есть tswitch, при его включении динамически создается кнопка в tabcontrol на tabitem2 (сам свитчер находится в tabitem1), и при выключении tswitch кнопка соответственно должна уничтожаться(btn.destroy). только вот при повторном нажатии на tswitch, происходит ошибка при попытке создать кнопку
btn := TButton.Create(tabbedwithnavigationform.i1); //i1 - кнопка лежащая в том же tabitem2
Пробовал также уничтожать кнопку другим способом - btn.free, все было без ошибок, вот только кнопка оставалась на форме, и в итоге при повторном нажатии на свитчер просто появлялась вторая кнопка. Пробовал еще и freeandnil(btn); результат точно такой же
весь код:
procedure addi (sw:tswitch; s:string; sob:myproc; ii:integer); begin if sw.IsChecked=false then begin izm[ii] := TButton.Create(tabbedwithnavigationform.i1); izm[ii].BeginUpdate; izm[ii].Position.Y:=-99; izm[ii].Align := talignlayout.top; izm[ii].TintColor:=tabbedwithnavigationform.i1.TintColor; izm[ii].Text:=s; izm[ii].OnTap:=sob; izm[ii].EndUpdate; izm[ii].Parent := tabbedwithnavigationform.VertScrollBox2; end else begin izm[ii].Destroy; end; end;
izm[] - массив из tbutton
i1 - кнопка лежащая в том же tabitem2
Изменено пользователем AleskСсылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.