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

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

?? unit1.pas

?? delphi控件關于文字框和編輯框方面的.
?? 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一区二区三区免费野_久草精品视频
欧美日韩国产电影| 日韩精品欧美成人高清一区二区| 精品国产乱码久久久久久老虎| 欧美日韩和欧美的一区二区| 91久久国产最好的精华液| 99久久精品情趣| av欧美精品.com| 91香蕉国产在线观看软件| 99视频一区二区| 色哟哟日韩精品| 欧美亚洲图片小说| 欧美午夜在线观看| 欧美高清视频不卡网| 欧美疯狂做受xxxx富婆| 欧美一区二区三区四区五区| 91精品国产综合久久福利软件| 欧美日韩国产天堂| 制服丝袜激情欧洲亚洲| 精品成人一区二区三区四区| 国产午夜精品一区二区| 国产精品毛片高清在线完整版 | 一区二区三区成人在线视频| 亚洲另类一区二区| 午夜影视日本亚洲欧洲精品| 日韩av在线播放中文字幕| 免费人成在线不卡| 国产经典欧美精品| 波多野结衣中文字幕一区 | 日韩一本二本av| 久久嫩草精品久久久精品| 国产精品伦一区| 亚洲精品成人悠悠色影视| 五月天国产精品| 国产一区二区精品在线观看| 91原创在线视频| 91精品欧美一区二区三区综合在 | 亚洲欧美国产毛片在线| 图片区小说区国产精品视频| 国产自产视频一区二区三区| 91麻豆免费观看| 69p69国产精品| 国产清纯美女被跳蛋高潮一区二区久久w | 91黄色免费网站| 日韩欧美色综合| 国产精品久久久久久久裸模| 天天亚洲美女在线视频| 国产一区二区三区蝌蚪| 欧美亚洲愉拍一区二区| 久久一夜天堂av一区二区三区 | 成人国产免费视频| 欧美日韩午夜在线视频| 国产调教视频一区| 亚洲第一在线综合网站| 国产精品18久久久久久久久久久久 | 成人动漫中文字幕| 91精品婷婷国产综合久久性色| 国产精品乱人伦| 日韩电影一区二区三区| 色婷婷久久综合| 久久精品人人做| 天天色天天操综合| 99免费精品在线| 精品久久久久久久久久久久久久久| 亚洲女人的天堂| 极品少妇xxxx精品少妇| 欧美日韩国产在线播放网站| 国产精品电影一区二区三区| 精品一区二区三区视频| 欧美综合在线视频| 综合精品久久久| 国产麻豆日韩欧美久久| 欧美一级黄色大片| 成人少妇影院yyyy| 欧美一区二区在线免费观看| 综合av第一页| 国产成人精品一区二区三区网站观看| 8x福利精品第一导航| 亚洲女人的天堂| 99久久婷婷国产综合精品电影 | 亚洲va天堂va国产va久| 99久久伊人网影院| 国产亚洲一区二区三区在线观看| 日本美女一区二区| 欧美色手机在线观看| 亚洲人成亚洲人成在线观看图片| 成人app软件下载大全免费| 精品捆绑美女sm三区| 亚洲国产视频直播| 色香蕉久久蜜桃| 亚洲欧美日韩一区二区| 99综合影院在线| 久久精品免费在线观看| 久久99热99| 精品国产人成亚洲区| 青娱乐精品视频在线| 91精品免费在线| 亚洲成a人片在线观看中文| 色婷婷av一区二区三区之一色屋| 国产日韩亚洲欧美综合| 国产永久精品大片wwwapp| 欧美电影精品一区二区| 精品影视av免费| www久久精品| 国产成人精品网址| 国产亲近乱来精品视频| 成人综合在线观看| 中文字幕一区二区三区乱码在线 | 精品欧美久久久| 精品一区二区在线免费观看| 精品国产电影一区二区| 国产一区二区三区香蕉| 欧美激情艳妇裸体舞| 99久久免费视频.com| 伊人开心综合网| 欧美日韩三级一区二区| 日韩精品三区四区| 精品999在线播放| 国产黄人亚洲片| 国产精品无圣光一区二区| av动漫一区二区| 亚洲一区在线观看视频| 这里是久久伊人| 国产原创一区二区三区| 国产精品久久久一本精品 | 亚洲精品成人a在线观看| 欧美日韩精品一二三区| 久久国产乱子精品免费女| 久久精品一区二区| 99精品黄色片免费大全| 亚洲国产日韩一区二区| 精品国产91洋老外米糕| 懂色av一区二区三区蜜臀| 成人欧美一区二区三区1314| 精品视频色一区| 韩国欧美国产一区| 亚洲人成网站影音先锋播放| 欧美福利视频一区| 国产乱码精品一区二区三| 亚洲视频一区在线观看| 91麻豆精品国产91久久久使用方法 | 99riav久久精品riav| 亚洲一二三四区不卡| 日韩一级片网址| www.日韩av| 午夜精品影院在线观看| 国产校园另类小说区| 91久久精品日日躁夜夜躁欧美| 蜜桃av一区二区三区| 亚洲色图一区二区| 欧美一区二区三区系列电影| 国产成人av电影免费在线观看| 亚洲一区二区三区四区中文字幕| 日韩欧美国产午夜精品| 91美女在线看| 国产真实乱对白精彩久久| 亚洲一区二区三区四区在线观看 | 国内成+人亚洲+欧美+综合在线| 亚洲欧美另类图片小说| 日韩你懂的在线播放| 色综合久久综合中文综合网| 韩国精品在线观看| 亚洲一区成人在线| 国产日产精品1区| 欧美一区二区黄| 色综合久久综合| 国产精品1024| 日韩国产一区二| 一区二区三区免费网站| 国产亚洲精品久| 日韩一区二区在线看片| 欧美精品三级在线观看| 天天综合网天天综合色| 欧美电影免费观看高清完整版在线观看| av亚洲精华国产精华| 国产精品综合一区二区三区| 天堂久久一区二区三区| 综合激情成人伊人| 国产免费成人在线视频| 日韩欧美国产电影| 欧美日韩国产中文| 91国产免费看| 波多野结衣在线一区| 精品亚洲成a人| 青娱乐精品在线视频| 亚洲国产va精品久久久不卡综合| 亚洲欧美日韩久久精品| 国产精品乱码一区二区三区软件| 精品国产一区二区精华| 欧美一区二区三区四区久久| 在线观看91视频| 色婷婷精品久久二区二区蜜臀av| 99视频在线精品| 99这里只有精品| av激情亚洲男人天堂| 成人h动漫精品一区二| 高清不卡一区二区| 狠狠久久亚洲欧美| 精品系列免费在线观看| 免费观看30秒视频久久| 麻豆精品视频在线观看视频|