论坛风格切换切换到宽版
  • 3073阅读
  • 4回复

[求助]能否实现在code段修改组件所属的类型? [复制链接]

上一主题 下一主题
离线Sense
 

发帖
101
金钱
40
威望
4
只看楼主 倒序阅读 0 发表于: 2013-10-20
  1. [Components]
  2. Name: "a"; Description: "a"; Types: full compact custom
  3. Name: "b"; Description: "b"; Types: full compact
  4. Name: "c"; Description: "c"
有这么3个安装组件,我想在code段检查系统环境,然后根据结果决定是否把组件b从类型compact中去除。能否实现?
请指教,谢谢!
离线wanfu

发帖
2728
金钱
12110
威望
1211
只看该作者 1 发表于: 2013-10-20
删除不知道可否,但是禁用是可以的。http://bbs.hanzify.org/read-htm-tid-97382.html
离线Sense

发帖
101
金钱
40
威望
4
只看该作者 2 发表于: 2013-10-20
回 1楼(wanfu) 的帖子
wanfu:删除不知道可否,但是禁用是可以的。http://bbs.hanzify.org/read-htm-tid-97382.html (2013-10-20 08:53) 

谢谢!
昨天已经按兄台的代码思路,插入到类型combo控件事件,部分实现我的要求。但这么做只是从界面入手,并不是真正修改类型和组件的从属关系,所以还会有一点小问题。
因为刚学inno不久,对它的功能不是很了解,所以想问问inno有没有提供相应的接口来修改这个从属关系。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2013-10-20
你可以这样:

[Components]
Name: "a"; Description: "a"; Types: full compact custom
Name: "b"; Description: "b"; Types: full compact; Check: ConditionCheck
Name: "b"; Description: "b"; Types: full; Check: not ConditionCheck
Name: "c"; Description: "c"


function ConditionCheck(): Boolean;
begin
  Result := DirExists(ExpandConstant('{pf}\myapp'));
end;
离线Sense

发帖
101
金钱
40
威望
4
只看该作者 4 发表于: 2013-10-21
回 3楼(gnatix) 的帖子
gnatix:你可以这样: [Components]Name: "a"; Description: "a"; Types: full compact customName: "b"; Description: "b"; Types: full compact; Check: ConditionCheck....... (2013-10-20 23:01) 

谢谢!
在Components段使用check,结果为假时组件将不出现在列表中。而我想要的效果是结果为假,组件依然显示但禁用。
可能inno并未开放修改组件从属关系?
目前已经用wanfu版的代码,虽然这种实现方法不算完美,但对使用影响不大。