免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
RichEdit 中實現(xiàn)代碼著色
貼給你好了,我找到的,試過,很好使。
--------------------------------------
在   RichEdit   中實現(xiàn)代碼著色

下面的代碼將以指定顏色對一些指定單詞著色,就象delphi中的代碼編輯器那樣。  

procedure   CodeColors(Form   :   TForm;Style   :   String;   RichE   :   TRichedit;
                                                  InVisible   :   Boolean);  
const  
    //   符號...  
    CodeC1:   array[0..20]   of   String   =   ( '# ', '$ ', '( ', ') ', '* ', ', ',  
                    '. ', '/ ', ': ', '; ', '[ ', '] ', '{ ', '} ', ' < ', '> ',  
                    '- ', '= ', '+ ', ' ' ' ', '@ ');  
    //   保留字...  
    CodeC2:   array[0..44]   of   String   =   ( 'and ', 'as ', 'begin ',  
                    'case ', 'char ', 'class ', 'const ', 'downto ',  
                    'else ', 'end ', 'except ', 'finally ', 'for ',  
                    'forward ', 'function ', 'if ', 'implementation ', 'interface ',  
                    'is ', 'nil ', 'or ', 'private ', 'procedure ', 'public ', 'raise ',  
                    'repeat ', 'string ', 'to ', 'try ', 'type ', 'unit ', 'uses ', 'var ',  
                    'while ', 'external ', 'stdcall ', 'do ', 'until ', 'array ', 'of ',  
                    'in ', 'shr ', 'shl ', 'cos ', 'div ');  
var  
    FoundAt   :   LongInt;  
    StartPos,   ToEnd,   i   :   integer;  
    OldCap,T   :   String;  
    FontC,   BackC,   C1,   C2   ,C3   ,strC,   strC1   :   TColor;  
begin  
    OldCap   :=   Form.Caption;  
    with   RichE   do  
    begin  
        Font.Name   :=   'Courier   New ';  
        Font.Size   :=   10;  
        if   WordWrap   then   WordWrap   :=   false;  
        SelectAll;  
        SelAttributes.color   :=   clBlack;  
        SelAttributes.Style   :=   [];  
        SelStart   :=   0;  
        if   InVisible   then  
        begin  
            Visible   :=   False;  
            Form.Caption   :=   'Executing   Code   Coloring... ';  
        end;  
    end;  

    BackC   :=   clWhite;   FontC   :=   clBlack;  
    C1   :=   clBlack;   C2   :=   clBlack;   C3   :=   clBlack;  
    strC   :=   clBlue;   strC1   :=   clSilver;  

    if   Style   =   'Twilight '   then  
    begin  
        BackC   :=   clBlack;   FontC   :=   clWhite;  
        C1   :=   clLime;   C2   :=   clSilver;   C3   :=   clAqua;  
        strC   :=   clYellow;   strC1   :=   clRed;  
    end  
    else  
    if   Style   =   'Default '   then  
    begin  
        BackC   :=   clWhite;   FontC   :=   clBlack;  
        C1   :=   clTeal;   C2   :=   clMaroon;   C3   :=   clBlue;  
        strC   :=   clMaroon;   strC1   :=   clSilver;  
    end  
    else  
    if   Style   =   'Ocean '   then  
    begin  
        BackC   :=   $00FFFF80;   FontC   :=   clBlack;  
        C1   :=   clMaroon;   C2   :=   clBlack;   C3   :=   clBlue;  
        strC   :=   clTeal;   strC1   :=   clBlack;  
    end  
    else  
    if   Style   =   'Classic '   then  
    begin  
        BackC   :=   clNavy;   FontC   :=   clYellow;  
        C1   :=   clLime;   C2   :=   clSilver;   C3   :=   clWhite;  
        strC   :=   clAqua;   strC1   :=   clSilver;  
    end  
    else  
    begin  
        with   RichE   do  
        begin  
            T   :=   '{ '+Style+ '   =   Invalid   Style   [Default,Classic,Twilight,Ocean]   ONLY!   } ';  
            Lines.Insert(0,T);  
            StartPos   :=   0;  
            ToEnd   :=   Length(Text)   -   StartPos;  
            FoundAt   :=   FindText(T,   StartPos,   ToEnd,   [stWholeWord]);  
            SelStart   :=   FoundAt;  
            SelLength   :=   Length(T);  
            SelAttributes.Color   :=   clRed;  
            SelAttributes.Style   :=   [fsBold];  
            StartPos   :=   0;  
            ToEnd   :=   Length(Text)   -   StartPos;  
            FoundAt   :=   FindText( 'ONLY! ',   StartPos,   ToEnd,   [stWholeWord]);  
            SelStart   :=   FoundAt;  
            SelLength   :=   4;  
            SelAttributes.Color   :=   clRed;  
            SelAttributes.Style   :=   [fsBold,fsUnderLine];  
        end;  
    end;  

    RichE.SelectAll;  
    RichE.color   :=   BackC;  
    RichE.SelAttributes.color   :=   FontC;  

    for   i   :=   0   to   100   do  
    begin  
        with   RichE   do  
        begin  
            StartPos   :=   0;  
            ToEnd   :=   Length(Text)   -   StartPos;  
            FoundAt   :=   FindText(IntToStr(i),   StartPos,   ToEnd,   [stWholeWord]);  
            while   (FoundAt   <>   -1)   do  
            begin  
                SelStart   :=   FoundAt;  
                SelLength   :=   Length(IntToStr(i));  
                SelAttributes.Color   :=   C1;  
                SelAttributes.Style   :=   [];  
                StartPos   :=   FoundAt   +   Length(IntToStr(i));  
                FoundAt   :=   FindText(IntToStr(i),   StartPos,   ToEnd,   [stWholeWord]);  
            end;  
        end;  
    end;  
    for   i   :=   0   to   20   do  
    begin  
        with   RichE   do  
        begin  
            StartPos   :=   0;  
            ToEnd   :=   Length(Text)   -   StartPos;  
            FoundAt   :=   FindText(CodeC1[i],   StartPos,   ToEnd,   []);  
            while   (FoundAt   <>   -1)   do  
            begin  
                SelStart   :=   FoundAt;  
                SelLength   :=   Length(CodeC1[i]);  
                SelAttributes.Color   :=   C2;  
                StartPos   :=   FoundAt   +   Length(CodeC1[i]);  
                FoundAt   :=   FindText(CodeC1[i],   StartPos,   ToEnd,   []);  
            end;  
        end;  
    end;  
    for   i   :=   0   to   44   do  
    begin  
        with   RichE   do  
        begin  
            StartPos   :=   0;  
            ToEnd   :=   Length(Text)   -   StartPos;  
            FoundAt   :=   FindText(CodeC2[i],   StartPos,   ToEnd,   [stWholeWord]);  
            while   (FoundAt   <>   -1)   do  
            begin  
                SelStart   :=   FoundAt;  
                SelLength   :=   Length(CodeC2[i]);  
                SelAttributes.Color   :=   C3;  
                SelAttributes.Style   :=   [fsBold];  
                StartPos   :=   FoundAt   +   Length(CodeC2[i]);  
                FoundAt   :=   FindText(CodeC2[i],   StartPos,   ToEnd,   [stWholeWord]);  
            end;  
        end;  
    end;  
    Startpos   :=   0;  
    with   RichE   do  
    begin  
        FoundAt   :=   FindText( ' ' ' ',   StartPos,   Length(Text),   []);  
        while   FoundAt   <>   -1   do  
        begin  
            SelStart   :=   FoundAt;  
            Startpos   :=   FoundAt+1;  
            FoundAt   :=   FindText( ' ' ' ',   StartPos,   Length(Text),   []);  
            if   FoundAt   <>   -1   then  
            begin  
                SelLength   :=   (FoundAt   -   selstart)+1;  
                SelAttributes.Style   :=   [];  
                SelAttributes.Color   :=   strC;  
                StartPos   :=   FoundAt+1;  
                FoundAt   :=   FindText( ' ' ' ',   StartPos,   Length(Text),   []);  
            end;  
        end;  
    end;  

    Startpos   :=   0;  
    with   RichE   do  
    begin  
        FoundAt   :=   FindText( '{ ',   StartPos,   Length(Text),   []);  
        while   FoundAt   <>   -1   do  
        begin  
            SelStart   :=   FoundAt;  
            Startpos   :=   FoundAt+1;  
            FoundAt   :=   FindText( '} ',   StartPos,   Length(Text),   []);  
            if   FoundAt   <>   -1   then  
            begin  
                SelLength   :=   (FoundAt   -   selstart)+1;  
                SelAttributes.Style   :=   [];  
                SelAttributes.Color   :=   strC1;  
                StartPos   :=   FoundAt+1;  
                FoundAt   :=   FindText( '{ ',   StartPos,   Length(Text),   []);  
            end;  
        end;  
    end;      

    if   InVisible   then  
    begin  
        RichE.Visible   :=   True;  
        Form.Caption   :=   OldCap;  
    end;  
    RichE.SelStart   :=   0;  
end;
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
delphi,幾個實用的HTML解析函數(shù)
Lazarus 0.9.31 編譯 BASS 音頻庫 的例子,不能播放中文名的 MP3 的解決。
4.1 順序查找算法
iOS 字符串的操作
JS在文本域光標位置插入文本
javascript 中cookies 使用
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服