关于 f1book(100分)

  • 主题发起人 饿饱鹅
  • 开始时间
饿

饿饱鹅

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在 F1BOOK 电子表控件 中加入一个自定义的函数。
如象其内部函数“ABS()”那样实现 比如向外部某一个文件
取数等等的F1BOOK所未提供的功能。
我的大概思路是:当用户输入一个数值后,判断是否为一个
自定义的函数,若是则执行其功能,若否则返回给系统。
可是我不知道具体该怎么实现。
谢谢您的不吝指教。



 
可以用特别的符号表示自定义函数。比如以"="开始。然后在相应的事件中进行处理。
但要注意对内容的保存,是保存函数串的相对值还是只保存计算结果。可以模仿excel
 
我曾有印象看到有篇文章介绍f1book的某个版本能自定义函数,不知是否真有这回
事。国产的CELL中就有这个功能。
 
F1Book不支持字定义函数, 但是你所要求的功能可以通过F1Book的EndEdit事件来处
理。F1Book1.EndEdit(EditString: String; Cancel: Boolean);
通过对EditString进行判断, 再将ActiveCell赋以相应的值。
 
F1Book的专业版也不支持自定义函数, 但是有一个CALL函数可以调用DLL里面的函数
 
专业版里面的CALL调用比较复杂, 不适合普通用户使用。
 
关于国产CELL比较好用。可惜注册费!!! 不适合我们业余者使用。
EXCEL 最好用。可惜界面不能和DELPHI融合。另外自定义函数我不会写。
用F1BOOK是无奈之举。
具体细化有这几个问题:
1公式和计算结果分别存在什么地方。
2我在试的时候,在同一 FORM 中放一个F1BOOK 一个 EDIT放 F1BOOK的结果。
用ENDEDIT 事件测试,可是EDIT的值比F1BOOK中慢了一拍,打二下ENTER 后
才显示第一次的值。
3在网上DOWN 的 V6 和 V5 版能安装。不能反注册, 每二次重复安装显示 CLASS
已经注册 F1BOOK已使用。



 
公式直接赋值给一个Cell: F1Book1.FormulaRC[nRow,nCol]:=公式字符串;
公式的计算结果一般都直接显示到Cell里面, 例如,根据单元1:1是否为空为单元1:2
赋以不同的值:
F1Book1.FurmulaRC[1,2] := '=IF(F1Book1.EntryRC[1,1]='', '单元1:1为空', '单元1:1以赋值');
 
尝试了一下还是不明白。公式和公式结果分别用哪二个属性来表示?
FurmulaRC[]放公式字符串。 可是EntryRC[]并不是放计算结果呀!
能否给一个简单的例子说明一下,
谢谢


 
鹅, 前面的回答有点小毛病, 现在我把有关赋值取值的几个函数都详细的描述一下吧:

1. Entry--赋值给当前Cell; 如果赋值一个公式,前面需要有 = 如:'=SUM(...)'
或取得当前Cell的值; 如果当前Cell里面有公式,则返回公式
2. EntryRC[]--赋给或取出指定Cell的值
3. Formula--赋公式给当前Cell; 公式前面不需要 = 如: 'SUM(...)'
或者取出当前Cell的公式字符串
4. FormulaRC[]--指定Cell的公式
5. Text--设置当前Cell中的字符串; 如果当前Cell包含公式, 则公式被覆盖
或取出当前Cell的字符串值; 如果当前Cell是一个公式, 则返回计算结果
6. TextRC[]--指定Cell
7. Number--为当前Cell赋数值; 如果有公式, 则公式被数值覆盖
取值的时候, 如果是数值, 则返回数值, 否则返回0; 如果有公式, 则返回公式计算结果数值或0
8. NumberRC[]--指定Cell
 
明白了。谢谢!
哪么:

在网上DOWN 的 V6 和 V5 版能安装。不能反注册, 每二次重复安装显示 CLASS
已经注册 F1BOOK已使用。

请问,如何反注册 class?


 
我用控制面板中的安装/删除应用程序反安装6.0没问题。
实在删除不了只有手工修改注册表一途了。
 
完整的情况是这样, 比如用 IMPORT ACTIVEX CONTROL 安装OCX 文件。
安装完成后 MOVE IT 。第二次安装 DELPHI 显示 上次注册的CLASS 已
存在。
 
这是由于DELPHI的IMPORTS中已经有了VCF1.DCU的缘故.他是DELPHI预定义的.解决的
方法是,1.可以在COMPONENT中的INSTALL PACKAGES的列表中删掉 BORLAND SAMPLE
IMPORTED ACTIVEX CONTROLS.然后再注册FORMULA ONE 6.0即可成功.
2.可以在加入FORMULA ONE 6.0 的时候把CLASS NAME 改为TF1BOOK6之类的
名字,这样就可以了.
 
yanglibo,这里又看到你!
我想此问题可以分配了。最好给一分:)
 
前段时间重装机子,没了PROXY 。我从中国电信上网,再也进下了此地。今天从
DELPHI心得网站中得到了PROXY 。立刻进来了。不好意思。这么长时间才给各位
分。
在此对大家的热情帮助,表示衷心的感谢。
谢谢!
 
多人接受答案了。
 
顶部