delphi 7怎样设置代码编辑窗口关键字高亮显示
答案:3 悬赏:0 手机版
解决时间 2021-01-06 22:48
- 提问者网友:趣果有间
- 2021-01-06 15:08
delphi 7怎样设置代码编辑窗口关键字高亮显示
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-01-06 16:15
如果是d7,那么就用cnpark的高亮设置那里修改。
如果是d7以上版本,就把option-editor option-color -element 里把 line highlight 改回原来或者你想要的颜色。
或者
自定义模式下把所有element属性的background color 的default默认都改成想要的颜色.
如果是d7以上版本,就把option-editor option-color -element 里把 line highlight 改回原来或者你想要的颜色。
或者
自定义模式下把所有element属性的background color 的default默认都改成想要的颜色.
全部回答
- 1楼网友:十年萤火照君眠
- 2021-01-06 17:36
肯定不能在delphi中设置,下面是我在网上找到的代码,你可以试试:
在 RichEdit 中实现代码着色
下面的代码将以指定颜色对一些指定单词着色,就象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;
在 RichEdit 中实现代码着色
下面的代码将以指定颜色对一些指定单词着色,就象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;
- 2楼网友:山河有幸埋战骨
- 2021-01-06 16:41
在代码编辑窗口,点击右键选择Properties,然后在Color选项卡里面改
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯