bcb中一个简单而又奇怪的问题。

时间:2021-03-24 20:03:27
新建一个窗体,在窗体上放置一个RichEdit1控件和一个Edit1控件,然后将RichEdit1的滚动条ScrollBars设置为ssBoth。在Edit1的Edit1KeyDown事件中加入如下代码:
     if(Key == VK_RETURN && Edit1->Text.Trim()!="")
    {
        RichEdit1->SelAttributes->Color=clRed;
        RichEdit1->Lines->Add(Edit1->Text.Trim());
    }
编译,执行。在Edit1中输入任何信息+回车都会在RichEdit1中显示相同的红色内容,这是正正常的。先多输入一些内容,直到RichEdit1中的内容超过1页,然后用鼠标点一下RichEdit1控件,将鼠标中间的滑轮多滚动几下,滚动条就会上下移动,这里也是正常的。然后在Edit1再输入几个字+回车。奇怪的问题就出现了,这是在RichEdit1中显示的最后以行字竟然是黑色的……请问是怎么回事?大家见过没,麻烦提供解决方法。谢谢!

另如果有对OLE熟悉的人,希望告诉一下我怎么设置WORD中内容的段落对齐方式,解决另行加分,谢谢!

12 个解决方案

#1


附加:我用的是BCB 5.0

#2


我用BCB5按照你的方法试了好多次,没有出现你所说的情况,RichEdit1中一直都是红色的字。

#3


你用滚轮将滑块滑到最底端再试下,我是每次滑到最底端就会有一行黑色的字出来

#4


奇怪!CBC6.0 第一次在Edit里输入内容后回车而在RichEdit1里添加的第一行的内容不是红色的。

#5


      WordApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat").OleFunction("IndentCharWidth",2); // //首字退两格

#6


终于有人出现类似的情况了,希望大家多研究下哈。我也正在找原因。
to:
   jone7319(舍我其谁)
   我要的对齐方式是左对齐、右对齐、居中 这三种方式,谢谢。麻烦你在帮忙一下。
   我朋友提供给我的是:
   vWordDoc.OlePropertyGet("Paragraphs").OleFunction("Item",1).OlePropertySet("Alginment",1);/*设置该段的对齐方式,0表示左对齐,1表示居中对齐,2表示右对齐*/
   但是用不了,他也说不出为什么。看这个能不能给你点提示?
    

#7


SelAttributes
指的是当前的插入点
而在Lines里添加文本,并不是从当前的插入点开始
只不过插入后把插入点修改了

#8


谢谢
    FFSB
    通过你的提示我解决了那个简单的BUG,确实是输入点的问题SelAttributes 只能设置光标位置的颜色,在每次输入文字前增加将光标调解到文本末尾就可以了。

#9


帖子先不结,等几天,看是否有人能帮我把OLE的问题解决

#10


其实解决你的问题不难,你只要打开Word,记录宏,然后打开VBA看它的代码,再将代码改为BCB代码即可,当然要熟悉OLE。我现没有时间,等有时间我帮你转一下。

#11


问题解决了。谢谢你的提示,结贴!

#12


不好意思,本来准备加分给你们的,但是系统提示:“无权限使用此功能”。只好先给你们各,25分了,下次碰见多给你们再补偿你们啊。

#1


附加:我用的是BCB 5.0

#2


我用BCB5按照你的方法试了好多次,没有出现你所说的情况,RichEdit1中一直都是红色的字。

#3


你用滚轮将滑块滑到最底端再试下,我是每次滑到最底端就会有一行黑色的字出来

#4


奇怪!CBC6.0 第一次在Edit里输入内容后回车而在RichEdit1里添加的第一行的内容不是红色的。

#5


      WordApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat").OleFunction("IndentCharWidth",2); // //首字退两格

#6


终于有人出现类似的情况了,希望大家多研究下哈。我也正在找原因。
to:
   jone7319(舍我其谁)
   我要的对齐方式是左对齐、右对齐、居中 这三种方式,谢谢。麻烦你在帮忙一下。
   我朋友提供给我的是:
   vWordDoc.OlePropertyGet("Paragraphs").OleFunction("Item",1).OlePropertySet("Alginment",1);/*设置该段的对齐方式,0表示左对齐,1表示居中对齐,2表示右对齐*/
   但是用不了,他也说不出为什么。看这个能不能给你点提示?
    

#7


SelAttributes
指的是当前的插入点
而在Lines里添加文本,并不是从当前的插入点开始
只不过插入后把插入点修改了

#8


谢谢
    FFSB
    通过你的提示我解决了那个简单的BUG,确实是输入点的问题SelAttributes 只能设置光标位置的颜色,在每次输入文字前增加将光标调解到文本末尾就可以了。

#9


帖子先不结,等几天,看是否有人能帮我把OLE的问题解决

#10


其实解决你的问题不难,你只要打开Word,记录宏,然后打开VBA看它的代码,再将代码改为BCB代码即可,当然要熟悉OLE。我现没有时间,等有时间我帮你转一下。

#11


问题解决了。谢谢你的提示,结贴!

#12


不好意思,本来准备加分给你们的,但是系统提示:“无权限使用此功能”。只好先给你们各,25分了,下次碰见多给你们再补偿你们啊。