Показать сообщение отдельно
  #3  
Старый 21.10.2011, 18:20
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
У каждого пункта есть св-во Items, в котором ссылки на его подпункты.
это я знаю.но как их перебирать есди я не знаю заранее сколько их будет?

upd
ага,сделал так,на примере кепшн. это правильно получается?
в процедуре PopupMenu1Popup
в конце добавил такое
for i:=0 to PopupMenu1.Items.Count-1 do
LockPop(PopupMenu1.Items[i]);
и сама процедура
Код:
procedure LockPop(Itm:TMenuItem);
var i:Integer;
begin
if Itm.Count=0 then Itm.Caption:='' //если нет подпунктов то переименуем
else //если есть подпункты то вначале переименуем их этой же самой процедурой
 begin
 for i:=0 to Itm.Count-1 do
 LockPop(Itm.Items[i]);
 Itm.Caption:=''; //и потом переименуем переименуем основной пунтк
 end;
end;
это норм что процедурой вызывается самаже процедура? так-то вроде ошибок не возникло
Ответить с цитированием