⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myedit.pas

📁 delphi LED 显示屏用,带串口发送,内容编辑,演示功能
💻 PAS
📖 第 1 页 / 共 5 页
字号:
                            bmptemp.canvas.TextOut(0,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.Brush.Color:=0;
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmpdot.Canvas.CopyMode:=cmSrcPaint;
                            bmptemp.Canvas.Font.Color:=SCREENCOLOR[tpdata[kk].color];
                            bmptemp.canvas.TextOut(0,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                        end
                        else if (k1=5) then
                        begin
                            bmpdot.Canvas.CopyMode:=cmSrcPaint;
                            bmptemp.Canvas.Font.Color:=$ff*(tpdata[kk].extra and 1)+$ff00*(tpdata[kk].extra div 2 and 1);
                            bmptemp.canvas.TextOut(1,0,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.Brush.Color:=color;
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmptemp.canvas.TextOut(1,2,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmptemp.canvas.TextOut(0,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmptemp.canvas.TextOut(2,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.Brush.Color:=$ffffff;
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmpdot.Canvas.CopyMode:=cmSrcAnd;
                            bmptemp.Canvas.Font.Color:=0;
                            bmptemp.canvas.TextOut(1,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                            bmptemp.Canvas.Brush.Color:=0;
                            bmptemp.Canvas.FillRect(Rect(0,0,bmptemp.Width,bmptemp.Height));
                            bmpdot.Canvas.CopyMode:=cmSrcPaint;
                            bmptemp.Canvas.Font.Color:=SCREENCOLOR[tpdata[kk].color];
                            bmptemp.canvas.TextOut(1,1,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                        end
                        else
                        begin
                            bmptemp.Canvas.Font.Color:=SCREENCOLOR[tpdata[kk].color];
                            bmptemp.canvas.TextOut(0,0,str1);
                            bmpdot.Canvas.Draw(x,y+yoff,bmptemp);
                        end;


                        {if (k1=6) then
                        begin
                            bmptemp.Canvas.Font.Color:=$ff0000;
                            kcolor:=$ff0000;
                            bmptemp.canvas.TextOut(1,1,str1);
                            fcolor:=SCREENCOLOR[tpdata[kk].color];
                        end
                        else
                        begin
                            kcolor:=SCREENCOLOR[tpdata[kk].color];
                            fcolor:=$ff*(tpdata[kk].extra and 1)+$ff00*(tpdata[kk].extra div 2 and 1);
                            if k1=1 then  bmptemp.canvas.TextOut(0,1,str1)
                            else if k1=3 then  bmptemp.canvas.TextOut(1,0,str1)
                            else if (k1=5) and (kcolor<>fcolor) then bmptemp.canvas.TextOut(1,1,str1)
                            else bmptemp.canvas.TextOut(0,0,str1);
                        end;
                        if (k1=1) then
                        begin
                            for kx:=0 to bmptemp.Width-1 do
                            begin
                                for ky:=1 to bmptemp.Height-1 do
                                begin
                                    mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                    if mcolor=kcolor then
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx,ky-1];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky-1]:=fcolor;
                                    end;
                                end;
                            end;
                        end
                        else if (k1=2) then
                        begin
                            for kx:=0 to bmptemp.Width-1 do
                            begin
                                for ky:=0 to bmptemp.Height-2 do
                                begin
                                    mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                    if mcolor=kcolor then
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx,ky+1];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky+1]:=fcolor;
                                    end;
                                end;
                            end;
                        end
                        else if (k1=3) then
                        begin
                            for kx:=1 to bmptemp.Width-1 do
                            begin
                                for ky:=0 to bmptemp.Height-1 do
                                begin
                                    mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                    if mcolor=kcolor then
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx-1,ky];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx-1,ky]:=fcolor;
                                    end;
                                end;
                            end;
                        end
                        else if (k1=4) then
                        begin
                            for kx:=0 to bmptemp.Width-2 do
                            begin
                                for ky:=0 to bmptemp.Height-1 do
                                begin
                                    mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                    if mcolor=kcolor then
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx+1,ky];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx+1,ky]:=fcolor;
                                    end;
                                end;
                            end;
                        end
                        else if (k1=5)  then
                        begin
                            if kcolor<>fcolor then
                            begin
                                for kx:=0 to bmptemp.Width-1 do
                                begin
                                    for ky:=0 to bmptemp.Height-1 do
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                        if mcolor=kcolor then
                                        begin
                                            mcolor:=bmptemp.Canvas.Pixels[kx,ky-1];
                                            if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky-1]:=fcolor;
                                            mcolor:=bmptemp.Canvas.Pixels[kx,ky+1];
                                            if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky+1]:=fcolor;
                                            mcolor:=bmptemp.Canvas.Pixels[kx-1,ky];
                                            if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx-1,ky]:=fcolor;
                                            mcolor:=bmptemp.Canvas.Pixels[kx+1,ky];
                                            if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx+1,ky]:=fcolor;
                                        end;
                                    end;
                                end;
                            end;
                        end
                        else if (k1=6) then
                        begin
                            for kx:=0 to bmptemp.Width-1 do
                            begin
                                for ky:=0 to bmptemp.Height-1 do
                                begin
                                    mcolor:=bmptemp.Canvas.Pixels[kx,ky];
                                    if mcolor=kcolor then
                                    begin
                                        mcolor:=bmptemp.Canvas.Pixels[kx,ky-1];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky-1]:=fcolor;
                                        mcolor:=bmptemp.Canvas.Pixels[kx,ky+1];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx,ky+1]:=fcolor;
                                        mcolor:=bmptemp.Canvas.Pixels[kx-1,ky];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx-1,ky]:=fcolor;
                                        mcolor:=bmptemp.Canvas.Pixels[kx+1,ky];
                                        if mcolor<>kcolor then bmptemp.Canvas.Pixels[kx+1,ky]:=fcolor;
                                    end;
                                end;
                            end;
                            bmpbak.Width:=bmptemp.Width;
                            bmpbak.Height:=bmptemp.Height;
                            bmpbak.Canvas.Brush.Color:=$ffff;
                            bmpbak.Canvas.FillRect(Rect(0,0,bmpbak.Width,bmpbak.Height));
                            bmptemp.Canvas.CopyMode:=cmSrcAnd;
                            bmptemp.Canvas.Draw(0,0,bmpbak);
                        end;
                        bmpdot.Canvas.Draw(x,y+yoff,bmptemp);}
                    end;
                end;
                x:=x+kw;
                j:=j+k;
                kk:=kk+k;
            end;
            y:=y+tpstr[i].lineheight+yy;
            i:=i+1;
        end;
        if Fdataflag=false then
          begin
               kct:=Getimagecount;
               for i:=0 to kct-1 do
               begin
                    str1:=Getimage(i);
                    val(str1,dispno,k);
                    begin
                         delete(str1,1,k);
                         val(str1,aleft,k);
                         if (str1<>'') and (str1[1]='-') then aleft:=-1*aleft;
                         delete(str1,1,k);
                         val(str1,atop,k);
                         if (str1<>'') and (str1[1]='-') then atop:=-1*atop;
                         delete(str1,1,k);
                         val(str1,awidth,k);
                         delete(str1,1,k);
                         val(str1,aheight,k);
                         delete(str1,1,k);
                         val(str1,k1,k);
                         delete(str1,1,k);
                         k:=pos(',',str1);
                         atop:=atop+(dispno-pageno+1)*height;

                         if k>0 then  str1:=copy(str1,1,k-1);
                         if (str1<>'') and fileexists(str1) then
                         begin
                              pic:=Tpicture.Create;
                              pic.LoadFromFile(str1);
                              bmpdot.Canvas.StretchDraw(rect(aleft div Fscale,atop div Fscale,(awidth+aleft) div Fscale,(aheight+atop) div Fscale), Pic.Graphic);
                              pic.Free;
                         end;
                    end;
               end;
          end;
    end;
    for i:=0 to height div Fscale-1 do
    begin
        for j:=0 to (width div (Fscale * 8))-1 do
        begin
            senddata.sendred[i][j]:=0;
            senddata.sendgreen[i][j]:=0;
            for k:=0 to 7 do
            begin
                kcolor:=bmpdot.canvas.Pixels[8*j+k,i];
                if (kcolor and $ff)>0 then senddata.sendred[i][j]:=senddata.sendred[i][j]+bmm[k];
                if (kcolor and $ff00)>0 then senddata.sendgreen[i][j]:=senddata.sendgreen[i][j]+bmm[k];
           end;
        end;
        senddata.sendred[i][(width div (Fscale * 8))-1]:=senddata.sendred[i][(width div (Fscale * 8))-1] and $fe;
        senddata.sendgreen[i][(width div (Fscale * 8))-1]:=senddata.sendgreen[i][(width div (Fscale * 8))-1] and $fe;
    end;
    bmpdot.free;
end;

function Tmyedit.readasc(pageno:integer):string;
var
    str1:string;
    i,j,k:integer;
    kk:longint;
begin
     str1:='';
     if pageno>0 then
     begin
          i:=0;
          kk:=0;
          while (tpstr[i].no<pageno) and (i<totalline) do
          begin
               kk:=kk+tpstr[i].linebyte;
               i:=i+1;
          end;
          while (tpstr[i].no=pageno) and (i<totalline) do
          begin
               k:=Ftpbyte;
               for j:=1 to tpstr[i].linebyte do
               begin
                    if Ftxt[kk+j]>=#$20 then
                    begin
                         str1:=str1+Ftxt[kk+j];
                         k:=k-1;
                    end;
               end;
               kk:=kk+tpstr[i].linebyte;
               i:=i+1;
               for j:=1 to k do str1:=str1+' ';
          end;
     end;
     readasc:=str1;
end;

function Tmyedit.readasc:string;
var
    str1:string;
    i,j,k:integer;
    kk:longint;
begin
     str1:='';
     i:=0;
     kk:=0;
     while (i<totalline) do
     begin
          k:=Ftpbyte;
          for j:=1 to tpstr[i].linebyte do
          begin
               if Ftxt[kk+j]>=#$20 then
               begin
                    str1:=str1+Ftxt[kk+j];
                    k:=k-1;
               end;
          end;
          kk:=kk+tpstr[i].linebyte;
          i:=i+1;
          for j:=1 to k do str1:=str1+' ';
     end;
     readasc:=str1;
end;

function Tmyedit.readcolor(pageno:integer):string;
var
    str1:string;
    i,j,k:integer;
    kk:longint;
begin
     str1:='';
     if pageno>0 then
     begin
          i:=0;
          kk:=0;
          while (tpstr[i].no<pageno) and (i<totalline) do
          begin
               kk:=kk+tpstr[i].linebyte;
               i:=i+1;
          end;
          while (tpstr[i].no=pageno) and (i<totalline) do
          begin
               k:=Ftpbyte;
               for j:=1 to tpstr[i].linebyte do
               begin
                    if Ftxt[kk+j]>=#$20 then
                    begin
                         str1:=str1+chr(tpdata[kk+j].color);
                         k:=k-1;
                    end;
               end;
               kk:=kk+tpstr[i].linebyte;
               i:=i+1;
               for j:=1 to k do str1:=str1+#0;
          end;
     end;
     readcolor:=str1;
end;

function Tmyedit.readcolor:string;
var
    str1:string;
    i,j,k:integer;
    kk:longint;
begin
     str1:='';
     i:=0;
     kk:=0;
     while (i<totalline) do
     begin
          k:=Ftpbyte;
          for j:=1 to tpstr[i].linebyte do

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -