Вниз
Скачать: CL | DM;

Twincontrol.Controlscount   Найти похожие ветки 

 
denis24   (2004-11-24 12:30) [0]

Создаю в скролбаре кнопки (button1,button2,button3.....),потом удаляю некоторые из них.
Затем на их место опять хочу вставить новые
Но когда прохожу циклом по всем контролам что бы определить где свободное место
for i:=0 to frm1.ScrollBox3.ControlCount-1 do
if strtoint(copy((frm1.ScrollBox3.Controls[i] as TButton).name,8,2))<>i+1

У меня смещается эта i  относительно имени кнопки(button1,button2button3.....).
Вопрос ,Как отслеживать это controls[I],чтобы получать номер освободившегося места?


 
clickmaker ©   (2004-11-24 12:40) [1]

Не завязываться на i, а хранить уникальный номер в св-ве Tag, например


 
denis24   (2004-11-24 12:49) [2]

У меня уникальный номер хранится в имени кнопки (Button1,bitton2,button3......)
А если удалить button2 то как в цикле получить номер свободного места ,тоесть в данном случае 2?


 
PRM   (2004-11-24 12:54) [3]

if ButtonOwner.FindComponent("Button2")=nil then
  //Компонента нет


 
denis24   (2004-11-24 13:25) [4]

Пишу

//создаю кнопку
with button do
begin
Parent := frm1.ScrollBox3;
Name := "Button1";
.
//проверяю на существование
if frm1.ScrollBox3.FindComponent("button1")=nil then
и он его не находит ,хотя button с именем "button1" там точно есть.
Это как?


 
Плохиш ©   (2004-11-24 13:44) [5]


> denis24   (24.11.04 13:25) [4]

FindControls


 
clickmaker ©   (2004-11-24 13:49) [6]


> if strtoint(copy((frm1.ScrollBox3.Controls[i] as TButton).name,8,2))<>i+1
>

Не стоит номера хранить в строке. Лишняя работа по разбору строки. Лучше Tag юзать



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1100797528
Sanek_Metaller
2004-11-18 20:05
2004.12.05
Задачка


6-1096453559
GHJ
2004-09-29 14:25
2004.12.05
TTcpClient


1-1100850456
Frozzen
2004-11-19 10:47
2004.12.05
Объявление массива


9-1088438773
Evgeniy_K
2004-06-28 20:06
2004.12.05
VSync


1-1101136171
MasterVovan
2004-11-22 18:09
2004.12.05
События и DLL




   Наверх