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

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

?? dbgridehimpexp.pas

?? Delphi控件源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    for i := 0 to ColumnsList.Count-1 do
    begin
      WriteCellBorder(True,True,True,True);
      Inc(w,Trunc(ColumnsList[i].Width / fLogPelsX * 1440)); // in twips
      Put('\clshdng10000\clcfpat'+IntToStr(GetColorIndex((ColumnsList[i].Title.Color))));
      PutL('\cellx'+IntToStr(w));
    end;

    PutL('{\trrh0');

    for i := 0 to ColumnsList.Count-1 do
    begin
      if DBGridEh.Flat then Space := '12' else Space := '24';
      Put('\pard\intbl{'+GetAlignment(ColumnsList[i].Title.Alignment)+'\sb'+Space+'\sa'+Space);
      PutText(ColumnsList[i].Title.Font,ColumnsList[i].Title.Caption,ColumnsList[i].Title.Color);
      PutL('\cell}');
    end;

    PutL('\pard\intbl\row}');
  end;
end;

procedure TDBGridEhExportAsRTF.WriteRecord(ColumnsList: TColumnsEhList);
var fLogPelsX: Integer;
    i,w: Integer;
begin
  Put('\trowd');
  PutL('\trgaph40');

  fLogPelsX :=  GetDeviceCaps(DBGridEh.Canvas.Handle, LOGPIXELSX);

  w := 0;
  for i := 0 to ColumnsList.Count-1 do
  begin
    WriteCellBorder(True,True,True,True);
    Inc(w,Trunc(ColumnsList[i].Width / fLogPelsX * 1440)); // in twips
    Put('\clshdng10000\clcfpat' + IntToStr(GetColorIndex(GetDataCellColor(ColumnsList,i))));
    PutL('\cellx'+IntToStr(w));
  end;

  PutL('{\trrh0');

  inherited WriteRecord(ColumnsList);

  PutL('\pard\intbl\row}');
end;

procedure TDBGridEhExportAsRTF.WriteDataCell(Column: TColumnEh;
  AFont: TFont; Background: TColor);
var Space:String;
begin
  if DBGridEh.Flat then Space := '12' else Space := '24';
  Put('\pard\intbl{'+GetAlignment(Column.Alignment)+'\sb'+Space+'\sa'+Space);
  PutText(AFont,Column.DisplayText,Background);
  PutL('\cell}');
end;

procedure TDBGridEhExportAsRTF.WriteCellBorder(LeftBorder,TopBorder,BottomBorder,RightBorder:Boolean);
begin
  if LeftBorder then
  begin
    Put('\clbrdrl');
    Put('\brdrs');
    PutL('\brdrcf0');
  end;

  if TopBorder then
  begin
    Put('\clbrdrt');
    Put('\brdrs');
    PutL('\brdrcf0');
  end;

  if BottomBorder then
  begin
    Put('\clbrdrb');
    Put('\brdrs');
    PutL('\brdrcf0');
  end;

  if RightBorder then
  begin
    Put('\clbrdrr');
    Put('\brdrs');
    PutL('\brdrcf0');
  end;
end;

procedure TDBGridEhExportAsRTF.WriteFooter(ColumnsList: TColumnsEhList;
  FooterNo: Integer);
var fLogPelsX: Integer;
    i,w: Integer;
begin
  Put('\trowd');
  PutL('\trgaph40');

  fLogPelsX :=  GetDeviceCaps(DBGridEh.Canvas.Handle, LOGPIXELSX);

  w := 0;
  for i := 0 to ColumnsList.Count-1 do
  begin
    WriteCellBorder(True,True,True,True);
    Inc(w,Trunc(ColumnsList[i].Width / fLogPelsX * 1440)); // in twips
    Put('\clshdng10000\clcfpat'+
      IntToStr(GetColorIndex(GetFooterCellColor(ColumnsList,i,FooterNo))));
    PutL('\cellx'+IntToStr(w));
  end;

  PutL('{\trrh0'); // row auto-height

  inherited WriteFooter(ColumnsList,FooterNo);

  PutL('\pard\intbl\row}');
end;

procedure TDBGridEhExportAsRTF.WriteFooterCell(DataCol, Row: Integer;
  Column: TColumnEh; AFont: TFont; Background: TColor;
  Alignment: TAlignment; Text: String);
var Space: String;
begin
  if DBGridEh.Flat then Space := '12' else Space := '24';
  Put('\pard\intbl{'+GetAlignment(Alignment)+'\sb'+Space+'\sa'+Space);
  PutText(AFont,Text,Background);
  PutL('\cell}');
end;

function TDBGridEhExportAsRTF.GetDataCellColor(ColumnsList:TColumnsEhList;
  ColIndex:Integer): TColor;
var Font:TFont;
    State:TGridDrawState;
begin
  Font := TFont.Create;
  try
    Font.Assign(ColumnsList[ColIndex].Font);
    Result := ColumnsList[ColIndex].Color;
    State := [];
    if Assigned(DBGridEh.OnGetCellParams) then
      DBGridEh.OnGetCellParams(DBGridEh,ColumnsList[ColIndex],Font,Result,State);
  finally
    Font.Free;
  end;
end;

function TDBGridEhExportAsRTF.GetFooterCellColor(
  ColumnsList: TColumnsEhList; ColIndex: Integer; FooterNo:Integer): TColor;
var Font:TFont;
    State:TGridDrawState;
    Alignment:TAlignment;
    Value:String;
begin
  Font := TFont.Create;
  try
    Font.Assign(ColumnsList[ColIndex].UsedFooter(FooterNo).Font);
    Result := ColumnsList[ColIndex].UsedFooter(FooterNo).Color;
    Alignment := ColumnsList[ColIndex].UsedFooter(FooterNo).Alignment;
    if ColumnsList[ColIndex].UsedFooter(FooterNo).ValueType in [fvtSum,fvtCount] then
      Value := GetFooterValue(FooterNo,ColIndex)
    else
      Value := DBGridEh.GetFooterValue(FooterNo,ColumnsList[ColIndex]);
    State := [];
    if Assigned(DBGridEh.OnGetFooterParams) then
      DBGridEh.OnGetFooterParams(DBGridEh, ColumnsList[ColIndex].Index, FooterNo,
          ColumnsList[ColIndex], Font, Result, Alignment, State, Value);
  finally
    Font.Free;
  end;
end;

{ TDBGridEhExportAsXLS }

const
  CXlsBof: array[0..5] of Word = ($809, 8, 0, $10, 0, 0);
  CXlsEof: array[0..1] of Word = ($0A, 00);
  CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
  CXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
  CXlsRk: array[0..4] of Word = ($27E, 10, 0, 0, 0);

procedure TDBGridEhExportAsXLS.WriteFloatCell(const AValue: Double);
begin
  CXlsNumber[2] := FRow;
  CXlsNumber[3] := FCol;
  Stream.WriteBuffer(CXlsNumber, SizeOf(CXlsNumber));
  Stream.WriteBuffer(AValue, 8);
  IncColRow;
end;

procedure TDBGridEhExportAsXLS.WriteIntegerCell(const AValue: Integer);
var
  V: Integer;
begin
  CXlsRk[2] := FRow;
  CXlsRk[3] := FCol;
  Stream.WriteBuffer(CXlsRk, SizeOf(CXlsRk));
  V := (AValue shl 2) or 2;
  Stream.WriteBuffer(V, 4);
  IncColRow;
end;

procedure TDBGridEhExportAsXLS.WriteStringCell(const AValue: string);
var
  L: Word;
begin
  L := Length(AValue);
  CXlsLabel[1] := 8 + L;
  CXlsLabel[2] := FRow;
  CXlsLabel[3] := FCol;
  CXlsLabel[5] := L;
  Stream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
  Stream.WriteBuffer(Pointer(AValue)^, L);
  IncColRow;
end;

procedure TDBGridEhExportAsXLS.WritePrefix;
begin
  Stream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
end;

procedure TDBGridEhExportAsXLS.WriteSuffix;
begin
  Stream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
end;

procedure TDBGridEhExportAsXLS.WriteTitle(ColumnsList: TColumnsEhList);
var i:Integer;
begin
  for i := 0 to ColumnsList.Count-1 do
  begin
    WriteStringCell(ColumnsList[i].Title.Caption);
  end;
end;

procedure TDBGridEhExportAsXLS.WriteDataCell(Column: TColumnEh;
  AFont: TFont; Background: TColor);
begin
  if Column.Field = nil then
    WriteStringCell('')
  else if Column.GetColumnType = ctKeyPickList then
    WriteStringCell(Column.DisplayText)
  else
    with Column.Field do
      case DataType of
        ftSmallint, ftInteger, ftWord, ftAutoInc, ftBytes:
          WriteIntegerCell(AsInteger);
        ftFloat, ftCurrency, ftBCD:
          WriteFloatCell(AsFloat);
        else
          WriteStringCell(Column.DisplayText);
      end;
end;

procedure TDBGridEhExportAsXLS.WriteFooterCell(DataCol, Row: Integer;
  Column: TColumnEh; AFont: TFont; Background: TColor;
  Alignment: TAlignment; Text: String);
begin
  if Column.UsedFooter(Row).ValueType in [fvtSum,fvtCount] then
    WriteFloatCell(FooterValues[Row*ExpCols.Count+DataCol])
  else
    WriteStringCell(Text);
end;

procedure TDBGridEhExportAsXLS.ExportToStream(AStream: TStream;
  IsExportAll: Boolean);
begin
  FCol := 0;
  FRow := 0;
  inherited ExportToStream(AStream,IsExportAll);
end;

procedure TDBGridEhExportAsXLS.IncColRow;
begin
  if FCol = ExpCols.Count-1 then
  begin
    Inc(FRow);
    FCol := 0;
  end else
    Inc(FCol);
end;

{ TDBGridEhExportAsVCLDBIF }

procedure TDBGridEhExportAsVCLDBIF.WritePrefix;
const
  VCLDBIF_BOF: TVCLDBIF_BOF = (Signatura:('V','C','L','D','B','I','F');Version:1;ColCount:0);
var
  i:Integer;
  b:Byte;
begin
  VCLDBIF_BOF.ColCount := CalcColCount;
  Stream.WriteBuffer(VCLDBIF_BOF, SizeOf(VCLDBIF_BOF));
  for i := 0 to ExpCols.Count-1 do
  begin
    if ExpCols[i].Visible then b := 1 else b := 0;
    Stream.WriteBuffer(b, SizeOf(Byte));
    //Stream.WriteBuffer(PChar(ExpCols[i].FieldName)^,Length(ExpCols[i].FieldName)+1);
    Stream.WriteBuffer(PChar('')^,1);
  end;
end;

procedure TDBGridEhExportAsVCLDBIF.WriteSuffix;
var b:Byte;
begin
  b := TVCLDBIF_TYPE_EOF;
  Stream.WriteBuffer(b, SizeOf(Byte));
end;

procedure TDBGridEhExportAsVCLDBIF.WriteDataCell(Column: TColumnEh;
  AFont: TFont; Background: TColor);
var Field:TField;
begin
  if (Column.Field <> nil) and Column.Field.Lookup then
    Field := Column.Field.Dataset.FieldByName(Column.Field.KeyFields)
  else
    Field := Column.Field;
  if Field = nil then
    WriteUnassigned
  else if Field.IsNull then
    WriteNull
  else
    with Field do
      case DataType of
        ftSmallint, ftInteger, ftWord, ftAutoInc:
          WriteInteger(AsInteger);
        ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime:
          WriteFloat(AsFloat);
        ftString, ftBoolean
        {$IFDEF EH_LIB_4} ,ftFixedChar, ftMemo, ftLargeint{$ENDIF}
        {$IFDEF EH_LIB_5} ,ftGuid, ftOraClob {$ENDIF} :
           WriteString(AsString);
        ftBlob, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle,
        {$IFDEF EH_LIB_4}  ftWideString, {$ENDIF}
        {$IFDEF EH_LIB_5} ftOraBlob, {$ENDIF}
         ftBytes, ftTypedBinary, ftVarBytes:
          WriteBinaryData(AsString);
        else
          WriteUnassigned;
      end;
end;

procedure TDBGridEhExportAsVCLDBIF.WriteBinaryData(AValue: String);
var
  BinaryValue: TVCLDBIF_BINARY_DATA;
begin
  BinaryValue.AType := TVCLDBIF_TYPE_BINARY_DATA;
  BinaryValue.Size := Length(AValue);
  Stream.WriteBuffer(BinaryValue, SizeOf(BinaryValue));
  Stream.WriteBuffer(Pointer(AValue)^, BinaryValue.Size);
end;

procedure TDBGridEhExportAsVCLDBIF.WriteFloat(AValue: Double);
var
  FloatValue: TVCLDBIF_FLOAT64;
begin
  FloatValue.AType := TVCLDBIF_TYPE_FLOAT64;
  FloatValue.Value := AValue;
  Stream.WriteBuffer(FloatValue, SizeOf(FloatValue));
end;

procedure TDBGridEhExportAsVCLDBIF.WriteInteger(AValue: Integer);
var
  IntValue: TVCLDBIF_INTEGER32;
begin
  IntValue.AType := TVCLDBIF_TYPE_INTEGER32;
  IntValue.Value := AValue;
  Stream.WriteBuffer(IntValue, SizeOf(IntValue));
end;

procedure TDBGridEhExportAsVCLDBIF.WriteNull;
var b:Byte;
begin
  b := TVCLDBIF_TYPE_NULL;
  Stream.WriteBuffer(b, SizeOf(Byte));
end;

procedure TDBGridEhExportAsVCLDBIF.WriteString(AValue: String);
var
  StringValue: TVCLDBIF_STRING;
begin
  StringValue.AType := TVCLDBIF_TYPE_STRING;
  StringValue.Size := Length(AValue);
  Stream.WriteBuffer(StringValue, SizeOf(StringValue));
  Stream.WriteBuffer(Pointer(AValue)^, StringValue.Size);
end;

procedure TDBGridEhExportAsVCLDBIF.WriteUnassigned;
var b:Byte;
begin
  b := TVCLDBIF_TYPE_UNASSIGNED;
  Stream.WriteBuffer(b, SizeOf(Byte));
end;

function TDBGridEhExportAsVCLDBIF.CalcColCount: Word;
var i:Integer;
begin
  Result := 0;
  with DBGridEh do
  begin
    if Selection.SelectionType = gstNon then Exit;
    case Selection.SelectionType of
      gstRecordBookmarks:
        Result := VisibleColumns.Count;
      gstRectangle:
        for i := Selection.Rect.LeftCol to Selection.Rect.RightCol do
          if Columns[i].Visible then
            Inc(Result);
      gstColumns:
        Result := Selection.Columns.Count;
      gstAll:
        Result := VisibleColumns.Count;
    end;
  end;
end;

{ TDBGridEhImport }


constructor TDBGridEhImport.Create;
begin
  inherited Create; 
end;

procedure TDBGridEhImport.ImportFromFile(FileName: String; IsImportAll: Boolean);
var FileStream: TFileStream;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead);
  try
    ImportFromStream(FileStream, IsImportAll);
  finally
    FileStream.Free;
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美一区二区三区| 欧美一级片免费看| 日韩精品中文字幕在线不卡尤物| 国产精品入口麻豆九色| 日韩精品乱码av一区二区| www.日韩在线| 欧美刺激脚交jootjob| 亚洲夂夂婷婷色拍ww47| 国产91精品久久久久久久网曝门| 欧美一区二区啪啪| 夜夜嗨av一区二区三区四季av | 亚洲手机成人高清视频| 久久超碰97中文字幕| 欧美精品第1页| 亚洲一区二区影院| 91一区一区三区| 国产免费成人在线视频| 国产一区免费电影| 欧美成人一区二区三区片免费 | 青娱乐精品视频在线| 欧美色综合久久| 亚洲人成精品久久久久久| 成人一级视频在线观看| 精品久久人人做人人爽| 免费在线观看成人| 91麻豆精品国产自产在线观看一区| 亚洲综合自拍偷拍| 色综合视频在线观看| 亚洲人123区| 92精品国产成人观看免费| 中文字幕五月欧美| 成年人国产精品| 国产精品久久久久婷婷| 成人a级免费电影| 国产精品乱码妇女bbbb| 成人永久免费视频| 国产精品美女久久久久久久久久久 | 精品国产亚洲在线| 麻豆成人91精品二区三区| 欧美一级日韩免费不卡| 看国产成人h片视频| 日韩久久精品一区| 久久99久久久久久久久久久| 欧美精品一区二区三区久久久| 久久电影网电视剧免费观看| 精品乱人伦一区二区三区| 久久er精品视频| 久久久久一区二区三区四区| 国产999精品久久久久久绿帽| 中文字幕av一区二区三区高| 99久久精品国产毛片| 日韩一区在线播放| 欧美中文字幕一区二区三区亚洲| 亚洲一区国产视频| 欧美一区二区三区小说| 麻豆国产欧美一区二区三区| 国产亚洲综合av| 高清国产午夜精品久久久久久| 国产精品毛片a∨一区二区三区 | 久久电影网站中文字幕| 久久久午夜精品理论片中文字幕| 国产suv精品一区二区6| 亚洲同性同志一二三专区| 色噜噜偷拍精品综合在线| 亚洲bt欧美bt精品| 欧美大肚乱孕交hd孕妇| 国产suv精品一区二区883| 亚洲人精品午夜| 91超碰这里只有精品国产| 国模一区二区三区白浆| 中文字幕第一区二区| 91黄视频在线观看| 热久久一区二区| 久久久久久免费网| 92国产精品观看| 日韩av不卡一区二区| 国产日韩欧美综合一区| 色偷偷88欧美精品久久久| 免费xxxx性欧美18vr| 中文字幕欧美国产| 欧美亚州韩日在线看免费版国语版| 奇米影视在线99精品| 国产日韩影视精品| 欧美三级韩国三级日本三斤| 久久99国产精品久久99| 亚洲色图丝袜美腿| 欧美一区二区三区的| 国产99久久久国产精品潘金| 亚洲国产精品一区二区www在线| 久久影音资源网| 色综合久久中文综合久久牛| 久久成人久久爱| 亚洲男人都懂的| 日韩视频免费观看高清完整版在线观看 | 欧美—级在线免费片| 欧美亚洲日本一区| 国产在线视频一区二区三区| 亚洲黄一区二区三区| 欧美va亚洲va| 色8久久精品久久久久久蜜 | 一区二区三区欧美视频| 精品国产免费一区二区三区四区 | 欧美日韩一区二区在线观看视频 | 亚洲第一精品在线| 久久精品人人做人人综合| 欧美色图第一页| 国产福利一区在线观看| 首页国产丝袜综合| 中文字幕一区二区三区色视频| 51精品视频一区二区三区| 99久久伊人久久99| 麻豆精品在线观看| 一区二区三区欧美日韩| 国产午夜亚洲精品理论片色戒 | 色天天综合久久久久综合片| 国产一区二区影院| 日韩高清不卡一区| 一区二区在线看| 中文字幕乱码一区二区免费| 欧美不卡在线视频| 欧美精品视频www在线观看 | 国产精品正在播放| 日韩精彩视频在线观看| 亚洲精选在线视频| 国产日本欧洲亚洲| 精品福利一二区| 欧美日本视频在线| 一本久久综合亚洲鲁鲁五月天 | 97久久精品人人做人人爽50路 | 天堂蜜桃91精品| 亚洲私人黄色宅男| 国产精品美女久久福利网站| 久久影院电视剧免费观看| 日韩午夜中文字幕| 欧美二区乱c少妇| 欧美制服丝袜第一页| 色哟哟日韩精品| 972aa.com艺术欧美| 成人动漫精品一区二区| 国产精品小仙女| 国产在线视视频有精品| 久草精品在线观看| 九一九一国产精品| 久久精品国产99国产精品| 日本欧美一区二区| 免费欧美高清视频| 蜜臀国产一区二区三区在线播放| 亚洲成人av一区二区| 亚洲第一激情av| 亚洲www啪成人一区二区麻豆| 亚洲一区二区三区四区的| 曰韩精品一区二区| 一区二区高清视频在线观看| 一区二区三区在线播放| 亚洲乱码国产乱码精品精小说| 亚洲欧美日韩精品久久久久| 1024精品合集| 亚洲欧美激情小说另类| 亚洲卡通欧美制服中文| 一区二区三区电影在线播| 一区二区三区免费看视频| 伊人夜夜躁av伊人久久| 亚洲午夜精品在线| 日韩国产高清影视| 蜜桃视频一区二区| 九九九久久久精品| 国内精品久久久久影院薰衣草| 国产精品资源在线观看| 国产成人亚洲精品狼色在线| av在线不卡电影| 色哟哟国产精品免费观看| 欧美性欧美巨大黑白大战| 91麻豆精品国产91| 欧美成人一区二区三区片免费| 久久久久久久久久久久电影| 国产精品色在线观看| 亚洲男人的天堂在线观看| 国产精品77777竹菊影视小说| 国产69精品一区二区亚洲孕妇| 成人app下载| 欧美午夜不卡视频| 欧美刺激午夜性久久久久久久 | 欧美亚洲综合一区| 欧美一区二区性放荡片| 2020国产精品| 一区精品在线播放| 亚洲第一在线综合网站| 久久成人18免费观看| 白白色 亚洲乱淫| 欧美综合一区二区| 日韩午夜中文字幕| 国产精品女人毛片| 亚洲自拍另类综合| 精品亚洲欧美一区| 97国产一区二区| 欧美日韩久久一区二区| 久久综合色综合88| 亚洲免费毛片网站| 美女视频网站久久| 成人爱爱电影网址|