delphi 覆盖模式处理透明


本文整理自网络,侵删。

 

delphi 覆盖模式处理透明

1、创建一个Mark图层

2、对覆盖区域进行行列扫描(使用背景色,设置透明)

  PRGB = ^TRGB;
  TRGB = record
    b, g, r, a: Byte;
  end;
  PRGBArray = ^TRGBArray;
  TRGBArray = array [0 .. 65565] of TRGB;

 


        // use cMask image to remove overlaping rTab area
        slPtr := Integer(cBmp.ScanLine[y1]);
        slSize := Integer(cBmp.ScanLine[y1 + 1]) - slPtr;
        slPtr2 := Integer(cMask.ScanLine[y1]);
        slSize2 := Integer(cMask.ScanLine[y1 + 1]) - slPtr2;
        if i > 0 then
        begin
          for h := y1 to y2 - 1 do
          begin
            Row := PRGBArray(slPtr);
            Row2 := PRGBArray(slPtr2);
            for w := 0 to FTabOverLap - 1 do
              if Row2[w + (FTabWidth - FTabOverLap) + 1].g <> 0 then
              begin
                Row[w + x1].r := Byte(FColorBackground);
                Row[w + x1].g := Byte(FColorBackground shr 8);
                Row[w + x1].b := Byte(FColorBackground shr 16);
                Row[w + x1].A := 0;
              end;
            slPtr := slPtr + slSize;
            slPtr2 := slPtr2 + slSize2;
          end;
        end;
        // overlaping rTab area cleared

相关阅读 >>

Delphi dcc32.exe 参数说明

Delphi 判断文件名是否有效

Delphi 强迫将半型英数字转换成全型英数字

Delphi xe10 针对全面屏手机端无法全面显示,下方显示黑条的处理

Delphi颜色转换函数

Delphi tradiogroup 单选分组框组件

Delphi 隐藏 tpagecontrol 的标签方法

Delphi 最全_日期格式_dateutils时间单元说明

Delphi listview 导出excel txt vcf 单元

Delphi 随机程序名

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...