我見很多人問過這個問題,但沒有高手指出:建个新Form类,published的属性在属性设计器中不可见!!

解决方案 »

  1.   

    就是說FORM中是沒有像組件中的published聲明的,但可以加上,問題是在FORM中的published部分聲明的自定義屬性并不像組件中聲明的那樣會在設計時在OBJECT INSPECTOR(屬性檢視器)中可以看到編輯.
    這個問題以前我也問過,其他人也問過,但沒有确切的答案(有說用OPEN TOOLS API),但不知如何做,高手請貼代碼出來
      

  2.   

    一句話,FORM的自定義屬性如何在OBJECT INSPECTOR(屬性檢視器)可見?!
      

  3.   

    如果你自定义的属性是只读的,那么OBJECT INSPECTOR中是不会出现那个自定义属性的,其他的我倒还没有见过不能出现的
      

  4.   

    請看清問題,是FORM不是組件
      

  5.   

    如果你没有在设计的时候摆放组件,而是自己在Editor里加的代码,当然了,你还不能紧接着TForm1 = class(TForm)写,因为这里写的话,Ide环境会自动检查设计期是否有此对象存在。
    当你自己写了一个Published块的时候,再在里面写上一些诸如Button2 : TButton此类的代码时,你要弄清一件事,就是这个时候,Button2的实例并不存在,只是一个声明而已。所以你在Object Inspector里是看不见它的!
      

  6.   

    TO rocinsky(独酒) 
    你的意思是在Published塊里的如Property聲明出的屬性是在Object Inspector中看不到的嗎?那組件為什麼可以看到,是不是組件在設計狀態已經實例化?FORM如何在設計狀態實例化?
    是不是FORM的自定義屬性在Object Inspector中看不到是正常的?那麼加個域和屬性不是沒有什麼區別?
      

  7.   

    ide只能显示已安装组件的pubished字段,正如你写了个控件个自己的工程用,但是没有安装它到面板上,而是在运行时动态生成它的实例来用,这种组件的published字段也是看不到的(当然,它根本不会在设计shi显示出来)。
    要让你的form能在设计时显示published属性,用toolapi将form安装到ide环境内,delphi中有个例子好像是在sample-〉openapi目录下,关于xpform的。你可以参考一下。
      

  8.   

    to :tonylk(tony) 
    我用的是D7,能告訴我在哪里找到這個範例嗎?
      

  9.   

    {$D7}\Demos\ToolsAPI\XPAppWiz
    编译并安装这个组建包,打开delphi菜单下的“New”->“Other”,会出现XP Application选项,这个form就是由xpappwiz组建生成的,当然这个组建所作的只是在创建tform时,在程序资源内增加一个供xp操作系统读取的,描述用的xml文件,
    你完全可以改造一下这个程序,让它生成form的unit时,使用你自己的form,如:
    interface
    type
      TForm1 = class(TMyForm)
    ...
    然后,需要怎么将你的form安装上delphi我没有仔细研究过,可能只要保证你的form类的unit在uses字段里,并且delphi能够找到它就可以了吧,需要复杂一点的例子的话,可以参考一下这个控件是怎么干的:
    http://www.tonixsoft.com/index.php?mmenu_id=4&smenu_id=0010
    下的TntUnicode,安装它后,它会在new对话框内添加一个TntForm的选项,这个form是支持unicode的,是这个控件包提供的一个form类。