环境: SynEdtor控件 + delphi
匹配括号的算法:传入参数 APoint: TBufferCoord;
const
Brackets: array[0..7] of char = ('(', ')', '[', ']', '{', '}', '<', '>');
var
Line: string;
i, PosX, PosY, Len: integer;
Test, BracketInc, BracketDec: char;
NumBrackets: integer;
p: TBufferCoord;
begin
Result.Char := 0;
Result.Line := 0;
// 获取到鼠标的位置
PosX := APoint.Char;
PosY := APoint.Line;
Line := Lines[ APoint.Line -1 ];
if Length(Line) >= PosX then
begin
Test := Line[PosX];
//判断是不是数组里的括号
for i := Low(Brackets) to High(Brackets) do
if Test = Brackets[i] then
begin
// 这里可以得到当前选中的括号与数组的匹配的括号是哪个?
BracketInc := Brackets[i];
BracketDec := Brackets[i xor 1]; // 0 -> 1, 1 -> 0, ...
// NumBrackets 这个计数器很关键,如果等于0。表示找到了匹配的括号
NumBrackets :
关于高亮显示括号匹配的算法(delphi)
最新推荐文章于 2023-05-14 08:38:34 发布
本文总结了如何在Delphi中实现高亮显示括号匹配的算法。通过计数器和奇偶数判断,有效地找出并处理匹配的括号,同时对匹配位置进行背景色的设置。
摘要由CSDN通过智能技术生成