zhang..yb 发表于 2009-3-5 10:20:30

BCB6.0 的 MEMO 控件求助

求助
BCB6.0 的 MEMO 控件,如何改变指定一行的颜色?
谢谢!

Jnny_CN 发表于 2009-3-5 10:54:51

建议用richedit实现

zhang..yb 发表于 2009-3-5 10:57:57

如何做?可明示吗?
谢谢!

Jnny_CN 发表于 2009-3-5 11:38:44

void __fastcall TForm1::FormCreate(TObject *Sender)
{
        RichEdit1->Clear();
        RichEdit1->Lines->Add(L"Line1");
        RichEdit1->Lines->Add(L"Line2");
        RichEdit1->Lines->Add(L"Line3");

        int pos = 0,Tbl_Color[]={clRed,clGreen,clBlue};

        for(int i = 0 ; i < RichEdit1->Lines->Count ; i++)
        {
                RichEdit1->SelStart = pos;
                RichEdit1->SelLength = RichEdit1->Lines->Strings.Length();
                RichEdit1->SelAttributes->Color = Tbl_Color;
                pos += RichEdit1->SelLength+1;
        }

        RichEdit1->SelLength = 0;
}

zhang..yb 发表于 2009-3-5 12:00:46

高手!
多谢!
问一下可否改变某一行的背景色?

Jnny_CN 发表于 2009-3-5 13:05:32

There it is^__________________^

void __fastcall TForm1::FormCreate(TObject *Sender)
{
                TCharFormat2 fmt;

                RichEdit1->Clear();

                RichEdit1->Lines->Add(L"Line1");
                RichEdit1->Lines->Add(L"Line2");
                RichEdit1->Lines->Add(L"Line3");

                int pos = 0;
                int Tbl_TXTColor[]={clRed,clBlack,clBlue};
                int Tbl_BGColor[]={clYellow,clGreen,clGray};

                for(int i = 0 ; i < RichEdit1->Lines->Count ; i++)
                {
                                RichEdit1->SelStart = pos;
                                RichEdit1->SelLength = RichEdit1->Lines->Strings.Length();

                                fmt.cbSize = sizeof(fmt);
                                fmt.dwMask = CFM_COLOR | CFM_BACKCOLOR;
                                fmt.crTextColor = Tbl_TXTColor;
                                fmt.crBackColor = Tbl_BGColor;

                                RichEdit1->Perform(EM_SETCHARFORMAT,SCF_SELECTION,int(&fmt));

                                pos += RichEdit1->SelLength+1;
                }

                RichEdit1->SelLength = 0;
}

zhang..yb 发表于 2009-3-5 14:04:20

编译出错
undefined symbol TCharFormat2

Jnny_CN 发表于 2009-3-5 14:07:55

我用bcb 2009编译的

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>

包含以上头文件式式

Jnny_CN 发表于 2009-3-5 14:13:44

你看看你用得是否为RichEdit的2.0以上版本。

可以执行以下语句,判断是否为2.0版本,按理说bcb6应该是2.0的
bool bRes = LoadLibrary("riched20.dll");

zhang..yb 发表于 2009-3-5 14:17:17

这些头文件在 BCB6.0 都有。
请问 BCB 2009 哪有下载? 是解密的吗?
多谢解答!

Jnny_CN 发表于 2009-3-5 14:24:20

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=3216327&bbs_page_no=1&bbs_id=1036

看这里,这是原版

网上有几百兆的绿色版你可以下来用用。


图片应该是你要的效果把

http://cache.amobbs.com/bbs_upload782111/files_12/ourdev_423773.JPG
(原文件名:untitled.JPG)

Jnny_CN 发表于 2009-3-5 14:26:23

图中   LoadLibrary("riched20.dll");不需要,仅测试

zz99 发表于 2009-7-22 15:55:59

学习,谢谢
页: [1]
查看完整版本: BCB6.0 的 MEMO 控件求助