anchor.diff:    FVisible := AValue;
     if FOnScreen then
       if FVisible then
  -      HandleShow
  +    begin
  +//      writeln('DEBUG:  TfpgWidget.SetVisible - handleshow');
  +      HandleShow;
  +    end
       else
       begin
  +//      writeln('DEBUG:  TfpgWidget.SetVisible - handlehide');
         HandleHide;
         FOnScreen := True;
       end;
  
positive.code: destructor TfpgWidget.Destroy;
  begin
    {$IFDEF DEBUG}
    writeln('TfpgWidget.Destroy [', Classname, ']');
    {$ENDIF}
    HandleHide;
    inherited;
  
negative.code:   n: integer;
    c: TComponent;
  begin
    FOnScreen := True;
    AllocateWindowHandle;
    DoSetWindowVisible(FVisible);
  
    for n := 0 to ComponentCount - 1 do
    begin
      c := Components[n];
      if (c is TfpgWidget) and (TfpgWidget(c).Parent = self) then
      begin
        if not (c is TfpgPopupMenu) then  // these should not be created yet
        begin
          TfpgWidget(c).Visible := FVisible;
          TfpgWidget(c).HandleShow;
        end;
      end;
    end;
  end;
  
  