iCAx开思网

标题: CAA: CATSettingRepository::WriteSetting()后如何更新 [打印本页]

作者: HNBoTree    时间: 2005-10-17 14:13
标题: CAA: CATSettingRepository::WriteSetting()后如何更新
我用:
VRepository=CATSettingRepository::GetRepository("VisualizationRepository");
VRepository->WriteSetting("3DFxAccuracy",&f);
VRepository->SaveRepository();
VRepository->Commit(0);
后没有更新内存,有那位知道怎样将我修改后的值更新到内存中去!
作者: acoka    时间: 2005-10-17 14:42
按这个debug一下,Commit就是更新内存的吧

CATSettingRepository *pVRepository = CATSettingRepository::GetRepository( "VisualizationRepository" );
if ( !pVRepository ) {
        break;
}

double prevVal = 99999.0;
long ret = pVRepository->ReadSetting( "3DFxAccuracy",&prevVal  );
// check preval here, 如果这了读不出来,那么下面的Write也就考虑一下了
if ( -1 == ret ) {
        break;
}

ret = pVRepository->WriteSetting( "3DFxAccuracy",&f );
if ( -1 == ret ) {
        break;
}

ret = pVRepository->SaveRepository();
if ( 0 != ret ) {
        // SaveRepository会替你Commit,这里实际上不需要,只是为了确认一下
        ret = pVRepository->Commit();
        if ( -1 != ret ) {
                // 问题不在commit
                break;
        }
};

[ 本帖最后由 acoka 于 2005-10-17 15:39 编辑 ]
作者: HNBoTree    时间: 2005-10-18 08:51
标题: 为什么ReadSetting( "3DFxAccuracy",&prevVal )读不出来
acoka兄,我通过您给的代码测试后发现ReadSetting( "3DFxAccuracy",&prevVal  )读不出来,这是什么原因,您能帮忙解释吗?
我怎样才能直接得到内存里的3DFxAccuracy值?
作者: HNBoTree    时间: 2005-10-18 12:43
将 prevVal 类型由double换成float后,ReadSetting( "3DFxAccuracy",&prevVal  ) 是能够得到其值的,并且可以看出设置前后值是不同的,但是为什么不能够即时的刷新的内存里去啊,救救我啊!老大们!
作者: HNBoTree    时间: 2005-10-18 14:37
谢谢各位老大这段时间的帮助,我的sag问题终于解决了
方法是直接用脚本语言修改界面的值




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3