rtf文件格式的问题(125分)

  • 主题发起人 主题发起人 lvzhijong
  • 开始时间 开始时间
L

lvzhijong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何将文本和位图混排存成rtf文件?
听说rxrichedit可以
请各位指点
 
就是是若干行文本
其中某几行文本中夹张位图


 
rxlib有个sample,是个比较完整的richedit的程序,看看就知道了。
 
to soul:
是domo/riched2 吗?
我怎么编译不过?,出错为: '[Error] RxCtrls.pas(1802): Invalid typecast'
可是我自己写的 rxrichedit1.lines.loadformfile(filename) 就可通过
why?
多谢
 
五发现demo种的sample都编译不了
总是出如下的错误: '[Error] RxCtrls.pas(1802): Invalid typecast'
即这行: State := TOwnerDrawState(WordRec(LongRec(ItemState).Lo).Lo);
哪位讲讲为什么?
 
如果你用Delphi 5 + RX 2.75,应该是下面这句才正确:
State := TOwnerDrawState(LongRec(itemState).Lo);
源代码中有对Dephi 5的判断,发生这个问题可能是你安装有误,仔细看一下安装说明.

如果不是RX 2.75则:
1. 下载一个
2. 把那条语句改为上面那样,也凑合.
 
to 温柔一刀:
照你的方法改了以后,编译通过了.但程序便死了,按任何键都无用,只好
run/program reset.
 
to soul:
sample已看了,可编译不过,出现的问题见上.
大虾帮忙,多谢
 
对不起,我说也凑合,看来是凑合不了 :-)
对D5 的支持有很多地方要修改,
我的 D5+Rx2.75没问题,你的如不是2.75,
只好下载一个了.
 
to 温柔一刀:
看来只好重装了,请问readme种的这句话是什么意思,是说将 RX.INC 的{$DEFINE DCS} 行注释掉吗?
多谢

If you have Delphi 5 Professional or Standard Edition, deactivate the
conditional define {$DEFINE DCS} in the RX.INC file before compiling the
library.
 
是的,把这行去掉.
 
to 温柔一刀:
已经装成了,但依然如故.
是不是demo下的例子本身编译不过呢?
因为我自己用rxrichedit存储rtf没问题的.
 
首先,我编译demo例子没发现问题

那段源代码是这样:
{$IFDEF WIN32}
{$IFDEF RX_D5}
State := TOwnerDrawState(LongRec(itemState).Lo);
{$ELSE}
State := TOwnerDrawState(WordRec(LongRec(itemState).Lo).Lo);
{$ENDIF}
{$ELSE}
State := TOwnerDrawState(WordRec(itemState).Lo);
{$ENDIF}

如果按照你说的编译通不过,必然是没有Define RX_D5,
原因在哪里,你只能看看你的编译环境了.
RichEdit没问题是因为没有用到RXCtrls.pas,你实验一下其他
RX controls,如果自己的程序也能通过,那才奇怪了.
如果不能通过,则确实编译环境有问题了,看看RX.INC文件,
是否能发现问题.
 
to 温柔一刀:
终于可以了!
我在之前装的是2.6,直接从/bpl 下删除了与rx有关的 *.bpl.
然后按照help安装2.75,其中2.75的demo和unit目录与2.6的不同 .
我发现程序调用的unit仍是2.6下的.
将2.75的 unit目录下的文件覆盖掉2.6unit下的就可以了

//btw 如何更改编译环境指向的unit目录 ,也就是是程序使用2.75 unit目录下
的文件.我估计这是我安装错误造成的,因为 readme中有这么一句话:
Uninstall previous installed version of RX Library from Delphi 5 IDE.
而我是直接删除的.

最后 多谢大虾这几日的帮忙
 
仅仅删除bpl是没用的,
IDE->Tools->Env... Options->library->library path
删除旧的目录,添加新的(新的应该已经添加好了,只是可能由于在旧的后面,没起作用)
 
to 温柔一刀:
照大虾教的做法删掉 tools/中的旧目录后一切告定了
再次感谢大虾这几日的帮助
 
后退
顶部