我自建了一个窗体Parent,然后又从他这继承得到了另一个窗体Child,
在Child的Creat事件执行后,我不想让窗体直接Show出来,所以把Visible属性置为false(帮助里说的)
问题出现了,假如我在设计期间不打开Child,那么一切正常,要是我将Child打开一看,它的Visible明显的写着True。
我就不信邪了,改为false之后保存,之后打开Child一看,俺地娘啊,怎么还是true 阿????
而且不是所有从Parent继承得来的窗体都这样,只有几个Child窗体,似乎是不接受我设置的visible是的。
不知有人遇见过没有?如蒙指点,深表感谢!

解决方案 »

  1.   

    在form.OnCreate设置窗体属性是不合理的,因为这时的窗体尚未创建.虽然不报错但根本起不到效果,包括在OnShow,onActive里面想要隐藏自身窗体都会报错,不信你可以试一下写入Self.Visible:=False或者Self.Hide都会报错.
      

  2.   

    并不是在事件中改写Tform.Visible属性,我是在设计时期改变Tfrom.Visible的值,你说的那个我同意。但是我的问题不是这个。
    实际上Form的属性都是保存在窗体文件中的,可是我对窗体View As text 却看不到Visible属性,我从object inspect
    中改变visible为False,并没有影响,重新打开Form 时 他的Visible 依然是True 我的目的就是想在子窗体Create之后不默认的Show出来,所以要把Visible置为False。
    但是总是不能保存成功,或者是哪一个属性影响了他?我还没有找到?
      

  3.   

    有啊,你再仔细找找
    object Form1: TForm1
      Left = 192
      Top = 115
      Width = 870
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      Visible = True
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
    endbtw,form的Visible默认是False
    窗体本来就是Create之后不显示的