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

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

?? dbgridehimpexp.pas

?? Delphi控件源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
            PutText(DBGridEh.TitleFont,
                    THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[i]).Text);
            PutL('</TD>');
          end;
        end;
        PutL('</TR>');
      end;

      PutL('<TR>');
      for i := 0 to ColumnsList.Count-1 do
      begin
        if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]) <> nil then
        begin
          Put('  <TD WIDTH=' + IntToStr(ColumnsList[i].Width) + ' ALIGN="CENTER"');
          CalcSpan(ColumnsList,ListOfHeadTreeNodeList,0,i,ColSpan,RowSpan);
          if ColSpan > 1 then
            Put(' COLSPAN = "' + IntToStr(ColSpan) + '"');
          if RowSpan > 1 then
            Put(' ROWSPAN = "' + IntToStr(RowSpan) + '"');
          Put('>');
          PutText(ColumnsList[i].Title.Font,
                  THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]).Text);
          PutL('</TD>');
        end;
      end;
      PutL('</TR>');

    finally
      for i := 0 to ListOfHeadTreeNodeList.Count-1 do
        TList(ListOfHeadTreeNodeList.Items[i]).Free;
      ListOfHeadTreeNodeList.Free;
      FreeMem(FPTitleExpArr);
    end;
  end else
  begin
    PutL('<TR>');
    for i := 0 to ColumnsList.Count-1 do
    begin
      Put('  <TD WIDTH=' + IntToStr(ColumnsList[i].Width) +
                  ' ALIGN="' + GetAlignment(ColumnsList[i].Title.Alignment) + '"' + '>');
      PutText(ColumnsList[i].Title.Font,ColumnsList[i].Title.Caption);
      PutL('</TD>');
    end;
    PutL('</TR>');
  end;
end;

procedure TDBGridEhExportAsHTML.WriteRecord(ColumnsList: TColumnsEhList);
begin
  PutL('<TR>');
  inherited;
  PutL('</TR>');
end;

procedure TDBGridEhExportAsHTML.WriteDataCell(Column: TColumnEh;
  AFont: TFont; Background: TColor);
begin
 Put('  <TD WIDTH=' + IntToStr(Column.Width) +
                ' ALIGN="' + GetAlignment(Column.Alignment) + '"' +
                ' BGCOLOR=#' + GetColor(Background) +
                '>');
 PutText(AFont,Column.DisplayText);
 PutL('</TD>');
end;

function TDBGridEhExportAsHTML.GetAlignment(Alignment: TAlignment): String;
begin
  case Alignment of
    taLeftJustify: Result := 'LEFT';
    taCenter: Result := 'CENTER';
    taRightJustify: Result := 'RIGHT';
  end;
end;

{$IFNDEF EH_LIB_4} {Borland Delphi 3.0 or C++ Builder 3.0}
type
  TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
  
function StringReplace(const S, OldPattern, NewPattern: string;
  Flags: TReplaceFlags): string;
var
  SearchStr, Patt, NewStr: string;
  Offset: Integer;
begin
  if rfIgnoreCase in Flags then
  begin
    SearchStr := AnsiUpperCase(S);
    Patt := AnsiUpperCase(OldPattern);
  end else
  begin
    SearchStr := S;
    Patt := OldPattern;
  end;
  NewStr := S;
  Result := '';
  while SearchStr <> '' do
  begin
    Offset := AnsiPos(Patt, SearchStr);
    if Offset = 0 then
    begin
      Result := Result + NewStr;
      Break;
    end;
    Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
    NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);
    if not (rfReplaceAll in Flags) then
    begin
      Result := Result + NewStr;
      Break;
    end;
    SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
  end;
end;
{$ENDIF}

procedure TDBGridEhExportAsHTML.PutText(Font: TFont; Text: String);
var s:String;
begin
  s := '<FONT STYLE="font-family: ' + Font.Name;
  s := s + '; font-size: ' + IntToStr(Font.Size);
  s := s + 'pt; color: #' + GetColor(Font.Color) + '">';

  if (fsBold in Font.Style) then s := s + '<B>';
  if (fsItalic in Font.Style) then s := S + '<I>';
  if (fsUnderline in Font.Style) then s := s + '<U>';
  if (fsStrikeOut in Font.Style) then s := s + '<STRIKE>';

  Text := StringReplace(Text,'&','&amp',[rfReplaceAll]);
  Text := StringReplace(Text,'<','&lt',[rfReplaceAll]);
  Text := StringReplace(Text,'>','&gt',[rfReplaceAll]);
  Text := StringReplace(Text,'"','&quot',[rfReplaceAll]);

  if Text <> '' then
    s := s + Text
  else
    s := s + '&nbsp';

  if (fsBold in Font.Style) then s := s + '</B>';
  if (fsItalic in Font.Style) then s := S + '</I>';
  if (fsUnderline in Font.Style) then s := s + '</U>';
  if (fsStrikeOut in Font.Style) then s := s + '</STRIKE>';
  s := s + '</FONT>';

  Put(s);
end;

function TDBGridEhExportAsHTML.GetColor(Color: TColor): String;
var s:String;
begin
  if Color = clNone then
    s := '000000'
  else
    s := IntToHex(ColorToRGB(Color), 6);
  Result := Copy(s, 5, 2) + Copy(s, 3, 2) + Copy(s, 1, 2);
end;

procedure TDBGridEhExportAsHTML.WriteFooter(ColumnsList: TColumnsEhList;
  FooterNo: Integer);
begin
  PutL('<TR>');
  inherited;
  PutL('</TR>');
end;

procedure TDBGridEhExportAsHTML.WriteFooterCell(DataCol, Row: Integer;
  Column: TColumnEh; AFont: TFont; Background: TColor;
  Alignment: TAlignment; Text: String);
var Footer:TColumnFooterEh;
begin
 Footer := Column.UsedFooter(Row);
 Put('  <TD WIDTH=' + IntToStr(Column.Width) +
                ' ALIGN="' + GetAlignment(Footer.Alignment) + '"' +
                ' BGCOLOR=#' + GetColor(Background) +
                '>');
 PutText(AFont,Text);
 PutL('</TD>');
end;

{ TDBGridEhExportAsRTF }

procedure TDBGridEhExportAsRTF.ExportToStream(AStream: TStream; IsExportAll: Boolean);
var i:Integer;
begin
  FCacheStream := TMemoryStream.Create;
  ColorTblList := TStringList.Create;
  FontTblList := TStringList.Create;
  try
    GetColorIndex(clBlack);
    GetColorIndex(clWhite);
    GetColorIndex(clBtnFace);

    inherited ExportToStream(FCacheStream,IsExportAll);

    Stream := AStream;

    PutL('{\rtf0\ansi');

    Put('{\colortbl');
    for i := 0 to ColorTblList.Count-1 do
      Put('\red'+Trim(Copy(ColorTblList[i], 1, 3))+
          '\green'+Trim(Copy(ColorTblList[i], 4, 3))+
          '\blue'+Trim(Copy(ColorTblList[i], 7, 3))+';');
    PutL('}');

    Put('{\fonttbl');
    for i := 0 to FontTblList.Count-1 do
      Put('\f'+IntToStr(i)+'\fnil '+FontTblList[i]+';');
    PutL('}');
    FCacheStream.SaveToStream(Stream);
  finally
    FCacheStream.Free;
    ColorTblList.Free;
    FontTblList.Free;
  end;
end;

procedure TDBGridEhExportAsRTF.Put(Text: String);
begin
  Stream.Write(PChar(Text)^, Length(Text));
end;

procedure TDBGridEhExportAsRTF.PutL(Text: String);
begin
  Put(Text + #13#10);
end;

procedure TDBGridEhExportAsRTF.PutText(Font: TFont; Text: String; Background: TColor);
var s:String;
begin

  s := '\fs' + IntToStr(Font.Size*2);
  if (fsBold in Font.Style) then s := s + '\b';
  if (fsItalic in Font.Style) then s := s + '\i';
  if (fsStrikeOut in Font.Style) then s := s + '\strike';
  if (fsUnderline in Font.Style) then s := s + '\ul';
  s := s + '\f' + IntToStr(GetFontIndex(Font.Name));
  s := s + '\cf' + IntToStr(GetColorIndex(Font.Color));
  s := s + '\cb' + IntToStr(GetColorIndex(Background));
  Put(s + ' ');
  Put(Text);
end;

function TDBGridEhExportAsRTF.GetAlignment(Alignment: TAlignment): String;
begin
  case Alignment of
    taLeftJustify: Result := '\ql';
    taCenter: Result := '\qc';
    taRightJustify: Result := '\qr';
  end;
end;

function TDBGridEhExportAsRTF.GetFontIndex(FontName: String): Integer;
begin
  Result := FontTblList.IndexOf(FontName);
  if Result = -1 then
    Result := FontTblList.Add(FontName);
end;

function TDBGridEhExportAsRTF.GetColorIndex(Color: TColor): Integer;
var RGBColor: Longint;
    s:String;
begin
  RGBColor := ColorToRGB(Color);
  s := Format('%3d%3d%3d',[GetRValue(RGBColor),GetGValue(RGBColor),GetBValue(RGBColor)]);
  Result := ColorTblList.IndexOf(s);
  if Result = -1 then
    Result := ColorTblList.Add(s);
end;

procedure TDBGridEhExportAsRTF.WritePrefix;
begin
end;

procedure TDBGridEhExportAsRTF.WriteSuffix;
begin
  Put('}');
end;

procedure TDBGridEhExportAsRTF.WriteTitle(ColumnsList: TColumnsEhList);
var fLogPelsX: Integer;
    i,w,k: Integer;
    FPTitleExpArr: PTitleExpArr;
    ListOfHeadTreeNodeList:TList;
    ColSpan,RowSpan:Integer;
    Text:String;
    LeftBorder,TopBorder,BottomBorder,RightBorder:Boolean;
    ExclLeftBorders,ExclTopBorders,ExclBottomBorders,ExclRightBorders:TStringList;
    Space:String;

    procedure AddExclBorders(Col,Row,ColSpan,RowSpan:Integer);
    var i,k:Integer;
    begin
      for i := Col to Col + ColSpan - 1 do
        for k := Row downto Row - RowSpan + 1 do
        begin
          if i <> Col then
            ExclLeftBorders.Add(Format('%3d%3d',[i,k]));
          if i <> Col + ColSpan - 1 then
            ExclRightBorders.Add(Format('%3d%3d',[i,k]));
          if k <> Row then
            ExclTopBorders.Add(Format('%3d%3d',[i,k]));
          if k <> Row - RowSpan + 1 then
            ExclBottomBorders.Add(Format('%3d%3d',[i,k]));
        end;
    end;

    procedure CalcBorders(Col,Row:Integer);
    begin
      LeftBorder := True; TopBorder := True;
      BottomBorder := True; RightBorder := True;
      if ExclLeftBorders.IndexOf(Format('%3d%3d',[Col,Row])) <> -1 then
        LeftBorder := False;
      if ExclRightBorders.IndexOf(Format('%3d%3d',[Col,Row])) <> -1 then
        RightBorder := False;
      if ExclTopBorders.IndexOf(Format('%3d%3d',[Col,Row])) <> -1 then
        TopBorder := False;
      if ExclBottomBorders.IndexOf(Format('%3d%3d',[Col,Row])) <> -1 then
        BottomBorder := False;
    end;
begin
  fLogPelsX :=  GetDeviceCaps(DBGridEh.Canvas.Handle, LOGPIXELSX);

  if DBGridEh.UseMultiTitle then
  begin
    Space := IntToStr(Abs(Trunc(DBGridEh.VTitleMargin / 2 / fLogPelsX * 1440 - 20)));
    ExclLeftBorders := nil; ExclTopBorders := nil;
    ExclBottomBorders := nil; ExclRightBorders := nil;
    try
      CreateMultiTitleMatrix(DBGridEh,ColumnsList,FPTitleExpArr,ListOfHeadTreeNodeList);

      ExclLeftBorders := TStringList.Create;
      ExclTopBorders := TStringList.Create;
      ExclBottomBorders := TStringList.Create;
      ExclRightBorders := TStringList.Create;

      //MultiTitle
      for k := ListOfHeadTreeNodeList.Count-1 downto 1 do
      begin
        Put('\trowd');
        PutL('\trgaph40');

        w := 0;
        for i := 0 to ColumnsList.Count-1 do
        begin
          CalcSpan(ColumnsList,ListOfHeadTreeNodeList,k,i,ColSpan,RowSpan);
          AddExclBorders(i,k,ColSpan,RowSpan);
          CalcBorders(i,k);

          WriteCellBorder(LeftBorder,TopBorder,BottomBorder,RightBorder);
          Inc(w,Trunc(ColumnsList[i].Width / fLogPelsX * 1440)); // in twips
          Put('\clshdng10000\clcfpat'+IntToStr(GetColorIndex((DBGridEh.FixedColor))));
          PutL('\cellx'+IntToStr(w));
        end;

        PutL('{\trrh0');

        for i := 0 to ColumnsList.Count-1 do
        begin
          if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[i]) <> nil then
          begin
            Text := THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[i]).Text;
            Put('\pard\intbl{'+GetAlignment(taCenter)+'\sb'+Space+'\sa'+Space);
          end else
          begin
            Text := '';
            Put('\pard\intbl{'+GetAlignment(taCenter));
          end;

          PutText(DBGridEh.TitleFont, Text, DBGridEh.FixedColor);
          PutL('\cell}');
        end;
        PutL('\pard\intbl\row}');
      end;

      //Bottomest titles
      Put('\trowd');
      PutL('\trgaph40');

      w := 0;
      for i := 0 to ColumnsList.Count-1 do
      begin
        CalcSpan(ColumnsList,ListOfHeadTreeNodeList,0,i,ColSpan,RowSpan);
        AddExclBorders(i,0,ColSpan,RowSpan);
        CalcBorders(i,0);

        WriteCellBorder(LeftBorder,TopBorder,BottomBorder,RightBorder);

        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 THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]) <> nil then
          begin
            Text := THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[0]).Items[i]).Text;
            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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久99999| 久久免费看少妇高潮| 国产一区日韩二区欧美三区| 中文字幕在线观看不卡| 欧美日韩国产在线观看| 国产精品一区久久久久| 亚洲bt欧美bt精品777| 欧美激情在线一区二区三区| 欧美剧在线免费观看网站 | 洋洋成人永久网站入口| 久久久久久麻豆| 欧美挠脚心视频网站| 99re6这里只有精品视频在线观看| 男女男精品视频| 一区二区国产盗摄色噜噜| 久久久久国产一区二区三区四区 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 午夜视频在线观看一区二区| 国产精品二区一区二区aⅴ污介绍| 欧美一区二区三区不卡| 欧美自拍丝袜亚洲| 成人免费看的视频| 国产一区二区免费看| 美洲天堂一区二卡三卡四卡视频| 一区二区三区欧美久久| 中文字幕亚洲不卡| 欧美激情在线一区二区三区| 欧美变态tickle挠乳网站| 欧美日韩成人在线一区| 欧美系列在线观看| 色婷婷综合视频在线观看| 成人av在线资源网站| 国产91丝袜在线播放九色| 国产精品一区2区| 国产乱码精品一区二区三区av| 免费观看91视频大全| 亚洲bdsm女犯bdsm网站| 亚洲国产精品天堂| 亚洲午夜激情av| 亚洲国产精品自拍| 亚洲综合图片区| 亚洲激情校园春色| 亚洲一区二区三区四区的| 亚洲精品亚洲人成人网在线播放| 亚洲美女视频一区| 一区二区三区在线播放| 一区二区三区精品| 日韩av不卡一区二区| 免费黄网站欧美| 国产呦萝稀缺另类资源| 国产iv一区二区三区| av日韩在线网站| 91丨porny丨中文| 欧美日韩亚洲综合一区二区三区| 欧美精品久久一区二区三区| 欧美一级片免费看| 亚洲精品一区二区三区四区高清| 国产另类ts人妖一区二区| 亚洲免费av网站| 亚洲主播在线观看| 日韩电影网1区2区| 久久99国产精品久久| 国产精品一区在线观看乱码| 成人av资源站| 欧美三级日韩在线| 久久综合九色综合欧美就去吻| 欧美激情一区二区三区蜜桃视频| 亚洲色图另类专区| 五月天激情综合网| 国产精品1区2区| 91在线porny国产在线看| 欧美日韩国产欧美日美国产精品| 日韩视频在线你懂得| 国产日产精品一区| 亚洲超丰满肉感bbw| 国产一区二区三区蝌蚪| 色婷婷一区二区三区四区| 91精品国产91久久久久久最新毛片| 欧美变态凌虐bdsm| 亚洲女同一区二区| 久久精品国产一区二区三区免费看| 国产不卡视频在线观看| 欧美日韩大陆一区二区| 欧美国产日韩一二三区| 亚洲成人7777| 丁香婷婷综合五月| 欧美一区二区免费视频| 国产精品麻豆网站| 久久66热偷产精品| 在线视频中文字幕一区二区| 久久久五月婷婷| 亚洲午夜日本在线观看| 成人性生交大片免费看视频在线 | 激情文学综合丁香| 在线观看av一区二区| www国产成人| 视频精品一区二区| 色综合色狠狠综合色| 久久欧美中文字幕| 日韩综合小视频| 91在线一区二区三区| 久久婷婷综合激情| 日本大胆欧美人术艺术动态 | www.一区二区| 日韩欧美国产电影| 亚洲成人精品影院| av在线不卡观看免费观看| 久久综合久久99| 日本欧美一区二区| 欧美日韩在线三级| 亚洲视频图片小说| 国产99精品国产| 久久亚洲精华国产精华液| 免费一级片91| 欧美日韩国产色站一区二区三区| 亚洲天堂福利av| 粉嫩蜜臀av国产精品网站| xfplay精品久久| 蜜桃传媒麻豆第一区在线观看| 欧美色倩网站大全免费| 亚洲免费观看高清| 91年精品国产| 国产精品久久久久一区| 成人性生交大片免费| 久久精品人人做人人综合| 极品少妇xxxx精品少妇偷拍 | 处破女av一区二区| 日韩一区二区免费在线电影| 亚洲精品久久久久久国产精华液| www.欧美色图| 国产精品久久久久一区 | 在线免费视频一区二区| 亚洲日本欧美天堂| 色综合久久综合网97色综合| 一区二区中文视频| 91一区二区在线观看| 日韩伦理免费电影| 日本道在线观看一区二区| 一区在线观看免费| 色婷婷久久久综合中文字幕| 樱花影视一区二区| 欧美色涩在线第一页| 三级久久三级久久| 日韩欧美成人激情| 韩国中文字幕2020精品| 久久久精品日韩欧美| 成人一级片在线观看| 一区精品在线播放| 在线免费亚洲电影| 日韩二区三区四区| 精品粉嫩超白一线天av| 国产成人免费视频精品含羞草妖精| 久久久久久久久伊人| 波多野洁衣一区| 亚洲欧美另类久久久精品2019| 在线观看91视频| 性做久久久久久久久| 欧美成人精品高清在线播放| 国产精品一区二区久激情瑜伽| 中国av一区二区三区| 91影视在线播放| 日韩av电影一区| 国产欧美日韩不卡免费| 在线一区二区三区做爰视频网站| 一区二区三区日韩| 欧美日韩免费电影| 美女诱惑一区二区| 久久亚洲精品小早川怜子| 成人动漫在线一区| 亚洲国产精品一区二区www在线| 日韩一卡二卡三卡| 懂色av一区二区夜夜嗨| 亚洲精选免费视频| 欧美一级一区二区| 国产福利91精品一区二区三区| 亚洲欧洲一区二区三区| 日韩亚洲欧美一区二区三区| 国产91精品久久久久久久网曝门| 亚洲欧美日韩电影| 精品久久国产97色综合| 色综合久久天天| 麻豆精品一二三| 亚洲精品亚洲人成人网| 亚洲精品一线二线三线| 色婷婷av久久久久久久| 久久91精品国产91久久小草| 亚洲日穴在线视频| 亚洲精品在线观| 欧美三级韩国三级日本三斤| 国产不卡免费视频| 午夜激情一区二区三区| 中文字幕在线观看不卡视频| 日韩美女一区二区三区四区| 91国模大尺度私拍在线视频| 国内精品伊人久久久久av影院| 亚洲国产精品久久久男人的天堂 | 久久久精品免费网站| 欧美日韩免费一区二区三区视频| 成熟亚洲日本毛茸茸凸凹| 久久国产人妖系列|