亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 與Action相結合,可以解決中文件顯示亂碼
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RVStyle, RVScroll, RichView;

type
  TForm1 = class(TForm)
    RichView1: TRichView;
    RVStyle1: TRVStyle;
    RichView2: TRichView;
    procedure RVStyle1DrawStyleText(Sender: TRVStyle; const s: String;
      Canvas: TCanvas; StyleNo, SpaceBefore, Left, Top, Width,
      Height: Integer; DrawState: TRVTextDrawStates;
      var DoDefault: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure RVStyle1StyleHoverSensitive(Sender: TRVStyle;
      StyleNo: Integer; var Sensitive: Boolean);
    procedure RVStyle1DrawTextBack(Sender: TRVStyle; Canvas: TCanvas;
      StyleNo, Left, Top, Width, Height: Integer;
      DrawState: TRVTextDrawStates; var DoDefault: Boolean);
    procedure RVStyle1DrawCheckpoint(Sender: TRVStyle; Canvas: TCanvas; X,
      Y, ItemNo, XShift: Integer; RaiseEvent: Boolean; Control: TControl;
      var DoDefault: Boolean);
    procedure RVStyle1DrawPageBreak(Sender: TRVStyle; Canvas: TCanvas; Y,
      XShift: Integer; PageBreakType: TRVPageBreakType; Control: TControl; var DoDefault: Boolean);
    procedure RVStyle1DrawParaBack(Sender: TRVStyle; Canvas: TCanvas;
      ParaNo: Integer; ARect: TRect; var DoDefault: Boolean);
    procedure RichView2Paint(Sender: TCustomRichView; Canvas: TCanvas;
      Prepaint: Boolean);
    procedure RichView2RVMouseUp(Sender: TCustomRichView;
      Button: TMouseButton; Shift: TShiftState; ItemNo, X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{============================== DRAWING ROUTINES ==============================}

{$R-} // turning off range checking (required for DrawTrRect)
{------------------------------------------------------------------------------}
{ Drawing left to right arrow                                                  }
{------------------------------------------------------------------------------}
procedure DrawArrow(Canvas: TCanvas; Left, Top, Width, Height: Integer);
var midx,midy: Integer;
    one, two : Integer;
begin
   midx := Left+Width div 2;
   midy := Top+Height div 2;
   if Width>0 then begin
     one := 1;
     two := -2;
   end
   else begin
     one := -1;
     two := 2;
   end;
   Canvas.PolyLine([Point(Left+one,Top+3),
                    Point(midx,Top+3),
                    Point(midx,Top+1),
                    Point(Left+Width+two, midy),
                    Point(midx, Top+Height-2),
                    Point(midx, Top+Height-4),
                    Point(Left+one,Top+Height-4),
                    Point(Left+one,Top+3)
                    ]);
end;
{------------------------------------------------------------------------------}
{ Drawing an icon for page breaks                                              }
{------------------------------------------------------------------------------}
procedure DrawPageIcon(Canvas: TCanvas; Left, Top, Width, Height: Integer);
var LeftS, RightS: Integer;
begin
  LeftS := Left+2;
  RightS := Left+Width-4;
  Canvas.PolyLine([Point(RightS-3,Top),
                   Point(LeftS,Top),
                   Point(LeftS, Top+Height),
                   Point(RightS,Top+Height),
                   Point(RightS,Top+3),
                   Point(RightS-3,Top),
                   Point(RightS-3,Top+3),
                   Point(RightS,Top+3)
                   ]);
   Canvas.Pen.Style := psDot;
   Canvas.Pen.Color := clRed;
   Canvas.MoveTo(Left, Top+Height div 2);
   Canvas.LineTo(Left+Width, Top+Height div 2);
end;
{------------------------------------------------------------------------------}
{ Drawing a colored rectangle with specified degree of opacity (0..255)        }
{ (quite slow...)                                                              }
{------------------------------------------------------------------------------}
procedure DrawTrRect(Canvas: TCanvas; const ARect: TRect;
                     Color: TColor;
                     Opacity: Integer);
type
  RGBARR = array [0..0] of TRGBQUAD;
  PRGBARR = ^RGBARR;
var prgb: PRGBARR;
    rgb : TRGBQUAD;
   i,j: Integer;
   tr : Integer;
   Clr: LongInt;
   bmp: TBitmap;
begin
  Clr := ColorToRGB(Color);
  rgb.rgbRed      := Clr and $000000FF;
  rgb.rgbGreen    := (Clr and $0000FF00) shr 8;
  rgb.rgbBlue     := (Clr and $00FFFFFF) shr 16;
  rgb.rgbReserved := 0;

  bmp := TBitmap.Create;
  bmp.PixelFormat := pf32bit;
  bmp.Width := ARect.Right-ARect.Left;
  bmp.Height := ARect.Bottom-ARect.Top;
  bmp.Canvas.CopyRect(Rect(0,0,bmp.Width,bmp.Height), Canvas, ARect);

  tr := 255 - Opacity;
  for i := 0 to bmp.Height-1 do begin
    prgb := PRGBARR(bmp.ScanLine[i]);
    for j := 0 to bmp.Width-1 do
      with prgb[j] do begin
        rgbBlue  := (rgbBlue*tr  + rgb.rgbBlue*Opacity) div 255;
        rgbGreen := (rgbGreen*tr + rgb.rgbGreen*Opacity)div 255;
        rgbRed   := (rgbRed*tr   + rgb.rgbRed*Opacity) div 255;
      end;
  end;
  Canvas.Draw(ARect.Left, ARect.Top, bmp);
  bmp.Free;
end;
{------------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  RichView1.AddNL('Example',1,1);
  RichView1.AddNL('This is an example of the new feature - ',0,0);
  RichView1.AddNL('custom drawn text',3,-1);
  RichView1.AddNL('.',0,-1);
  RichView1.AddNL(' Hot link 1 ',4,1);
  RichView1.AddNL(' Hot link 2 ',5,1);
  RichView1.AddBreakEx(1, rvbsLine, clBtnShadow);
  RichView1.AddCheckpoint;
  RichView1.AddNL('Another example - a custom drawing of checkpoints.',0,0);
  RichView1.AddCheckpoint;
  RichView1.AddNL('For example, you can draw a little nice arrow instead of default dotted line.',0,0);
  RichView1.AddBreakEx(1, rvbsLine, clBtnShadow);
  RichView1.AddNL('One more example - a custom displaying of page break',0,0);
  RichView1.PageBreaksBeforeItems[RichView1.ItemCount-1] := True;
  RichView1.Format;

  RichView2.AddNL('Cool Effect - ',2,2);
  RichView2.SetAddParagraphMode(False);
  RichView2.AddNL('Transparent paragraph background.',2,2);
  RichView2.AddNL('example of custom painting of paragraph background',0,2);
  RichView2.SetAddParagraphMode(True);
  for i := 0 to 20 do
    RichView2.AddNL('This is the example how to use OnDrawParaBack and OnPaint events.',0,0);
  RichView2.Format;
end;
{------------------------------------------------------------------------------}
{ Should RichView repaint itself if mouse is over text of specified style?     }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1StyleHoverSensitive(Sender: TRVStyle;
  StyleNo: Integer; var Sensitive: Boolean);
begin
  if StyleNo in [4,5] then
    Sensitive := True; // (default for other styles)
end;
{------------------------------------------------------------------------------}
{ Drawing a background of text                                                 }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1DrawTextBack(Sender: TRVStyle; Canvas: TCanvas;
  StyleNo, Left, Top, Width, Height: Integer; DrawState: TRVTextDrawStates;
  var DoDefault: Boolean);
var r: TRect;
begin
  case StyleNo of
    5:
      begin
        // drawing a sunken edge for the 5th style
        r := Bounds(Left,Top, Width, Height);
        if rvtsHover in DrawState then
          DrawEdge(Canvas.Handle, r, BDR_SUNKENOUTER or BF_ADJUST, BF_RECT)
      end;
  end;
end;
{------------------------------------------------------------------------------}
{ Drawing a text                                                               }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1DrawStyleText(Sender: TRVStyle; const s: String;
  Canvas: TCanvas; StyleNo, SpaceBefore, Left, Top, Width, Height: Integer;
  DrawState: TRVTextDrawStates; var DoDefault: Boolean);
begin
  if rvtsSelected in DrawState then
    exit; // default drawing for selected text
  inc(Left, SpaceBefore);
  case StyleNo of
    0:
      begin
        // sunken effect
        Canvas.Font.Color := clBtnHighlight;
        Canvas.TextOut(Left+1,Top+1, s);
        Canvas.Font.Color := clBtnShadow;
        Canvas.TextOut(Left,Top, s);
        DoDefault := False;
      end;
    3:
      begin
        // raised effect
        Canvas.Font.Color := clBtnHighlight;
        Canvas.TextOut(Left-1,Top-1, s);
        Canvas.Font.Color := clBtnShadow;
        Canvas.TextOut(Left+1,Top+1, s);
        DoDefault := False;
      end;
    4:
      begin
        if rvtsHover in DrawState then begin
          // hot glow effect
          Canvas.Font.Color := Sender.TextStyles[StyleNo].HoverColor;
          Canvas.TextOut(Left+1,Top+1, s);
          Canvas.TextOut(Left-1,Top-1, s);
          Canvas.Font.Color := Sender.TextStyles[StyleNo].Color;
          Canvas.TextOut(Left,Top, s);
          DoDefault := False;
        end;
      end;
  end;
end;
{------------------------------------------------------------------------------}
{ Drawing checkpoint as arrow icon                                             }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1DrawCheckpoint(Sender: TRVStyle; Canvas: TCanvas;
  X, Y, ItemNo, XShift: Integer; RaiseEvent: Boolean; Control: TControl;
  var DoDefault: Boolean);
begin
  if RaiseEvent then
    Canvas.Pen.Color := Sender.CheckpointEvColor
  else
    Canvas.Pen.Color := Sender.CheckpointColor;
  DrawArrow(Canvas, -XShift+2, Y-5, RichView1.LeftMargin-4, 10);
  DoDefault := False;
end;
{------------------------------------------------------------------------------}
{ Drawing page break as icon                                                   }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1DrawPageBreak(Sender: TRVStyle; Canvas: TCanvas;
  Y, XShift: Integer; PageBreakType: TRVPageBreakType; Control: TControl; var DoDefault: Boolean);
begin
  Canvas.Pen.Color := Sender.PageBreakColor;
  DrawPageIcon(Canvas, -XShift+2, Y-8, 16, 16);
  DoDefault := False;
end;
{------------------------------------------------------------------------------}
{ Drawing a background of paragraphs                                           }
{------------------------------------------------------------------------------}
procedure TForm1.RVStyle1DrawParaBack(Sender: TRVStyle; Canvas: TCanvas;
  ParaNo: Integer; ARect: TRect; var DoDefault: Boolean);
begin
  if ParaNo=2 then begin
    // semi-transparent background for second paragraph style
    DrawTrRect(Canvas, ARect, Sender.ParaStyles[ParaNo].Background.Color, 150);
    DoDefault := False;
  end;
end;
{------------------------------------------------------------------------------}
{ Drawing unscrollable picture                                                 }
{------------------------------------------------------------------------------}
procedure TForm1.RichView2Paint(Sender: TCustomRichView; Canvas: TCanvas;
  Prepaint: Boolean);
var x,y: Integer;
    r: TRect;
begin
  Canvas.Pen.Color := clRed;
  Canvas.Pen.Width := 3;
  Canvas.Brush.Color := clBlack;
  x := Sender.ClientWidth-10;
  y := Sender.ClientHeight-10;
  Canvas.Ellipse(x-10, y-10, x+10, y+10);
  r := Bounds(x-10, y-10, 20, 20);
  Canvas.Brush.Style := bsClear;
  Canvas.Font.Color := clRed;
  Canvas.Font.Name  := 'Arial';
  Canvas.Font.Style := [fsBold];
  Canvas.Font.Size := 12;  
  DrawText(Canvas.Handle, '!', 1, r, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;

procedure TForm1.RichView2RVMouseUp(Sender: TCustomRichView;
  Button: TMouseButton; Shift: TShiftState; ItemNo, X, Y: Integer);
begin
  if (x>Sender.ClientWidth-20) and (y>Sender.ClientHeight-20) then
    Application.MessageBox('!','!', MB_OK or MB_ICONINFORMATION);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色一级片| 色婷婷综合激情| 久久99国产精品尤物| 久久精品国产一区二区三| 日韩国产一二三区| 蜜桃久久久久久| 国产一区二区三区美女| 国产一区二区不卡在线| 国产精品 日产精品 欧美精品| 91久久精品国产91性色tv| 在线观看视频一区| 欧美视频中文一区二区三区在线观看| 色婷婷综合久久久久中文一区二区| 色激情天天射综合网| 欧美日韩精品一区二区在线播放| 欧美电影在线免费观看| 日韩一级二级三级精品视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品久久久久桃色tv| 1区2区3区精品视频| 亚洲精品高清在线| 香蕉成人啪国产精品视频综合网| 亚洲午夜一区二区三区| 免费不卡在线观看| 国产成人超碰人人澡人人澡| av欧美精品.com| 欧美精品一二三| 久久久久国产成人精品亚洲午夜 | 国产精品一二三四五| 91在线视频播放地址| 欧美视频第二页| 日韩美女在线视频| 国产精品久久久久久久久久免费看| 亚洲免费在线视频一区 二区| 亚洲成av人影院| 国产一区二区不卡| 日本道色综合久久| 欧美成人精品二区三区99精品| 国产精品久久久久一区二区三区共 | 欧美高清一级片在线观看| 亚洲精品中文在线观看| 蜜臀久久久99精品久久久久久| 成人开心网精品视频| 欧美在线不卡一区| 精品国产第一区二区三区观看体验| 综合激情成人伊人| 久久成人免费电影| 色综合久久久久| 久久免费看少妇高潮| 亚洲欧美色一区| 国产一区二区三区久久久| 欧洲视频一区二区| 久久精品这里都是精品| 亚洲线精品一区二区三区八戒| 国产成人自拍网| 51精品国自产在线| 亚洲精品视频免费看| 国产高清一区日本| 在线不卡a资源高清| 成人欧美一区二区三区在线播放| 免费看欧美女人艹b| 欧洲色大大久久| 国产精品久久久久久久午夜片| 三级不卡在线观看| 一本一道久久a久久精品综合蜜臀| 精品国产一区二区三区久久影院 | 亚洲国产日日夜夜| 成人午夜av影视| 日韩欧美的一区二区| 亚洲国产精品视频| 99久久久免费精品国产一区二区| 久久伊人蜜桃av一区二区| 亚洲一区二区3| 91麻豆免费在线观看| 国产精品无人区| 久久不见久久见免费视频1| 欧美视频在线观看一区| 中文字幕一区二区三区不卡| 国产伦精品一区二区三区免费迷| 欧美军同video69gay| 夜夜嗨av一区二区三区网页| 9人人澡人人爽人人精品| 久久噜噜亚洲综合| 另类中文字幕网| 日韩精品资源二区在线| 日韩高清欧美激情| 欧美日韩免费视频| 亚洲已满18点击进入久久| 91免费精品国自产拍在线不卡| 欧美激情艳妇裸体舞| 国产精品1024久久| 欧美激情在线一区二区三区| 国产一区二区在线观看免费| 欧美电影免费观看高清完整版 | 高清国产午夜精品久久久久久| 日韩欧美在线网站| 免费在线欧美视频| 7777精品伊人久久久大香线蕉的| 五月婷婷欧美视频| 777a∨成人精品桃花网| 日本亚洲天堂网| 欧美一级搡bbbb搡bbbb| 老鸭窝一区二区久久精品| 日韩一区二区在线免费观看| 石原莉奈在线亚洲三区| 欧美一区二区黄色| 日韩电影在线一区二区| 3atv一区二区三区| 美女在线视频一区| www国产精品av| 成人午夜在线视频| 亚洲欧美成人一区二区三区| 91极品视觉盛宴| 亚洲第四色夜色| 欧美成人a∨高清免费观看| 狠狠色狠狠色综合系列| 国产精品色在线| 色噜噜狠狠色综合中国| 亚洲成人免费影院| 日韩欧美亚洲另类制服综合在线| 精品一区二区在线免费观看| 久久日一线二线三线suv| av电影天堂一区二区在线观看| 亚洲精品国久久99热| 欧美另类久久久品| 国产毛片精品国产一区二区三区| 中文字幕 久热精品 视频在线| 91视频在线观看免费| 五月激情六月综合| 亚洲444eee在线观看| 91麻豆精品国产91久久久久久久久| 久久99精品久久久久久动态图| 国产精品素人一区二区| 欧美在线色视频| 国产一区二区在线看| 亚洲三级久久久| 欧美大片免费久久精品三p| 成人久久视频在线观看| 天涯成人国产亚洲精品一区av| 久久影音资源网| 日本久久电影网| 美国精品在线观看| 亚洲人午夜精品天堂一二香蕉| 制服丝袜在线91| 国产不卡高清在线观看视频| 亚洲精品久久嫩草网站秘色| 欧美成人三级在线| 色综合欧美在线视频区| 紧缚奴在线一区二区三区| 亚洲精品成a人| 亚洲精品一区二区在线观看| 一本到高清视频免费精品| 激情小说欧美图片| 洋洋av久久久久久久一区| 精品久久久久久亚洲综合网| 在线观看日产精品| 国产成人亚洲精品青草天美| 日韩国产欧美在线视频| 亚洲欧美在线aaa| 日韩欧美一区二区不卡| 色呦呦国产精品| 国产精品主播直播| 日韩av一区二区在线影视| 亚洲欧洲韩国日本视频| 精品国产sm最大网站免费看| 精品视频1区2区3区| 波多野结衣亚洲| 久久99国产精品免费网站| 亚洲午夜国产一区99re久久| 国产日韩亚洲欧美综合| 欧美一二三四在线| 欧美性大战久久久久久久| 国产成人在线观看| 久久不见久久见免费视频1| 五月天一区二区三区| 一区二区中文视频| 国产日韩欧美不卡在线| 欧美videos中文字幕| 制服丝袜中文字幕亚洲| 欧美三级日韩在线| 色系网站成人免费| 91在线视频官网| av影院午夜一区| 国产精品亚洲专一区二区三区| 麻豆一区二区三| 蜜臀av亚洲一区中文字幕| 午夜免费欧美电影| 一区二区三区在线播放| 亚洲免费av在线| 中文字幕一区三区| 亚洲国产精品成人综合 | 精品一区二区综合| 精品一区二区三区在线播放| 日韩中文字幕1| 丝袜诱惑亚洲看片| 首页国产丝袜综合| 午夜精品福利在线| 婷婷中文字幕一区三区| 亚洲成人一区在线| 性感美女极品91精品|