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

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

?? richedeh.pas

?? 一個功能強大的DBGRID控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}
{                                                       }
{                       EhLib v3.6                      }
{             Design time Rich Edit window              }
{                                                       }
{   Copyright (c) 1998-2004 by Dmitry V. Bolshakov      }
{                                                       }
{*******************************************************}

unit RichEdEh {$IFDEF CIL} platform{$ENDIF};

{$I EhLib.Inc}
interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, ImgList,

{$IFDEF CIL} Borland.Vcl.Design.DesignIntf,
             Borland.Vcl.Design.DesignEditors,
             Borland.Vcl.Design.VCLEditors, Variants,
             System.Drawing.Text,
             EhLibVCLNET,
             Types,
{$ELSE}
             EhLibVCL,
  {$IFDEF EH_LIB_6}DesignIntf, DesignEditors,
  {$ELSE}DsgnIntf, {$ENDIF}
{$ENDIF}
  Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, ClipBrd,
  ToolWin, PrnDBGEh;

type
  TRichStrEditDlgEh = class(TForm)
    MainMenu: TMainMenu;
    FileNewItem: TMenuItem;
    FileOpenItem: TMenuItem;
    FileSaveItem: TMenuItem;
    FileSaveAsItem: TMenuItem;
    FilePrintItem: TMenuItem;
    FileExitItem: TMenuItem;
    EditUndoItem: TMenuItem;
    EditCutItem: TMenuItem;
    EditCopyItem: TMenuItem;
    EditPasteItem: TMenuItem;
    OpenDialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    PrintDialog: TPrintDialog;
    Ruler: TPanel;
    FontDialog1: TFontDialog;
    FirstInd: TLabel;
    LeftInd: TLabel;
    RulerLine: TBevel;
    RightInd: TLabel;
    N5: TMenuItem;
    miEditFont: TMenuItem;
    Editor: TRichEdit;
    StatusBar: TStatusBar;
    StandardToolBar: TToolBar;
    OpenButton: TToolButton;
    SaveButton: TToolButton;
    PrintButton: TToolButton;
    ToolButton5: TToolButton;
    UndoButton: TToolButton;
    CutButton: TToolButton;
    CopyButton: TToolButton;
    PasteButton: TToolButton;
    ToolButton10: TToolButton;
    FontName: TComboBox;
    FontSize: TEdit;
    ToolButton11: TToolButton;
    UpDown1: TUpDown;
    BoldButton: TToolButton;
    ItalicButton: TToolButton;
    UnderlineButton: TToolButton;
    ToolButton16: TToolButton;
    LeftAlign: TToolButton;
    CenterAlign: TToolButton;
    RightAlign: TToolButton;
    ToolButton20: TToolButton;
    BulletsButton: TToolButton;
    ToolbarImages: TImageList;
    ToolButton2: TToolButton;
    Bevel1: TBevel;
    Panel1: TPanel;
    Panel2: TPanel;
    OKButton: TButton;
    CancelButton: TButton;
    ToolButton1: TToolButton;
    tbSelectFont: TToolButton;

    procedure SelectionChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ShowHint(Sender: TObject);
    procedure FileOpen(Sender: TObject);
    procedure FileSave(Sender: TObject);
    procedure FileSaveAs(Sender: TObject);
    procedure FilePrint(Sender: TObject);
    procedure FileExit(Sender: TObject);
    procedure EditUndo(Sender: TObject);
    procedure EditCut(Sender: TObject);
    procedure EditCopy(Sender: TObject);
    procedure EditPaste(Sender: TObject);
    procedure SelectFont(Sender: TObject);
    procedure RulerResize(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure BoldButtonClick(Sender: TObject);
    procedure ItalicButtonClick(Sender: TObject);
    procedure FontSizeChange(Sender: TObject);
    procedure AlignButtonClick(Sender: TObject);
    procedure FontNameChange(Sender: TObject);
    procedure UnderlineButtonClick(Sender: TObject);
    procedure BulletsButtonClick(Sender: TObject);
    procedure RulerItemMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RulerItemMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FirstIndMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure LeftIndMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RightIndMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormShow(Sender: TObject);
    procedure RichEditChange(Sender: TObject);
    procedure EditorKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    FFileName: string;
    FUpdating: Boolean;
    FDragOfs: Integer;
    FDragging: Boolean;
    function CurrText: TTextAttributes;
    procedure GetFontNames;
    procedure SetupRuler;
    procedure SetEditRect;
    procedure UpdateCursorPos;
    procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
    procedure PerformFileOpen(const AFileName: string);
    procedure SetModified(Value: Boolean);
  end;


type
  TRichEditStringsEh = class(TClassProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    procedure Edit; override;
  end;

var
  RichStrEditDlgEh: TRichStrEditDlgEh;

procedure Register;

implementation

uses RichEdit, ShellAPI;

resourcestring
  sOverWrite = 'OK to overwrite %s';
  sModified = 'Modified';
  sColRowInfo = 'Line: %3d   Col: %3d';

const
  RulerAdj = 4 / 3;
  GutterWid = 6;

{$R *.DFM}


procedure Register;
begin
  RegisterPropertyEditor(TypeInfo(TStrings), TPrintDBGridEh, 'BeforeGridText', TRichEditStringsEh);
  RegisterPropertyEditor(TypeInfo(TStrings), TPrintDBGridEh, 'AfterGridText', TRichEditStringsEh);
end;

procedure TRichStrEditDlgEh.SelectionChange(Sender: TObject);
begin
  with Editor.Paragraph do
  try
    FUpdating := True;
    FirstInd.Left := Trunc(FirstIndent * RulerAdj) - 4 + GutterWid;
    LeftInd.Left := Trunc((LeftIndent + FirstIndent) * RulerAdj) - 4 + GutterWid;
    RightInd.Left := Ruler.ClientWidth - 6 - Trunc((RightIndent + GutterWid) * RulerAdj);
    BoldButton.Down := fsBold in Editor.SelAttributes.Style;
    ItalicButton.Down := fsItalic in Editor.SelAttributes.Style;
    UnderlineButton.Down := fsUnderline in Editor.SelAttributes.Style;
    BulletsButton.Down := Boolean(Numbering);
    FontSize.Text := IntToStr(Editor.SelAttributes.Size);
    FontName.Text := Editor.SelAttributes.Name;
    case Ord(Alignment) of
      0: LeftAlign.Down := True;
      1: RightAlign.Down := True;
      2: CenterAlign.Down := True;
    end;
    UpdateCursorPos;
  finally
    FUpdating := False;
  end;
end;

function TRichStrEditDlgEh.CurrText: TTextAttributes;
begin
//  if Editor.SelLength > 0 then Result := Editor.SelAttributes
//  else Result := Editor.DefAttributes;
  Result := Editor.SelAttributes;
end;

{$IFDEF CIL}
procedure TRichStrEditDlgEh.GetFontNames;
var
  i: Integer;
  InstalledFonts: System.Drawing.Text.InstalledFontCollection;
begin
  FontName.Items.BeginUpdate;
  try
    FontName.Items.Clear;
    InstalledFonts := System.Drawing.Text.InstalledFontCollection.Create;
    for i := 0 to Length(InstalledFonts.Families) - 1 do
      FontName.Items.Add(InstalledFonts.Families[i].Name);
  finally
    FontName.Items.EndUpdate;
  end;
end;
{$ELSE}
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
  FontType: Integer; Data: Pointer): Integer; stdcall;
begin
  TStrings(Data).Add(LogFont.lfFaceName);
  Result := 1;
end;

procedure TRichStrEditDlgEh.GetFontNames;
var
  DC: HDC;
begin
  DC := GetDC(0);
  try
    EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items));
  finally
    ReleaseDC(0, DC);
  end;
  FontName.Sorted := True;
end;
{$ENDIF}

procedure TRichStrEditDlgEh.SetupRuler;
var
  I: Integer;
  S: String;
begin
  SetLength(S, 201);
  I := 1;
  while I < 200 do
  begin
    S[I] := #9;
    S[I + 1] := '|';
    Inc(I, 2);
  end;
  Ruler.Caption := S;
end;

procedure TRichStrEditDlgEh.SetEditRect;
var
  R: TRect;
begin
  with Editor do
  begin
    R := Rect(GutterWid, 0, ClientWidth - GutterWid, ClientHeight);
{$IFDEF CIL}
    SendStructMessage(Handle, EM_SETRECT, 0, R);
{$ELSE}
    SendMessage(Handle, EM_SETRECT, 0, Longint(@R));
{$ENDIF}
  end;
end;

{ Event Handlers }

procedure TRichStrEditDlgEh.FormCreate(Sender: TObject);
begin
  GetFontNames;
  SetupRuler;
  SelectionChange(Self);

  CurrText.Name := DefFontData.Name;
  CurrText.Size := -MulDiv(DefFontData.Height, 72, Screen.PixelsPerInch);
end;

procedure TRichStrEditDlgEh.ShowHint(Sender: TObject);
begin
  if Length(Application.Hint) > 0 then
  begin
    StatusBar.SimplePanel := True;
    StatusBar.SimpleText := Application.Hint;
  end
  else StatusBar.SimplePanel := False;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品久久久| 在线成人免费观看| 日韩精品视频网站| 国产精品美女久久久久高潮| 91麻豆精品国产自产在线| 成人免费视频播放| 黄一区二区三区| 亚洲妇女屁股眼交7| 国产精品福利影院| 精品国产伦一区二区三区观看方式 | 日韩精品一二三区| 亚洲特级片在线| 久久久久久综合| 91精品欧美福利在线观看| 91福利精品视频| 97久久精品人人做人人爽| 国产精品123区| 久久电影国产免费久久电影| 亚洲v中文字幕| 一区二区三区电影在线播| 中文欧美字幕免费| 久久九九久精品国产免费直播| 日韩一级二级三级| 91精品国产黑色紧身裤美女| 在线观看视频欧美| 99久久精品情趣| 不卡高清视频专区| 成人精品免费看| 国产1区2区3区精品美女| 精品在线免费视频| 美女视频一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 成人免费视频视频在线观看免费 | 国产一区二区三区四区在线观看| 欧美成人福利视频| 国产精品麻豆久久久| 精品蜜桃在线看| 欧美一区二区视频免费观看| 欧美日韩免费高清一区色橹橹| 一本色道综合亚洲| 色诱视频网站一区| 在线观看不卡视频| 欧美老人xxxx18| 欧美一区二区三区婷婷月色| 538prom精品视频线放| 日韩免费性生活视频播放| 日韩欧美久久一区| 久久久久久夜精品精品免费| 中文字幕久久午夜不卡| 中文字幕亚洲区| 一区二区三区四区精品在线视频| 亚洲高清免费视频| 日本一区中文字幕 | 亚洲国产日韩在线一区模特| 一区二区国产盗摄色噜噜| 亚洲成人黄色影院| 免费欧美日韩国产三级电影| 色婷婷久久综合| 色老汉一区二区三区| 在线免费观看日本欧美| 欧美日韩高清影院| 日韩免费成人网| 亚洲国产精品传媒在线观看| √…a在线天堂一区| 亚洲一区二区不卡免费| 日韩vs国产vs欧美| 国产不卡一区视频| 色综合欧美在线视频区| 8x福利精品第一导航| 精品国产免费人成在线观看| 国产精品久久久99| 视频一区免费在线观看| 国产成人精品免费在线| 在线视频一区二区三| 欧美成人女星排行榜| 日韩理论片中文av| 麻豆一区二区在线| av在线免费不卡| 在线综合视频播放| 国产精品亲子乱子伦xxxx裸| 亚洲成人先锋电影| 国产麻豆精品一区二区| 欧美亚洲愉拍一区二区| 久久亚洲精品小早川怜子| 一区二区高清在线| 国产99精品国产| 欧美日韩国产综合视频在线观看| 国产午夜精品久久久久久免费视| 亚洲永久精品国产| 国产精品综合一区二区三区| 欧美亚洲日本国产| 国产精品三级视频| 青娱乐精品视频在线| 色婷婷久久综合| 国产欧美日韩视频一区二区| 日韩极品在线观看| 色综合久久综合网97色综合| 欧美本精品男人aⅴ天堂| 一区二区三区自拍| 成人va在线观看| 久久综合九色综合97婷婷| 同产精品九九九| 91久久精品网| 国产精品第四页| 国产激情一区二区三区四区| 日韩午夜精品电影| 亚洲国产成人精品视频| 93久久精品日日躁夜夜躁欧美| 久久综合九色综合欧美就去吻| 亚洲va国产va欧美va观看| 91麻豆免费视频| 国产午夜亚洲精品不卡| 精品午夜久久福利影院 | 亚洲精品一区二区三区99| 午夜伦欧美伦电影理论片| 91丝袜美女网| 国产精品久久久久久久久免费桃花| 国产一区在线精品| 欧美成人vps| 老司机午夜精品99久久| 欧美丰满高潮xxxx喷水动漫| 亚洲高清视频中文字幕| 欧美特级限制片免费在线观看| 亚洲欧洲日产国码二区| 成人美女视频在线看| 国产精品污网站| 成人免费电影视频| 国产精品久久久久毛片软件| 国产盗摄视频一区二区三区| 国产亚洲欧美日韩在线一区| 国产酒店精品激情| 国产欧美日韩不卡| 国产精品 欧美精品| 国产丝袜欧美中文另类| 大陆成人av片| 18欧美乱大交hd1984| 91久久香蕉国产日韩欧美9色| 亚洲精选视频免费看| 日本电影欧美片| 亚洲综合在线视频| 欧美系列亚洲系列| 日韩va亚洲va欧美va久久| 日韩精品中文字幕在线不卡尤物| 美女视频黄a大片欧美| 亚洲精品一区二区三区福利 | 国产69精品一区二区亚洲孕妇 | 国产精品三级av在线播放| 成人久久视频在线观看| 亚洲色图视频网| 欧美性一二三区| 另类小说色综合网站| 久久久久久久精| 91网上在线视频| 天天亚洲美女在线视频| 精品国产污污免费网站入口| 国产精品一区三区| 亚洲婷婷综合色高清在线| 91国偷自产一区二区开放时间| 日韩成人一区二区三区在线观看| 欧美白人最猛性xxxxx69交| 成人免费三级在线| 亚洲第四色夜色| 精品伦理精品一区| www.性欧美| 婷婷六月综合亚洲| 久久精品视频一区二区| 91精品福利视频| 久久99精品久久久| 亚洲视频精选在线| 在线播放日韩导航| 国产盗摄女厕一区二区三区| 一区二区三区精品在线观看| 精品电影一区二区| 成人动漫视频在线| 蜜桃视频在线一区| 国产精品入口麻豆九色| 91精品在线麻豆| 成人动漫在线一区| 日本色综合中文字幕| 国产精品大尺度| 精品国精品国产| 日本韩国精品在线| 国产丶欧美丶日本不卡视频| 午夜亚洲国产au精品一区二区| 久久精品免视看| 91精品国产高清一区二区三区 | 成人网男人的天堂| 午夜精品久久一牛影视| 欧美极品另类videosde| 51精品秘密在线观看| 91免费版在线| 国产精品亚洲а∨天堂免在线| 亚洲国产aⅴ成人精品无吗| 国产亚洲精品资源在线26u| 欧美人体做爰大胆视频| av亚洲精华国产精华| 韩国三级中文字幕hd久久精品| 午夜精品福利在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩成人午夜精品|