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

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

?? dbgridehimpexp.pas

?? Delphi控件源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
 DBGridEh: TCustomDBGridEh; const FileName: String; IsLoadToAll: Boolean);
var DBGridEhImport:TDBGridEhImport;
begin
  DBGridEhImport := ImportClass.Create;
  try
    DBGridEhImport.DBGridEh := DBGridEh;
    DBGridEhImport.ImportFromFile(FileName,IsLoadToAll);
  finally
    DBGridEhImport.Free;
  end;
end;

procedure ReadDBGridEhFromImportStream(ImportClass: TDBGridEhImportClass;
  DBGridEh: TCustomDBGridEh; Stream: TStream; IsLoadToAll: Boolean);
var DBGridEhImport:TDBGridEhImport;
begin
  DBGridEhImport := ImportClass.Create;
  try
    DBGridEhImport.DBGridEh := DBGridEh;
    DBGridEhImport.ImportFromStream(Stream,IsLoadToAll);
  finally
    DBGridEhImport.Free;
  end;
end;

{ Routines to support clipboard with DBGridEh }

var
  CF_CSV: Word;
  CF_RICH_TEXT_FORMAT: Word;
//  CF_BIFF: Word;
//  CF_HTML_FORMAT: Word;

procedure Clipboard_PutFromStream(Format: Word; ms:TMemoryStream);
var
  Data: THandle;
  DataPtr: Pointer;
  Buffer:Pointer;
begin
  Buffer := ms.Memory;
  ClipBoard.Open;
  try
    Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, ms.Size);
    try
      DataPtr := GlobalLock(Data);
      try
        Move(Buffer^, DataPtr^, ms.Size);
        ClipBoard.SetAsHandle(Format, Data);
      finally
        GlobalUnlock(Data);
      end;
    except
      GlobalFree(Data);
      raise;
    end;
  finally
    ClipBoard.Close;
  end;
end;

procedure Clipboard_GetToStream(Format: Word; ms:TMemoryStream);
var
  Data: THandle;
  DataPtr: Pointer;
begin
  ClipBoard.Open;
  try
    Data := ClipBoard.GetAsHandle(Format);
    if Data = 0 then Exit;
    DataPtr := GlobalLock(Data);
    if DataPtr = nil then Exit;
    try
      ms.WriteBuffer(DataPtr^, GlobalSize(Data));
    finally
      GlobalUnlock(Data);
    end;
  finally
    ClipBoard.Close;
  end;
end;

procedure DBGridEh_DoCutAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
begin
  DBGridEh_DoCopyAction(DBGridEh,ForWholeGrid); 
  DBGridEh_DoDeleteAction(DBGridEh,ForWholeGrid);
end;

procedure DBGridEh_DoDeleteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
var i:Integer;
    ColList:TColumnsEhList;
    ASelectionType:TDBGridEhSelectionType;

  procedure ClearColumns;
  var i:Integer;
      Field:TField;
  begin
    for i := 0 to ColList.Count-1 do
    begin
      if ColList[i].CanModify(False) then
      begin
        if (ColList[i].Field <> nil) and ColList[i].Field.Lookup then
          Field := ColList[i].Field.Dataset.FieldByName(ColList[i].Field.KeyFields)
        else
          Field := ColList[i].Field;
        if Field.DataSet.CanModify then
        begin
          Field.DataSet.Edit;
          if Field.DataSet.State in [dsEdit,dsInsert] then
            Field.Clear;
        end;
      end;
    end;
  end;

  function DeletePrompt: Boolean;
  var
    Msg: string;
  begin
    Result := True;
    if ASelectionType = gstRecordBookmarks then
      if (DBGridEh.Selection.Rows.Count > 1) then
        Msg := SDeleteMultipleRecordsQuestion
      else
        Msg := SDeleteRecordQuestion
    else if ASelectionType = gstRectangle then
      Msg := 'Clear selected cells?'
    else
      Exit;
    Result := not (dgConfirmDelete in DBGridEh.Options) or
      (MessageDlg(Msg, mtConfirmation, mbOKCancel, 0) <> idCancel);
  end;

begin
  with DBGridEh do
  begin
    if ForWholeGrid then ASelectionType := gstAll else ASelectionType := Selection.SelectionType;
    if (ASelectionType = gstNon) or
       (DataSource = nil) or (DataSource.Dataset = nil) or
       not DeletePrompt then
      Exit;
    with DataSource.Dataset do
    begin
      SaveBookmark;
      DisableControls;
      try
        case ASelectionType of
          gstRecordBookmarks:
          begin
            ColList := VisibleColumns;
            for i := 0 to Selection.Rows.Count-1 do
            begin
              Bookmark := Selection.Rows[I];
              Delete;
            end;
          end;
          gstRectangle:
          begin
            ColList := TColumnsEhList.Create;
            try
              for i := Selection.Rect.LeftCol to Selection.Rect.RightCol do
                if Columns[i].Visible then
                  ColList.Add(Columns[i]);
              Bookmark := Selection.Rect.TopRow;
              while True do
              begin
                ClearColumns;
                if CompareBookmarks(Pointer(Selection.Rect.BottomRow),Pointer(Bookmark)) = 0 then Break;
                Next;
                if Eof then Break;
              end;
            finally
              ColList.Free;
            end;
            RestoreBookmark;
          end;
          gstColumns:
          begin
            ColList := Selection.Columns;
            First;
            while  Eof = False do
            begin
              ClearColumns;
              Next;
            end;
            RestoreBookmark;
          end;
          gstAll:
          begin
            ColList := VisibleColumns;
            First;
            while  Eof = False do
              Delete;
          end;
        end;
      finally
        EnableControls;
      end;
    end;
  end;
end;

procedure DBGridEh_DoCopyAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
var ms:TMemoryStream;
begin
  ms := nil;
  Clipboard.Open;
  try
    ms := TMemoryStream.Create;

    WriteDBGridEhToExportStream(TDBGridEhExportAsText,DBGridEh,ms,ForWholeGrid);
    ms.WriteBuffer(PChar('')^,1);
    Clipboard_PutFromStream(CF_TEXT,ms);
    ms.Clear;

    WriteDBGridEhToExportStream(TDBGridEhExportAsCSV,DBGridEh,ms,ForWholeGrid);
    ms.WriteBuffer(PChar('')^,1);
    Clipboard_PutFromStream(CF_CSV,ms);
    ms.Clear;

    WriteDBGridEhToExportStream(TDBGridEhExportAsRTF,DBGridEh,ms,ForWholeGrid);
    ms.WriteBuffer(PChar('')^,1);
    Clipboard_PutFromStream(CF_RICH_TEXT_FORMAT,ms);
    ms.Clear;

    WriteDBGridEhToExportStream(TDBGridEhExportAsVCLDBIF,DBGridEh,ms,ForWholeGrid);
    Clipboard_PutFromStream(CF_VCLDBIF,ms);
    ms.Clear;

    { This version of HTML and Biff export routines don't work under MS Office

    WriteDBGridEhToExportStream(TDBGridEhExportAsHTML,DBGridEh,ms,ForWholeGrid);
    Clipboard_PutFromStream(CF_HTML_FORMAT,ms);
    ms.Clear;

    WriteDBGridEhToExportStream(TDBGridEhExportAsXLS,DBGridEh,ms,ForWholeGrid);
    Clipboard_PutFromStream(CF_BIFF,ms);
    ms.Clear;
    }

  finally
    ms.Free;
    Clipboard.Close;
  end;
end;

procedure DBGridEh_DoPasteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid:Boolean);
var ms:TMemoryStream;
begin
  ms := nil;
  Clipboard.Open;
  try
    ms := TMemoryStream.Create;

    if Clipboard.HasFormat(CF_VCLDBIF) then
    begin
      Clipboard_GetToStream(CF_VCLDBIF,ms);
      ms.Position := 0;
      ReadDBGridEhFromImportStream(TDBGridEhImportAsVCLDBIF,DBGridEh,ms,ForWholeGrid);
    end
    else if Clipboard.HasFormat(CF_TEXT) then
    begin
      Clipboard_GetToStream(CF_TEXT,ms);
      ms.Position := 0;
      ReadDBGridEhFromImportStream(TDBGridEhImportAsText,DBGridEh,ms,ForWholeGrid);
    end;

  finally
    ms.Free;
    Clipboard.Close;
  end;
end;

{ TDBGridEhExport }

procedure TDBGridEhExport.ExportToFile(FileName: String; IsExportAll: Boolean);
var FileStream: TFileStream;
begin
  FileStream := TFileStream.Create(FileName, fmCreate);
  try
    ExportToStream(FileStream, IsExportAll);
  finally
    FileStream.Free;
  end;
end;

procedure TDBGridEhExport.ExportToStream(AStream: TStream; IsExportAll: Boolean);
var i:Integer;
    ColList:TColumnsEhList;
    ASelectionType:TDBGridEhSelectionType;
begin
  Stream := AStream;
  try
  with DBGridEh do
  begin
    if IsExportAll then ASelectionType := gstAll else ASelectionType := Selection.SelectionType;
    if ASelectionType = gstNon then Exit;
    with DataSource.Dataset do
    begin
      SaveBookmark;
      DisableControls;
      try
        case ASelectionType of
          gstRecordBookmarks:
          begin
            ExpCols := VisibleColumns;
            FooterValues := AllocMem(SizeOf(Currency)*ExpCols.Count*DBGridEh.FooterRowCount);
            WritePrefix;
            if dgTitles in Options then WriteTitle(VisibleColumns);
            for i := 0 to Selection.Rows.Count-1 do
            begin
              Bookmark := Selection.Rows[I];
              CalcFooterValues;
              WriteRecord(VisibleColumns);
            end;
            for i := 0 to FooterRowCount-1 do WriteFooter(VisibleColumns,i);
          end;
          gstRectangle:
          begin
            ColList := TColumnsEhList.Create;
            try
              for i := Selection.Rect.LeftCol to Selection.Rect.RightCol do
                if Columns[i].Visible then
                  ColList.Add(Columns[i]);
              ExpCols := ColList;
              FooterValues := AllocMem(SizeOf(Currency)*ExpCols.Count*DBGridEh.FooterRowCount);
              WritePrefix;
              if dgTitles in Options then WriteTitle(ColList);
              Bookmark := Selection.Rect.TopRow;
              while True do
              begin
                WriteRecord(ColList);
                CalcFooterValues;
                if CompareBookmarks(Pointer(Selection.Rect.BottomRow),Pointer(Bookmark)) = 0 then Break;
                Next;
                if Eof then Break;
              end;
              for i := 0 to FooterRowCount-1 do WriteFooter(ColList,i);
            finally
              ColList.Free;
            end;
          end;
          gstColumns:
          begin
            ExpCols := Selection.Columns;
            FooterValues := AllocMem(SizeOf(Currency)*ExpCols.Count*DBGridEh.FooterRowCount);
            WritePrefix;
            if dgTitles in Options then WriteTitle(Selection.Columns);
            First;
            while  Eof = False do
            begin
              WriteRecord(Selection.Columns);
              CalcFooterValues;
              Next;
            end;
            for i := 0 to FooterRowCount-1 do WriteFooter(Selection.Columns,i);
          end;
          gstAll:
          begin
            ExpCols := VisibleColumns;
            FooterValues := AllocMem(SizeOf(Currency)*ExpCols.Count*DBGridEh.FooterRowCount);
            WritePrefix;
            if dgTitles in Options then WriteTitle(VisibleColumns);
            First;
            while  Eof = False do
            begin
              WriteRecord(VisibleColumns);
              CalcFooterValues;
              Next;
            end;
            for i := 0 to FooterRowCount-1 do WriteFooter(VisibleColumns,i);
          end;
        end;
      finally
        RestoreBookmark;
        EnableControls;
      end;
    end;
  end;
  WriteSuffix;
  finally
    FreeMem(FooterValues);
  end;
end;

procedure TDBGridEhExport.WriteTitle(ColumnsList:TColumnsEhList);
begin
end;

procedure TDBGridEhExport.WriteRecord(ColumnsList:TColumnsEhList);
var i:Integer;
    Font:TFont;
    Background: TColor;
    State:TGridDrawState;
begin
  Font := TFont.Create;
  try
    for i := 0 to ColumnsList.Count-1 do
    begin
      Font.Assign(ColumnsList[i].Font);
      Background := ColumnsList[i].Color;
      State := [];
      if Assigned(DBGridEh.OnGetCellParams) then
        DBGridEh.OnGetCellParams(DBGridEh,ColumnsList[i],Font,Background,State);
      WriteDataCell(ColumnsList[i],Font,Background);
    end;
  finally
    Font.Free;
  end;
end;

procedure TDBGridEhExport.WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer);
var i:Integer;
    Font:TFont;
    Background: TColor;
    State:TGridDrawState;
    Alignment:TAlignment;
    Value:String;
begin
  Font := TFont.Create;
  try
    for i := 0 to ColumnsList.Count-1 do
    begin
      Font.Assign(ColumnsList[i].UsedFooter(FooterNo).Font);
      Background := ColumnsList[i].UsedFooter(FooterNo).Color;
      Alignment := ColumnsList[i].UsedFooter(FooterNo).Alignment;
      if ColumnsList[i].UsedFooter(FooterNo).ValueType in [fvtSum,fvtCount] then
        Value := GetFooterValue(FooterNo,i)
      else
        Value := DBGridEh.GetFooterValue(FooterNo,ColumnsList[i]);
      State := [];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜理伦三级在线观看| 久热成人在线视频| 99精品视频一区二区| 亚洲国产精品成人综合色在线婷婷| 免费在线观看日韩欧美| 欧美成人性战久久| 国产精品白丝jk黑袜喷水| 国产亚洲成aⅴ人片在线观看 | 高潮精品一区videoshd| 欧美激情一区二区三区不卡| www.日韩大片| 亚洲欧洲日韩av| 色婷婷综合久色| 日韩黄色片在线观看| 精品久久久久99| 高清不卡一区二区在线| 亚洲美女偷拍久久| 欧美福利一区二区| 国产麻豆精品视频| 亚洲欧美韩国综合色| 91精品国产综合久久香蕉的特点| 国内外成人在线| 亚洲欧洲一区二区三区| 欧美日韩免费观看一区二区三区 | 粉嫩一区二区三区性色av| 亚洲欧美偷拍卡通变态| 欧美一级午夜免费电影| 成人午夜在线视频| 天天操天天综合网| 中文字幕一区二区三区四区不卡| 欧美日韩情趣电影| 成人开心网精品视频| 亚洲永久精品大片| 久久精品日产第一区二区三区高清版 | 日本亚洲免费观看| 中文字幕欧美区| 欧美丰满少妇xxxxx高潮对白| 国产精品一二三四| 五月激情综合网| 国产精品私人影院| 91精品国产色综合久久ai换脸| 国产乱子伦视频一区二区三区| 一区二区三区日韩欧美精品| 久久精品夜色噜噜亚洲a∨| 精品视频在线免费| 91亚洲精品久久久蜜桃| 国产乱国产乱300精品| 亚洲高清不卡在线观看| 亚洲视频在线观看一区| 久久综合99re88久久爱| 欧美日韩精品一区视频| 91小视频免费看| 国产成人亚洲综合色影视| 日韩一区精品视频| 一区二区三区.www| 国产精品电影院| 久久婷婷成人综合色| 欧美一区二区三区视频免费播放 | 久久久久久久久久久久久久久99| 欧美日韩另类一区| 91成人在线免费观看| 成人开心网精品视频| 国产精品乡下勾搭老头1| 久久精品国产在热久久| 亚州成人在线电影| 亚洲精品乱码久久久久久| 国产精品亲子伦对白| 久久久不卡网国产精品一区| 日韩欧美色电影| 91精品国产综合久久精品| 欧美午夜精品久久久| 欧美伊人久久久久久午夜久久久久| av中文字幕一区| 96av麻豆蜜桃一区二区| 99v久久综合狠狠综合久久| 高清免费成人av| 高清在线观看日韩| 国产白丝网站精品污在线入口| 久久99精品久久久久久动态图| 青青草国产成人av片免费| 午夜欧美2019年伦理| 亚洲国产另类精品专区| 亚洲一区二区3| 偷拍一区二区三区四区| 美女网站在线免费欧美精品| 热久久久久久久| 开心九九激情九九欧美日韩精美视频电影 | 天天av天天翘天天综合网色鬼国产| 一级做a爱片久久| 亚洲电影激情视频网站| 日韩激情一区二区| 久久99热国产| 成人激情小说网站| 91亚洲男人天堂| 欧美日韩综合色| 欧美一级淫片007| 国产亚洲成aⅴ人片在线观看 | 亚洲激情图片小说视频| 亚洲一区欧美一区| 蜜桃av一区二区三区电影| 国产精品一区二区久久不卡| 成人一区二区在线观看| 在线视频综合导航| 欧美一区二区福利在线| 久久久www成人免费无遮挡大片| 国产精品另类一区| 亚洲一区在线观看视频| 久久精品噜噜噜成人88aⅴ| 国产成人在线网站| 欧美性极品少妇| 欧美日韩成人高清| 国产成人免费视| 日韩欧美在线综合网| 青草国产精品久久久久久| 欧美在线不卡一区| 久久这里只有精品视频网| 亚洲一区二区三区四区的| 国内精品不卡在线| 成人激情图片网| 欧美精品123区| 日本不卡一区二区| 色婷婷久久久久swag精品| av毛片久久久久**hd| 久久色.com| 成人激情黄色小说| 91福利资源站| 欧美α欧美αv大片| 136国产福利精品导航| 午夜视频久久久久久| 国产成人精品www牛牛影视| 欧美日精品一区视频| 国产欧美日本一区二区三区| 视频一区免费在线观看| 懂色av一区二区三区免费观看| 欧美日韩一级大片网址| 中文字幕欧美激情| 麻豆视频观看网址久久| 色94色欧美sute亚洲线路一ni | 国产aⅴ综合色| 正在播放亚洲一区| 一区二区三区丝袜| 国产成人av一区二区三区在线| 欧美精品色综合| 亚洲精品成人精品456| 国产成人免费9x9x人网站视频| 欧美精品三级日韩久久| 亚洲精品成人天堂一二三| 成人性色生活片免费看爆迷你毛片| 日韩午夜av电影| 五月天激情综合| 欧美丝袜丝交足nylons| 中文字幕在线一区二区三区| 国产麻豆精品95视频| 欧美电影免费观看高清完整版在线观看| 亚洲自拍欧美精品| 91片在线免费观看| 国产精品久久看| 国产福利一区二区三区视频| 日韩欧美国产电影| 青娱乐精品视频| 欧美群妇大交群的观看方式| 亚洲激情欧美激情| 日本精品一区二区三区高清| 亚洲免费色视频| 色综合久久久久综合| 亚洲视频1区2区| 色综合欧美在线| 亚洲乱码一区二区三区在线观看| 成人av一区二区三区| 国产精品伦理一区二区| 99久久99久久综合| 亚洲视频你懂的| 日本高清不卡aⅴ免费网站| 自拍偷拍国产亚洲| 色网综合在线观看| 亚洲综合一区二区| 欧美区视频在线观看| 日韩av中文字幕一区二区三区| 欧美肥大bbwbbw高潮| 美女mm1313爽爽久久久蜜臀| 精品不卡在线视频| 国产精品1区2区3区在线观看| 欧美国产精品一区二区三区| 99视频精品在线| 亚洲综合男人的天堂| 欧美一级在线免费| 国产99久久久精品| 一区二区三区在线播| 在线不卡的av| 国产一区视频网站| 中文字幕在线不卡视频| 欧美在线你懂得| 看国产成人h片视频| 欧美国产精品专区| 欧美视频一区二| 国产一区二区免费在线| 亚洲三级在线免费观看| 欧美福利一区二区| 国产91丝袜在线18| 亚洲成人自拍一区|