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

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

?? dbgridehimpexp.pas

?? delphi控件類
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
            Put('\pard\intbl{'+GetAlignment(taCenter)+'\sb'+Space+'\sa'+Space);
          end else
          begin
            Text := '';
            Put('\pard\intbl{'+GetAlignment(taCenter));
          end;
        CalcSpan(ColumnsList,ListOfHeadTreeNodeList,0,i,ColSpan,RowSpan);

        PutText(ColumnsList[i].Title.Font,Text,ColumnsList[i].Title.Color);
        PutL('\cell}');

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

    finally
      for i := 0 to ListOfHeadTreeNodeList.Count-1 do
        TList(ListOfHeadTreeNodeList.Items[i]).Free;
      ListOfHeadTreeNodeList.Free;
      FreeMem(FPTitleExpArr);

      ExclLeftBorders.Free;
      ExclTopBorders.Free;
      ExclBottomBorders.Free;
      ExclRightBorders.Free;
    end;
  end else
  begin
    Put('\trowd');
    PutL('\trgaph40');

    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((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; FColCellParamsEh: TColCellParamsEh);
var Space:String;
begin
  if DBGridEh.Flat then Space := '12' else Space := '24';
  Put('\pard\intbl{'+GetAlignment(FColCellParamsEh.Alignment)+'\sb'+Space+'\sa'+Space);
  PutText(FColCellParamsEh.Font,FColCellParamsEh.Text,FColCellParamsEh.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 }

var
  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; FColCellParamsEh: TColCellParamsEh);
begin
  if Column.Field = nil then
    WriteStringCell('')
  else if Column.GetColumnType = ctKeyPickList then
    WriteStringCell(FColCellParamsEh.Text)
  else
    with Column.Field do
      case DataType of
        ftSmallint, ftInteger, ftWord, ftAutoInc, ftBytes:
          WriteIntegerCell(AsInteger);
        ftFloat, ftCurrency, ftBCD{$IFDEF EH_LIB_6},ftFMTBcd{$ENDIF}:
          WriteFloatCell(AsFloat);
        else
          WriteStringCell(FColCellParamsEh.Text);
      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 }

var
  VCLDBIF_BOF: TVCLDBIF_BOF = (Signatura:('V','C','L','D','B','I','F');Version:1;ColCount:0);

procedure TDBGridEhExportAsVCLDBIF.WritePrefix;
var
  i:Integer;
  b:Byte;
begin
  VCLDBIF_BOF.ColCount := ExpCols.Count;//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; FColCellParamsEh: TColCellParamsEh);
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{$IFDEF EH_LIB_6}, ftTimeStamp, ftFMTBcd{$ENDIF}:
          WriteFloat(AsFloat);
        ftString, ftBoolean, ftFixedChar, ftMemo, ftLargeint
        {$IFDEF EH_LIB_5} ,ftGuid, ftOraClob {$ENDIF} :
           WriteString(AsString);
        ftBlob, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftWideString,
        {$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 DBG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品tushy高清| 国产成人在线观看| 欧美日韩和欧美的一区二区| 亚洲欧美色图小说| 91香蕉视频污| 一区二区欧美国产| 正在播放一区二区| 国产一区二区三区不卡在线观看| 久久麻豆一区二区| youjizz国产精品| 一区二区三区国产精品| 欧美日韩免费一区二区三区视频| 日韩在线a电影| 国产亚洲成aⅴ人片在线观看| 成人一区二区三区视频| 亚洲一区在线视频| 日韩欧美综合在线| 国产成人免费视频| 亚洲最大成人综合| 欧美精品一区二区三区很污很色的| 国产精品一卡二| 亚洲欧美成aⅴ人在线观看| 欧美一级精品大片| 国产不卡免费视频| 亚洲福中文字幕伊人影院| 亚洲精品一区二区三区福利| 91麻豆自制传媒国产之光| 日韩av在线免费观看不卡| 国产人久久人人人人爽| 欧美亚日韩国产aⅴ精品中极品| 久久精品72免费观看| 国产精品久久午夜| 91麻豆精品国产91久久久久久久久 | 精品国产一区二区三区av性色| 国产精品中文字幕日韩精品 | 成人丝袜高跟foot| 亚洲专区一二三| 国产欧美一区视频| 在线成人免费观看| 91在线视频播放地址| 久久99精品久久久| 亚洲美女在线国产| 亚洲国产精品av| 欧美一卡二卡在线观看| 91同城在线观看| 紧缚捆绑精品一区二区| 亚洲一区二区av在线| 久久久青草青青国产亚洲免观| 欧美日韩一卡二卡三卡| heyzo一本久久综合| 精品一区二区三区视频在线观看| 亚洲一区二区视频在线观看| 国产精品视频免费看| 精品91自产拍在线观看一区| 欧美视频一区在线观看| 91麻豆国产香蕉久久精品| 国产一区二区三区在线观看精品 | 婷婷国产v国产偷v亚洲高清| 最新欧美精品一区二区三区| 337p日本欧洲亚洲大胆精品| 欧美精品久久天天躁| 一本一道久久a久久精品综合蜜臀| 国产激情精品久久久第一区二区| 免费成人在线影院| 日本中文在线一区| 亚洲一区二区三区精品在线| 中文字幕日韩av资源站| 国产欧美精品一区aⅴ影院| 精品日韩一区二区| 日韩欧美另类在线| 欧美本精品男人aⅴ天堂| 日韩一区二区三区在线观看| 欧美精品丝袜久久久中文字幕| 一本大道av伊人久久综合| 成人免费黄色在线| 韩国成人精品a∨在线观看| 日韩电影在线看| 蜜臀久久久久久久| 蜜桃免费网站一区二区三区| 奇米一区二区三区| 蜜臀精品久久久久久蜜臀 | 国产中文一区二区三区| 老鸭窝一区二区久久精品| 日韩电影一区二区三区| 日韩av电影免费观看高清完整版| 日日摸夜夜添夜夜添亚洲女人| 亚洲国产va精品久久久不卡综合| 亚洲成人在线免费| 天堂成人国产精品一区| 日本不卡在线视频| 久久91精品久久久久久秒播| 国模一区二区三区白浆| 国产精品一区二区x88av| 国产.精品.日韩.另类.中文.在线.播放| 国产综合成人久久大片91| 国产sm精品调教视频网站| 不卡av免费在线观看| 色偷偷久久一区二区三区| 91黄色免费观看| 宅男在线国产精品| 国产免费成人在线视频| 亚洲欧美日韩一区二区 | 欧美不卡在线视频| 久久嫩草精品久久久久| 中文无字幕一区二区三区| 亚洲乱码一区二区三区在线观看| 亚洲精品一二三四区| 青椒成人免费视频| 国产精品羞羞答答xxdd| 色婷婷av久久久久久久| 欧美一区二区精品久久911| 久久久久国产精品麻豆| 亚洲欧美日韩中文字幕一区二区三区| 日精品一区二区| 国产成人精品免费在线| 色哟哟一区二区在线观看| 日韩精品中文字幕一区二区三区| 欧美韩日一区二区三区| 无码av免费一区二区三区试看| 久久99日本精品| 色88888久久久久久影院按摩| 欧美一区二区三区公司| **欧美大码日韩| 青青国产91久久久久久| 91在线码无精品| 欧美精品一区二区在线播放| 亚洲愉拍自拍另类高清精品| 国产麻豆成人精品| 欧美色综合影院| 国产精品久久久久桃色tv| 日本aⅴ免费视频一区二区三区| 成人美女在线视频| 亚洲精品在线观看网站| 亚洲无线码一区二区三区| 成人精品国产福利| 欧美成va人片在线观看| 午夜精品久久久久久久99水蜜桃| 成人美女视频在线看| 精品剧情在线观看| 亚洲成人在线免费| 色中色一区二区| 国产精品视频观看| 久久99热这里只有精品| 欧美剧情电影在线观看完整版免费励志电影 | 中文字幕一区三区| 欧美日韩国产一级片| 欧美日韩不卡一区二区| 日韩精品影音先锋| 中文欧美字幕免费| 亚洲va韩国va欧美va| 免费视频一区二区| 成人精品亚洲人成在线| 国产视频一区不卡| 亚洲日本成人在线观看| 日本欧美肥老太交大片| 国产高清成人在线| 欧美日韩精品福利| 国产亚洲欧美中文| 性久久久久久久久久久久| 国产老女人精品毛片久久| 欧美在线影院一区二区| 久久人人爽人人爽| 亚洲综合丝袜美腿| 国产乱子轮精品视频| 欧美视频在线播放| 久久精品夜夜夜夜久久| 婷婷丁香久久五月婷婷| 成人av在线播放网站| 精品国产123| 五月婷婷激情综合| 成人午夜大片免费观看| 欧美一区二区视频在线观看2022| 国产精品久久精品日日| 国产在线一区二区综合免费视频| 欧美影视一区二区三区| 国产精品污www在线观看| 伦理电影国产精品| 欧美日韩你懂的| 亚洲精品久久7777| 成熟亚洲日本毛茸茸凸凹| 精品少妇一区二区三区| 亚洲图片欧美色图| 99精品偷自拍| 国产喷白浆一区二区三区| 蜜臀精品一区二区三区在线观看 | 久久成人免费电影| 欧美日韩一区小说| 亚洲精品水蜜桃| 91美女在线观看| 亚洲欧洲在线观看av| 懂色av中文字幕一区二区三区| 日韩一区二区在线看| 日本三级韩国三级欧美三级| 欧美日韩一区二区三区四区五区| 玉米视频成人免费看| 日本二三区不卡| 亚洲韩国精品一区| 欧美日韩日日摸| 天天亚洲美女在线视频| 欧美午夜不卡在线观看免费|