Hi,
 
I got this code for design time editing (note the line+comment *** 
aHook.SelectOnlyThis(aECTC.Tabs);  { force the OI to refresh } ***).
That line should refresh OI so the deleted item (CollectionItem) is removed 
(node in OI).
It worked in recent Lazarus versions, but it doesn't work in the latest trunk 
(i.e. item is removed but related node in OI persists).
I don't know which revision broke it.
What should I do?
 
Note: Lazarus (TPageControl) have not this problem. It uses plain 
DeletePersistent() method (in ComponentEditor.pas) .
 
procedure TECTabCtrlEditor.ExecuteVerb(Index: Integer);
var aECTC: TECTabCtrl;
    aECTab: TECTab;
    aHook: TPropertyEditorHook;
begin
  if Component is TECTabCtrl
    then aECTC:=TECTabCtrl(Component)
    else exit;  { Exit! }
    begin
      aHook:=nil;
      if not GetHook(aHook) then exit;  { Exit! }
      case Index of
        0: begin
             aECTab:=aECTC.AddTab(etaLast, True);
             aHook.PersistentAdded(aECTab, True);
           end;
        1: begin
             aECTab:=aECTC.AddTab(etaBeside, True);
             aHook.PersistentAdded(aECTab, True);
           end;
        2: begin
             aECTab:=aECTC.Tabs[aECTC.TabIndex];
             aHook.PersistentDeleting(aECTab);
             aECTC.DeleteTab(aECTC.TabIndex);
             aHook.SelectOnlyThis(aECTC.Tabs);  { force the OI to refresh }
           end;
        3: aECTC.MovePrevious();
        4: aECTC.MoveNext();
      end;
      Modified;
    end;
end;               
 
V.

-- 
_______________________________________________
Lazarus mailing list
[email protected]
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to