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

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

?? dbgridehimpexp.pas

?? Delphi控件源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************}
{                                                       }
{                       EhLib v1.56                     }
{             DBGridEh import/export routines           }
{                                                       }
{   Copyright (c) 1998, 2000 by Dmitry V. Bolshakov     }
{                                                       }
{*******************************************************}

unit DBGridEhImpExp;

{$I EhLib.Inc}

interface

uses
  Windows, SysUtils, Classes, Graphics, Dialogs, Grids, DBGrids, Controls,
  DBGridEh, Db, Clipbrd;

type

  TFooterValues = array[0..MaxListSize - 1] of Currency;
  PFooterValues = ^TFooterValues;

  { TDBGridEhExport }

  TDBGridEhExport = class(TObject)
  private
    FDBGridEh: TCustomDBGridEh;
    FStream: TStream;
    FExpCols: TColumnsEhList;
    procedure CalcFooterValues;
    function GetFooterValue(Row, Col: Integer): String;
  protected
    FooterValues: PFooterValues;
    procedure WritePrefix; virtual;
    procedure WriteSuffix; virtual;
    procedure WriteTitle(ColumnsList:TColumnsEhList); virtual;
    procedure WriteRecord(ColumnsList:TColumnsEhList); virtual;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); virtual;
    procedure WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer); virtual;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); virtual;
    property Stream: TStream read FStream write FStream;
    property ExpCols:TColumnsEhList read FExpCols write FExpCols;
  public
    constructor Create; virtual;
    procedure ExportToStream(AStream: TStream; IsExportAll:Boolean); virtual;
    procedure ExportToFile(FileName:String; IsExportAll:Boolean); virtual;
    property DBGridEh: TCustomDBGridEh read FDBGridEh write FDBGridEh;
  end;

  TDBGridEhExportClass = class of TDBGridEhExport;

  { TDBGridEhExportAsText }

  TDBGridEhExportAsText = class(TDBGridEhExport)
  private
    FirstRec:Boolean;
    FirstCell:Boolean;
  protected
    procedure CheckFirstRec; virtual;
    procedure CheckFirstCell; virtual;
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList:TColumnsEhList); override;
    procedure WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer); override;
    procedure WriteRecord(ColumnsList:TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(Stream: TStream; IsExportAll:Boolean); override;
  end;

  { TDBGridEhExportAsCSV }

  TDBGridEhExportAsCSV = class(TDBGridEhExportAsText)
  private
    FSeparator: Char;
  protected
    procedure CheckFirstCell; override;
    procedure WriteTitle(ColumnsList:TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    constructor Create; override;
    property Separator:Char read FSeparator write FSeparator;
  end;

  { TDBGridEhExportAsHTML }

  TDBGridEhExportAsHTML = class(TDBGridEhExport)
  private
    function GetAlignment(Alignment: TAlignment): String;
    function GetColor(Color: TColor): String;
    procedure PutText(Font:TFont;Text:String);
    procedure Put(Text:String);
    procedure PutL(Text:String);
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList:TColumnsEhList); override;
    procedure WriteRecord(ColumnsList:TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
    procedure WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); override;
  end;

  { TDBGridEhExportAsRTF }

  TDBGridEhExportAsRTF = class(TDBGridEhExport)
  private
    FCacheStream: TMemoryStream;
    ColorTblList:TStrings;
    FontTblList:TStrings;
    function GetFontIndex(FontName:String):Integer;
    function GetColorIndex(Color:TColor):Integer;
    function GetAlignment(Alignment: TAlignment): String;
    function GetDataCellColor(ColumnsList:TColumnsEhList; ColIndex:Integer):TColor;
    function GetFooterCellColor(ColumnsList:TColumnsEhList; ColIndex:Integer;
      FooterNo:Integer):TColor;
    procedure PutText(Font:TFont; Text:String; Background: TColor);
    procedure Put(Text:String);
    procedure PutL(Text:String);
  protected
    procedure WriteCellBorder(LeftBorder,TopBorder,BottomBorder,RightBorder:Boolean);
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList:TColumnsEhList); override;
    procedure WriteRecord(ColumnsList:TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
    procedure WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(AStream: TStream; IsExportAll: Boolean); override;
  end;

  { TDBGridEhExportAsXLS }

  TDBGridEhExportAsXLS = class(TDBGridEhExport)
  private
    FCol,FRow:Word;
    procedure WriteIntegerCell(const AValue: Integer);
    procedure WriteFloatCell(const AValue: Double);
    procedure WriteStringCell(const AValue: String);
    procedure IncColRow;
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList:TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
                Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(AStream: TStream; IsExportAll: Boolean); override;
  end;

  { TDBGridEhExportAsVCLDBIF }

  {Internal format for interchange between DataSet based components}

  { BOF (Beginning of File)

   Byte       |  0    1    2    3    4    5    6 |  0 |  0    1    2    3 |
              -------------------------------------------------------------
   Contents   |  V |  C |  L |  D |  B |  I |  F |  1 |  X |  X |  X |  X |
              -------------------------------------------------------------
              |  Signatura                       |Vers|  Columns count    |
              |                                  |ion |                   |


    Fields Names

   Byte       |  0 |  0    1    2    3   ...   X |  0 |  0    1    2    3   ...
              ------------------------------------------------------------- ...
   Contents   |  X |  N |  a |  m |  e |  1 |  0 |  X |  N |  a |  m |  e |  2 | 0
              ------------------------------------------------------------- ...
              |Colu| Null terminated field name  |Colu| Null terminated field name
              |mn  |                             |mn  |
              |visi|                             |visi|
              |ble 1 or 0                        |ble 1 or 0

    Values

  ----------------
    Unassigned, skip value
    ftUnknown,  ftCursor, ftADT, ftArray, ftReference, ftDataSet, ftVariant,
     ftInterface, ftIDispatch,

   Byte       |  0 |
              ------
   Contents   |  1 |
              ------
              |Type|
  ----------------
    NULL

   Byte       |  0 |
              ------
   Contents   |  2 |
              ------
              |Type|
  ----------------
    INTEGER32
    ftSmallint, ftInteger, ftWord, ftBoolean, ftAutoInc

   Byte       |  0 |  0    1    2    3 |
              --------------------------
   Contents   |  3 |  X |  X |  X |  X |
              --------------------------
              |Type|  Intetger value   |
                   |   (Longint)       |
  ----------------
    FLOAT64
    ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,

   Byte       |  0 |  0    1    2    3    4    5    6    7 |
              ----------------------------------------------
   Contents   |  4 |  X |  X |  X |  X |  X |  X |  X |  X |
              ----------------------------------------------
              |Type|  Float value (Double)                 |
  ----------------
    STRING
    ftString, ftMemo, ftFixedChar, ftLargeint, ftOraClob, ftGuid

   Byte       |  0 |  0    1    2    3 |  0    1    2   ...   N |
              ---------------------------------------------------
   Contents   |  5 |  X |  X |  X |  X |  a |  b |  c | ...   0 |
              ---------------------------------------------------
              |Type|  Size (Longint)   |  String body including |
                                       |  null terminator       |
  ----------------
    BINARY DATA
    ftBlob, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftOraBlob,
     ftBytes, ftTypedBinary, ftVarBytes, ftWideString,

   Byte       |  0 |  0    1    2    3 |  0    1    2   ...   N |
              ---------------------------------------------------
   Contents   |  6 |  X |  X |  X |  X |  a |  b |  c | ...   X |
              ---------------------------------------------------
              |Type|  Size (Longword)   |  data                  |
  ----------------
    EOF (End of File)

   Byte       |  0 |
              ------
   Contents   |  0 |
              ------
              |Type|
  }

  TVCLDBIF_BOF = packed record
    Signatura: array[0..6] of Char;
    Version: Byte;
    ColCount: Longint;
  end;

  TVCLDBIF_INTEGER32 = packed record
    AType: Byte;
    Value: Longint;
  end;

  TVCLDBIF_FLOAT64 = packed record
    AType: Byte;
    Value: Double;
  end;

  TVCLDBIF_STRING = packed record
    AType: Byte;
    Size: Longint;
  end;

  TVCLDBIF_BINARY_DATA = packed record
    AType: Byte;
    Size: Longint;
  end;

const
  TVCLDBIF_TYPE_EOF = 0;
  TVCLDBIF_TYPE_UNASSIGNED = 1;
  TVCLDBIF_TYPE_NULL = 2;
  TVCLDBIF_TYPE_INTEGER32 = 3;
  TVCLDBIF_TYPE_FLOAT64 = 4;
  TVCLDBIF_TYPE_STRING = 5;
  TVCLDBIF_TYPE_BINARY_DATA = 6;

type

  TDBGridEhExportAsVCLDBIF = class(TDBGridEhExport)
  private
    function CalcColCount:Word;
    procedure WriteUnassigned;
    procedure WriteNull;
    procedure WriteInteger(AValue: Longint);
    procedure WriteFloat(AValue: Double);
    procedure WriteString(AValue: String);
    procedure WriteBinaryData(AValue: String);
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteDataCell(Column: TColumnEh; AFont: TFont; Background: TColor); override;
  end;

  { TDBGridEhImport }

  TDBGridEhImport = class(TObject)
  private
    FDBGridEh: TCustomDBGridEh;
    FStream: TStream;
    FImpCols: TColumnsEhList;
  protected
    Eos:Boolean;
    procedure ReadPrefix; virtual;
    procedure ReadSuffix; virtual;
    procedure ReadRecord(ColumnsList:TColumnsEhList); virtual;
    procedure ReadDataCell(Column: TColumnEh); virtual;
    property Stream: TStream read FStream write FStream;
    property ImpCols:TColumnsEhList read FImpCols write FImpCols;
  public
    constructor Create; virtual;
    procedure ImportFromStream(AStream: TStream; IsImportAll:Boolean); virtual;
    procedure ImportFromFile(FileName:String; IsImportAll:Boolean); virtual;
    property DBGridEh: TCustomDBGridEh read FDBGridEh write FDBGridEh;
  end;

  TDBGridEhImportClass = class of TDBGridEhImport;

  { TDBGridEhImportAsText }

  TImportTextSreamState = (itssChar,itssTab,itssNewLine,itssEof);

  TDBGridEhImportAsText = class(TDBGridEhImport)
  private
    FLastChar:Char;
    FLastState:TImportTextSreamState;
    FLastString:String;
    FIgnoreAll: Boolean;
    function GetChar(var ch:Char):Boolean;
    function CheckState:TImportTextSreamState;
    function GetString(var Value:String):TImportTextSreamState;
  protected
    procedure ReadPrefix; override;
    procedure ReadRecord(ColumnsList:TColumnsEhList); override;
    procedure ReadDataCell(Column: TColumnEh); override;
  public
    procedure ImportFromStream(AStream: TStream; IsImportAll:Boolean); override;
  end;

  { TDBGridEhImportAsVCLDBIF }

  TDBGridEhImportAsVCLDBIF = class(TDBGridEhImport)
  private
    Prefix:TVCLDBIF_BOF;
    FIgnoreAll: Boolean;
    LastValue:Variant;
    FieldNames:TStringList;
    UseFieldNames:Boolean;
    procedure ReadValue;
  protected
    procedure ReadPrefix; override;
    procedure ReadRecord(ColumnsList:TColumnsEhList); override;
    procedure ReadDataCell(Column: TColumnEh); override;
  public
    procedure ImportFromStream(AStream: TStream; IsImportAll:Boolean); override;
  end;

  { Routines to import/export DBGridEh to/from file/stream }

procedure SaveDBGridEhToExportFile( ExportClass: TDBGridEhExportClass;
 DBGridEh: TCustomDBGridEh; const FileName: String; IsSaveAll: Boolean);
procedure WriteDBGridEhToExportStream( ExportClass: TDBGridEhExportClass;
 DBGridEh: TCustomDBGridEh; Stream: TStream; IsSaveAll: Boolean);

procedure LoadDBGridEhFromImportFile( ImportClass: TDBGridEhImportClass;
 DBGridEh: TCustomDBGridEh; const FileName: String; IsLoadToAll: Boolean);
procedure ReadDBGridEhFromImportStream(ImportClass: TDBGridEhImportClass;
  DBGridEh: TCustomDBGridEh; Stream: TStream; IsLoadToAll: Boolean);

  { Routines to support clipboard for DBGridEh }

var
  CF_VCLDBIF: Word;

const
  ExtendedVCLDBIFImpExpRowSelect: Boolean = True;
  DBGridEhImpExpCsvSeparator:Char = ';';

procedure DBGridEh_DoCutAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
procedure DBGridEh_DoCopyAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
procedure DBGridEh_DoPasteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
procedure DBGridEh_DoDeleteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);


implementation

uses DBConsts;

  { Routines to import/export DBGridEh to/from file/stream }

procedure WriteDBGridEhToExportStream( ExportClass: TDBGridEhExportClass;
 DBGridEh: TCustomDBGridEh; Stream: TStream; IsSaveAll: Boolean);
var DBGridEhExport:TDBGridEhExport;
begin
  DBGridEhExport := ExportClass.Create;
  try
    DBGridEhExport.DBGridEh := DBGridEh;
    DBGridEhExport.ExportToStream(Stream,IsSaveAll);
  finally
    DBGridEhExport.Free;
  end;
end;

procedure SaveDBGridEhToExportFile( ExportClass: TDBGridEhExportClass;
 DBGridEh: TCustomDBGridEh; const FileName: String; IsSaveAll: Boolean);
var DBGridEhExport:TDBGridEhExport;
begin
  DBGridEhExport := ExportClass.Create;
  try
    DBGridEhExport.DBGridEh := DBGridEh;
    DBGridEhExport.ExportToFile(FileName,IsSaveAll);
  finally
    DBGridEhExport.Free;
  end;
end;

procedure LoadDBGridEhFromImportFile( ImportClass: TDBGridEhImportClass;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜一区二区三区视频| 91性感美女视频| 99精品欧美一区二区蜜桃免费| 欧美日韩在线一区二区| 国产精品水嫩水嫩| 久久精品国产99| 欧美三级三级三级爽爽爽| 国产精品丝袜91| 国产麻豆精品久久一二三| 91精品国产欧美一区二区18| 亚洲日本韩国一区| www.色综合.com| 欧美国产乱子伦| 国产91综合一区在线观看| 日韩亚洲欧美综合| 日韩av电影一区| 欧美女孩性生活视频| 亚洲午夜av在线| 在线免费视频一区二区| 亚洲色图欧洲色图婷婷| 99精品在线观看视频| 中文字幕av一区二区三区免费看| 国产真实乱子伦精品视频| 日韩精品一区二区三区在线观看 | 欧美色图12p| 亚洲欧美在线另类| 成人av在线电影| 国产精品午夜免费| 成人激情开心网| 一区二区中文字幕在线| www.日韩在线| 亚洲欧美日韩国产综合在线| 91麻豆国产精品久久| 亚洲精品成人少妇| 欧美性生活一区| 五月激情综合婷婷| 日韩限制级电影在线观看| 日本不卡高清视频| 26uuu另类欧美亚洲曰本| 国产一区二区三区视频在线播放| 久久久久久99精品| 成人av网站在线观看免费| 国产精品毛片久久久久久久| 色香色香欲天天天影视综合网| 亚洲精品乱码久久久久| 欧美剧情片在线观看| 日本人妖一区二区| 国产视频一区不卡| 日本高清不卡aⅴ免费网站| 亚洲一区二区高清| 日韩一级在线观看| 国产乱子伦视频一区二区三区| 国产精品无码永久免费888| 色婷婷亚洲精品| 日韩在线播放一区二区| 久久网这里都是精品| 色香蕉久久蜜桃| 欧美aaaaaa午夜精品| 国产精品乱码久久久久久| 欧美在线看片a免费观看| 蜜臀av亚洲一区中文字幕| 国产欧美日韩亚州综合| 在线亚洲精品福利网址导航| 日本不卡一区二区| 国产精品乱人伦中文| 欧美喷水一区二区| 波多野结衣亚洲| 日韩国产在线观看一区| 亚洲国产成人自拍| 日韩视频一区二区三区在线播放 | 欧美一区二区三区系列电影| 精品一区二区三区免费毛片爱| 中文字幕在线视频一区| 欧美精品丝袜中出| 91在线无精精品入口| 精品一区二区在线看| 亚洲一区二区三区四区在线| 久久久精品黄色| 欧美人成免费网站| 99国产精品久久久久久久久久久| 视频一区在线播放| 亚洲人xxxx| 国产精品天美传媒| 精品国产精品一区二区夜夜嗨| 在线观看欧美黄色| 94-欧美-setu| 国产盗摄一区二区| 久久97超碰色| 日本亚洲视频在线| 亚洲综合成人在线视频| 中文字幕一区二区三区视频| 精品国产91洋老外米糕| 91麻豆精品久久久久蜜臀| 91黄色激情网站| 91美女在线视频| 99久久精品国产观看| 国产福利91精品一区二区三区| 久久成人av少妇免费| 免费欧美在线视频| 日韩电影一二三区| 亚洲国产成人tv| 亚洲国产成人porn| 亚洲国产一区二区视频| 一区二区三区四区av| 亚洲乱码一区二区三区在线观看| 日本一区二区三区高清不卡| 久久精品视频免费| 久久精品一区二区三区四区| 久久中文字幕电影| 久久综合资源网| 久久精品这里都是精品| 日本一区二区三区dvd视频在线| 精品国产伦一区二区三区观看体验 | 不卡欧美aaaaa| 成人动漫一区二区| youjizz国产精品| 成人av电影在线观看| 91网上在线视频| 色老汉一区二区三区| 欧美色图在线观看| 欧美一区欧美二区| 欧美电影免费观看高清完整版在线| 欧美mv和日韩mv国产网站| 久久久久国产一区二区三区四区| 国产亚洲短视频| 最新国产成人在线观看| 亚洲福利视频一区二区| 青草av.久久免费一区| 精品综合久久久久久8888| 紧缚捆绑精品一区二区| 成人一区二区三区在线观看| 91麻豆精品秘密| 91精品国产综合久久香蕉的特点 | 亚洲激情自拍偷拍| 亚洲成人资源网| 美女性感视频久久| 国产91在线看| 欧美视频在线播放| 精品久久久久一区二区国产| 国产精品嫩草影院com| 亚洲成年人网站在线观看| 精品系列免费在线观看| 色综合色综合色综合色综合色综合| 91美女在线视频| 欧美成人video| 国产精品日韩精品欧美在线| 亚洲 欧美综合在线网络| 国产麻豆视频一区二区| 欧美色图天堂网| 国产亚洲婷婷免费| 午夜精品久久久久影视| 国产69精品久久久久毛片| 欧美欧美欧美欧美| 中文文精品字幕一区二区| 亚洲高清免费视频| 国产成人丝袜美腿| 91精品国产欧美一区二区| 国产精品久久久一本精品| 日本亚洲视频在线| 成人国产精品免费网站| 日韩欧美一级二级| 亚洲一区影音先锋| 国产精品小仙女| 日韩视频在线你懂得| 亚洲愉拍自拍另类高清精品| 国产精品一区久久久久| 56国语精品自产拍在线观看| 国产精品传媒入口麻豆| 国产在线观看免费一区| 欧美高清一级片在线| 亚洲欧美日韩中文播放| 国产成人精品1024| 日韩一区二区免费在线电影| 亚洲国产精品一区二区www在线| 成人开心网精品视频| 日韩精品专区在线影院重磅| 亚洲成人av在线电影| 99视频精品全部免费在线| 国产欧美日韩在线观看| 激情综合色播激情啊| 欧美一级一级性生活免费录像| 亚洲自拍另类综合| 91亚洲精华国产精华精华液| 中文字幕第一页久久| 国产成+人+日韩+欧美+亚洲 | 欧美精品久久一区二区三区| √…a在线天堂一区| 成人性生交大片免费| 国产婷婷精品av在线| 国产精一品亚洲二区在线视频| 精品对白一区国产伦| 美女网站在线免费欧美精品| 欧美一级免费观看| 日韩二区在线观看| 欧美高清视频不卡网| 热久久久久久久| 337p日本欧洲亚洲大胆色噜噜| 麻豆精品视频在线观看视频| 日韩一区二区三区电影在线观看| 日韩中文字幕1|