三个问题300分,一个一百,大家都来说说啊~~ (300分)

  • 主题发起人 主题发起人 完颜康
  • 开始时间 开始时间

完颜康

Unregistered / Unconfirmed
GUEST, unregistred user!
1。
这样:在宏里面有一些过程的参数是集合类型,如wdcharacter(1)他是vb定义的,在delphi里可以让一个olevariant=wdcharacter (2)他是delphi 定义的。
(1、2)都是代表一个意思 但他们是两个公司做的,是不是broland故意配合vb的啊?
还有,我可以olevariant=wdcharacter,没问题,但是我在帮助里查找 wdcharacter 怎么找不到啊?delphi在哪定义的呢?
2.
在ole服务器里定义一个方法我想返回一个tstrings,应该把out参数设成什么类型?我把他设成istrings是不可以的
3.
如何再一个文本里竖着写东西,就是写完一列,再写第二列
如果有人把一个Excel文件或着一个.dbf文件导成一个txt文件,你回发现她就是竖着写的,列与列之间不是用空格搁开的
 
1、看来你还是没有仔细研究,没有好好学习,天天向上。
看Word2000.pas里面,有这句话,你就知道了。
const
wdCharacter = $00000001;
 
[:(],那是不是每个这样的参数word2000里都有定义啊?对了我好象没uses啊,不是用的ole吗
 
>>在ole服务器里定义一个方法我想返回一个tstrings
没有太弄懂你的意思,不过类似动态库,最好不用这种方式返回,否则很容易出Bug,
比较好的办法是传入一个TStrings,在动态库(Ole服务器)里面对数值进行更改,然后再返回。

不知道“Ole服务器”和DLL的区别,是否能类比,没做过。
 
剩下的俺不懂,只是横着写字写习惯了,这些都没想过,也没做过。
只是注意一下@宋体等字体的用法,好像根本没用。
 
都有定义,放上WordApplication等,它自动加的。
可以在ocx/Servers里面看见Word2000.pas和Word97.pas代码
 
不可以的,在ole服务器的方法中的out参数必须是一个指针类型的参数,他的类型是在delphi里选的,没有“tstrings”这样的类型
 
对了,今天我尝试用ole控制ie,结果失败,连门都没找到,(ie没有类似office的库类嘛)
 
retval类型!!!
 
retval,我记下了~我明天去试试,NND我记得哪本破书(书名忘了)上说要IStrings接口,连编译都不通过
 
〉〉如果有人把一个Excel文件或着一个.dbf文件导成一个txt文件,你回发现她就是竖着写的,列与列之间不是用空格搁开的
没有变化呀?原来是什么倒出来还是什么。
 
对啊,中间空着的地方不是空格啊,这个文本看起来还是像表一样
 
完颜康,很对不起!刚才没看清你的问题。我将我刚才的建议修改一下:
参数的type应该为LPWSTR;参数的modifier应该为LPWSTR[out,retval]。
另外,LPWSTR与PWideChar对应
LPSTR与PChar对应
你可以修改参数类型,然后观看implementation来发现其他的对应关系。
另外,如想将某个参数作为返回值,必须让它的modifier为LPWSTR[out,retval],此时它
的名字已经不再重要——这些我想你都知道,我不再废话了.
我做了试验,应该没问题。
 
〉〉对啊,中间空着的地方不是空格啊,这个文本看起来还是像表一样
当然不是空格,是制表符。如果你选择*.csv保存,就是逗号了。这和竖着排有什么关系?
 
没用的,
用IStrings没用,
调用时会出现错误
我是用变通的办法实现的,
不知道用变体变量有没有用
 
这就怪了,我还是Out parameter requires pointer type 的错误嘛
还有,我想返回的是个TStrings实际上也就是一个TStringList类型,LPWSTR与PWideChar好象不行吧~
 
To: savenight
我是想先写完一列,过一会又算出一些值,想写在第二列上,和前面的列并排,这样
to:星之瀚海
变体类型也不能返回TStrings的(TStringList)啊,你有什么好办法
 
那就不要用文本,至少在处理的过程中不用。
 
别用TStrings了,你可以把 TStrings.Text 输出,变成 PChar,或者转换成PWideChar 输出嘛
转换成PWideChar也容易:
ws:WideString;
ws:=aTStrings.Text;
PWideChar(ws)就是PWideChar了
 
后退
顶部