关于高亮显示括号匹配的算法(delphi)

本文总结了如何在Delphi中实现高亮显示括号匹配的算法。通过计数器和奇偶数判断,有效地找出并处理匹配的括号,同时对匹配位置进行背景色的设置。
摘要由CSDN通过智能技术生成

环境: 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 :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值