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

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

?? qexport3.pas

?? EMS Advanced.export. components full source
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  Result := AnsiCompareStr(FDateTimeFormat, DefaultDateTimeFormat) <> 0;
end;

function TQExportFormats.IsCurrencyFormatStored: boolean;
begin
  Result := AnsiCompareStr(FCurrencyFormat, DefaultCurrencyFormat) <> 0;
end;

function TQExportFormats.IsBooleanTrueStored: boolean;
begin
  Result := AnsiCompareStr(FBooleanTrue, S_BOOLEAN_TRUE) <> 0;
end;

function TQExportFormats.IsBooleanFalseStored: boolean;
begin
  Result := AnsiCompareStr(FBooleanFalse, S_BOOLEAN_FALSE) <> 0;
end;

{ TQExportColumn }

constructor TQExportColumn.Create(Collection: TCollection);
begin
  inherited;
  FTag := 0;
  if Collection is TQExportColumns then
    FColumns := Collection as TQExportColumns;
end;

function TQExportColumn.GetIsDefaultFormat: boolean;
begin
  Result := false;
  if FAllowFormat then
    case FColType of
      ectInteger, ectBigint: Result := FFormat = FColumns.FOwnerFormats.IntegerFormat;
      ectFloat: Result := FFormat = FColumns.FOwnerFormats.FloatFormat;
      ectDate: Result := FFormat = FColumns.FOwnerFormats.DateFormat;
      ectTime: Result := FFormat = FColumns.FOwnerFormats.TimeFormat;
      ectDateTime: Result := FFormat = FColumns.FOwnerFormats.DateTimeFormat;
      ectCurrency: Result := FFormat = FColumns.FOwnerFormats.CurrencyFormat;
    end;
end;

function TQExportColumn.GetDefaultFormat: string;
begin
  Result := EmptyStr;
  if FAllowFormat then
    case FColType of
      ectInteger, ectBigint: Result := FColumns.FOwnerFormats.IntegerFormat;
      ectFloat: Result := FColumns.FOwnerFormats.FloatFormat;
      ectDate: Result := FColumns.FOwnerFormats.DateFormat;
      ectTime: Result := FColumns.FOwnerFormats.TimeFormat;
      ectDateTime: Result := FColumns.FOwnerFormats.DateTimeFormat;
      ectCurrency: Result := FColumns.FOwnerFormats.CurrencyFormat;
    end;
end;

procedure TQExportColumn.SetDefaultFormat;
begin
  FFormat := GetDefaultFormat;
end;

{ TQExportColumns }

constructor TQExportColumns.Create(Holder: TPersistent; NormalFunc: TNormalFunc);
begin
  inherited Create(TQExportColumn);
  FHolder := Holder;
  FNormalFunc := NormalFunc;
end;

function TQExportColumns.Add: TQExportColumn;
begin
  Result := TQExportColumn(inherited Add);
end;

function TQExportColumns.GetColumn(Index: integer): TQExportColumn;
begin
  Result := TQExportColumn(inherited Items[Index]);
end;

procedure TQExportColumns.SetColumn(Index: integer; Value: TQExportColumn);
begin
  Items[Index].Assign(Value);
end;

procedure TQExportColumns.LoadOwnerProperties;
var
  PropInfo: PPropInfo;
begin
  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ExportedFields');
  if Assigned(PropInfo) then
    FOwnerExportedFields := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ExportSource');
  if Assigned(PropInfo) then
    FOwnerExportSource := TQExportSource(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'DataSet');
  if Assigned(PropInfo) then
    FOwnerDataSet := TDataSet(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'CustomSource');
  if Assigned(PropInfo) then
    FOwnerCustomSource := TqeCustomSource(GetOrdProp(FHolder, PropInfo));

  {$IFNDEF NOGUI}
  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ListView');
  if Assigned(PropInfo) then
    FOwnerListView := TListView(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'DBGrid');
  if Assigned(PropInfo) then
    FOwnerDBGrid := TDBGrid(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'StringGrid');
  if Assigned(PropInfo) then
    FOwnerStringGrid := TStringGrid(GetOrdProp(FHolder, PropInfo));
  {$ENDIF}

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'OnlyVisibleFields');
  if Assigned(PropInfo) then
    FOwnerOnlyVisibleFields := Boolean(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'Formats');
  if Assigned(PropInfo) then
    FOwnerFormats := TQExportFormats(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'AutoCalcStrType');
  if Assigned(PropInfo) then
    FOwnerAutoCalcStrType := Boolean(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'CaptionRow');
  if Assigned(PropInfo) then
    FOwnerCaptionRow := Integer(GetOrdProp(FHolder, PropInfo))
  else FOwnerCaptionRow := -1;

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'UserFormats');
  if Assigned(PropInfo) then
    FOwnerUserFormats := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ColumnsWidth');
  if Assigned(PropInfo) then
    FOwnerColumnsWidth := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'Captions');
  if Assigned(PropInfo) then
    FOwnerCaptions := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ColumnsAlign');
  if Assigned(PropInfo) then
    FOwnerColumnsAlign := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'SkipRecCount');
  if Assigned(PropInfo) then
    FOwnerSkipRecCount := Integer(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ExportRecCount');
  if Assigned(PropInfo) then
    FOwnerExportRecCount := Integer(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'ColumnsLength');
  if Assigned(PropInfo) then
    FOwnerColumnsLength := TStrings(GetOrdProp(FHolder, PropInfo));

  PropInfo := GetPropInfo(FHolder.ClassInfo, 'OnFetchedRecord');
  if Assigned(PropInfo) then
    FOwnerOnFetchedRecord := TExportedRecordEvent(GetMethodProp(FHolder, PropInfo));
end;

procedure TQExportColumns.Fill(BLOB: boolean);
var
  i, j: integer;
  FColCount: integer;
  FColumn: TQExportColumn;
begin
  LoadOwnerProperties;
  FColCount := 0;
  if FOwnerExportedFields.Count = 0 then begin
    case FOwnerExportSource of
      esDataSet:
        if Assigned(FOwnerDataSet) then
          FColCount := FOwnerDataSet.FieldCount;
      esCustom:
        if Assigned(FOwnerCustomSource) then
          FColCount := FOwnerCustomSource.ColCount;
      {$IFNDEF NOGUI}
      esListView:
        if Assigned(FOwnerListView) then
          FColCount := FOwnerListView.Columns.Count;
      esDBGrid:
        if Assigned(FOwnerDBGrid) then
          FColCount := FOwnerDBGrid.Columns.Count;
      esStringGrid:
        if Assigned(FOwnerStringGrid) then
          FColCount := FOwnerStringGrid.ColCount;
      {$ENDIF}
    end
  end
  else FColCount := FOwnerExportedFields.Count;
  for i := 0 to FColCount - 1 do  begin
    j := SetColumnNumber(i, BLOB);
    if  j = -1 then Continue;
    FColumn := Add;
    FColumn.Number := j;
  end;
  for i := 0 to Count - 1 do begin
    SetColumnName(i);
    SetColumnType(i);
    SetColumnCaption(i);
    SetColumnWidth(i);
    SetColumnFormat(i);
    SetColumnAlign(i);
    SetColumnSQLType(i);
    SetColumnIsString(i);
    SetColumnLength(i);
    SetColumnSize(i);
    SetColumnAllowFormat(i);
    SetColumnIsNumeric(i);
    SetColumnIsBlob(i);
    SetColumnIsMemo(i);
    SetColumnIsVisible(i);
  end;
end;

function TQExportColumns.SetColumnNumber(Index: integer; BLOB: boolean): integer;
var
  Field: TField;
  Column: TqeCustomColumn;
  {$IFNDEF NOGUI}j: integer;{$ENDIF}
begin
  Result := -1;
  if FOwnerExportedFields.Count = 0 then begin
    case FOwnerExportSource of
      esDataSet: begin
        Field := FOwnerDataSet.Fields[Index];
        if Assigned(Field) and
           (((BLOB) or (not Field.IsBlob)) and
            ((not FOwnerOnlyVisibleFields) or Field.Visible)) then
          Result := Index;
      end;
      {$IFNDEF NOGUI}
      esDBGrid: begin
        Field := FOwnerDBGrid.Columns[Index].Field;
        if Assigned(Field)  and
           (((BLOB) or (not Field.IsBlob)) and
            ((not FOwnerOnlyVisibleFields) or Field.Visible)) then
          Result := Index
      end;
      else Result := Index;
      {$ENDIF}
    end;
    Exit;
  end;

  case FOwnerExportSource of
    esDataSet: begin
      Field := FOwnerDataSet.FieldByName(FOwnerExportedFields[Index]);
      if Assigned(Field) and
         ((not FOwnerOnlyVisibleFields) or Field.Visible) then
        Result := Field.Index;
    end;
    esCustom: begin
      Column := FOwnerCustomSource.ColumnByName(FOwnerExportedFields[Index]);
      if Assigned(Column) then
        Result := Column.Index;
    end;
    {$IFNDEF NOGUI}
    esDBGrid:
      for j := 0 to FOwnerDBGrid.Columns.Count - 1 do begin
        Field := FOwnerDBGrid.Columns[j].Field;
        if Assigned(Field) and
           ((AnsiCompareText(Field.FieldName, FOwnerExportedFields[Index]) = 0) and
            (not FOwnerOnlyVisibleFields or Field.Visible)) then
          Result := j;
      end;
    esListView:
      for j := 0 to FOwnerListView.Columns.Count - 1 do begin
        if AnsiCompareText(FOwnerListView.Columns[j].Caption,
                           FOwnerExportedFields[Index]) = 0 then
          Result := j;
      end;
    esStringGrid: begin
      Result := StrToIntDef(FOwnerExportedFields[Index], -1);
      if not ((Result >= 0) and (Result <= FOwnerStringGrid.ColCount)) then
        Result := -1;
    end;
    {$ENDIF}
  end;
end;

procedure TQExportColumns.SetColumnName(Index: integer);
begin
  // Items[Index].Number must be defined
  with Items[Index] do
    case FOwnerExportSource of
      esDataSet: Name := FOwnerDataSet.Fields[Number].FieldName;
      esCustom: Name := FOwnerCustomSource.Columns[Number].ColumnName;
      {$IFNDEF NOGUI}
      esDBGrid: Name := FOwnerDBGrid.Columns[Number].Field.FieldName;
      esListView: Name := FOwnerListView.Columns[Number].Caption;
      esStringGrid: Name := IntToStr(Number);
      {$ENDIF}
    end;
end;

procedure TQExportColumns.SetColumnType(Index: integer);
begin
  // Items[Index].Number must be defined
  with Items[Index] do
    case FOwnerExportSource of
      esDataSet: ColType := DataType2QExportColType(FOwnerDataSet.Fields[Number]);
      esCustom: ColType := FOwnerCustomSource.Columns[Number].ColumnType;
      {$IFNDEF NOGUI}
      esDBGrid: ColType := DataType2QExportColType(FOwnerDBGrid.Columns[Number].Field);
      esListView:
        if not FOwnerAutoCalcStrType
          then ColType := ectString
          else if FOwnerListView.Items.Count > 0 then begin
            if Number = 0
              then ColType := CalcStringType(FOwnerListView.Items[0].Caption,
                FOwnerFormats.BooleanTrue, FOwnerFormats.BooleanFalse)
              else ColType := CalcStringType(FOwnerListView.Items[0].SubItems[Number - 1],
                FOwnerFormats.BooleanTrue, FOwnerFormats.BooleanFalse);
          end;
      esStringGrid:
        if not FOwnerAutoCalcStrType
          then ColType := ectString
          else ColType := CalcStringType(FOwnerStringGrid.Cells[Number,
            FOwnerStringGrid.Row], FOwnerFormats.BooleanTrue,
            FOwnerFormats.BooleanFalse);
      {$ENDIF}
    end;
end;

procedure TQExportColumns.SetColumnFormat(Index: integer);
var
  i: integer;
begin
  // Items[Index].ColType must be defined
  if Assigned(FOwnerFormats) then
    with FOwnerFormats, Items[Index] do
      case ColType of
        ectInteger, ectBigint: Format := IntegerFormat;
        ectFloat: Format := FloatFormat;
        ectDate: Format := DateFormat;
        ectTime: Format := TimeFormat;
        ectDateTime: Format := DateTimeFormat;
        ectCurrency: Format := CurrencyFormat;
      end;

  if Assigned(FOwnerUserFormats) then
    with FOwnerUserFormats, Items[Index] do begin
      i := IndexOfName(Name);
      if i > -1 then Format := Values[Names[i]];
    end;
end;

procedure TQExportColumns.SetColumnWidth(Index: integer);
var
  i: integer;
begin
  if Assigned(FOwnerColumnsWidth) then
    with FOwnerColumnsWidth, Items[Index] do begin
      i := IndexOfName(Name);
      if i > -1 then begin
        Width := StrToIntDef(Values[Names[i]], 0);
        Exit;
      end;
    end;
  // Items[Index].Number must be defined
  with Items[Index] do
    case FOwnerExportSource of
      esDataSet: Width := FOwnerDataSet.Fields[Number].DisplayWidth;
      esCustom: Width := FOwnerCustomSource.Columns[Number].Width;
      {$IFNDEF NOGUI}
      esDBGrid: Width := FOwnerDBGrid.Columns[Number].Width div
        FOwnerDBGrid.Canvas.TextWidth('X');
      esListView: begin
        Width := FOwnerListView.Columns[Number].Width div
          GetTextWidth(FOwnerListView, 'X');
      end;
      esStringGrid: Width := FOwnerStringGrid.ColWidths[Number] div
        FOwnerStringGrid.Canvas.TextWidth('X');
      {$ENDIF}
    end;
end;

procedure TQExportColumns.SetColumnCaption(Index: integer);
var
  i: integer;
begin
  if Assigned(FOwnerCaptions) then
    with FOwnerCaptions, Items[Index] do begin
      i := IndexOfName(Name);
      if i > -1 then begin
        Caption := Values[Names[i]];
        Exit;
      end;
    end;
  // Items[Index].Number must be defined
  with Items[Index] do
    case FOwnerExportSource of
      esDataSet: Caption := FOwnerDataSet.Fields[Number].DisplayLabel;
      esCustom: Caption := FOwnerCustomSource.Columns[Number].Caption;
      {$IFNDEF NOGUI}
      esDBGrid: Caption := FOwnerDBGrid.Columns[Number].Title.Caption;
      esListView: Caption := FOwnerListView.Columns[Number].Caption;
      esStringGrid:
        if FOwnerCaptionRow > -1
          then Caption := FOwnerStringGrid.Cells[Number, FOwnerCaptionRow]
          else Caption := 'ColNo_' + IntToStr(Number);
      {$ENDIF}
    end;
end;

procedure TQExportColumns.SetColumnAlign(Index: integer);
var
  i: integer;
  s: String;
begin
  // Items[Index].ColType must be defined
  if Assigned(FOwnerColumnsAlign) then
    with FOwnerColumnsAlign, Items[Index] do begin
      i := IndexOfName(Name);
      if i > -1 then begin
        s := AnsiUpperCase(Values[Names[i]]);
        if s <> '' then
          case s[1] of

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀国产一区二区三区在线播放| 欧美日韩一区三区四区| 日韩电影在线免费| 亚洲成人久久影院| 亚洲精品美腿丝袜| 一区二区三区四区在线播放| 最近日韩中文字幕| 一区二区中文字幕在线| 国产欧美日韩中文久久| 久久久综合精品| 久久综合久久综合亚洲| 国产亚洲美州欧州综合国| 久久综合色天天久久综合图片| 精品国产一区二区亚洲人成毛片| 4438x成人网最大色成网站| 欧美精品1区2区| 91精品国产综合久久福利软件| 91色.com| 欧美日韩激情一区二区| 欧美一区二区三区成人| 日韩一区二区不卡| 久久精品亚洲精品国产欧美kt∨| 久久精品一区二区三区av | 国产精品卡一卡二卡三| 国产精品毛片无遮挡高清| 久久久精品2019中文字幕之3| 久久久www免费人成精品| 国产精品美女视频| 亚洲一区二区欧美日韩| 奇米精品一区二区三区在线观看 | 久久国产免费看| 国产成人综合亚洲网站| fc2成人免费人成在线观看播放 | 1000部国产精品成人观看| 亚洲人妖av一区二区| 亚洲永久精品国产| 日本人妖一区二区| 毛片av一区二区| 丰满放荡岳乱妇91ww| 欧美日韩中文一区| 久久蜜桃一区二区| 亚洲视频一区二区在线观看| 天堂蜜桃一区二区三区| hitomi一区二区三区精品| 欧美日韩一区二区三区四区五区| 精品国产乱码久久久久久久久| 国产精品久久久久久久久久免费看 | 亚洲永久免费av| 国模一区二区三区白浆| 欧美日韩国产乱码电影| 国产亲近乱来精品视频| 日本高清视频一区二区| 风流少妇一区二区| 欧美丰满少妇xxxxx高潮对白| 91看片淫黄大片一级| 国产一区二区免费在线| 亚洲电影一区二区三区| 韩国成人在线视频| 欧美日韩一级黄| 中文字幕一区二区三区精华液 | 久久国产人妖系列| 在线观看不卡一区| 国产农村妇女毛片精品久久麻豆| 亚洲成精国产精品女| 色婷婷综合中文久久一本| 日本一区二区高清| 激情久久五月天| 精品国产一区二区三区不卡| 亚洲电影第三页| 欧美日韩一区二区三区在线看| 亚洲精品自拍动漫在线| 北条麻妃国产九九精品视频| 欧美激情在线一区二区| 免费成人深夜小野草| 欧美一级夜夜爽| 日精品一区二区三区| 欧美精品乱人伦久久久久久| 性做久久久久久久久| 欧美日韩精品一区二区三区四区| 亚洲欧美激情一区二区| 91视频国产观看| 一区二区日韩av| 欧美日韩综合在线| 亚洲第一激情av| 欧美日韩黄色一区二区| 亚洲午夜免费福利视频| 欧美日韩一区不卡| 污片在线观看一区二区| 91精品蜜臀在线一区尤物| 北岛玲一区二区三区四区| 中文字幕中文在线不卡住| www.色综合.com| 一区在线观看视频| 色综合天天综合狠狠| 亚洲一区二区视频在线| 欧美乱妇20p| 奇米影视一区二区三区小说| 欧美不卡一区二区三区四区| 国产在线不卡视频| 国产午夜精品福利| 欧洲国产伦久久久久久久| 亚洲成a人片综合在线| 欧美一区在线视频| 国产一区二区三区| 成人欧美一区二区三区视频网页| 91免费在线看| 欧美日韩一级视频| 精品一区二区三区日韩| 亚洲国产精品黑人久久久| 91小视频免费看| 奇米亚洲午夜久久精品| 粉嫩一区二区三区性色av| 精品国产免费一区二区三区四区| 国产激情91久久精品导航| 国产精品美女久久久久久久| 在线影院国内精品| 精品亚洲aⅴ乱码一区二区三区| 国产欧美日韩在线视频| 成人国产精品免费观看动漫| 亚洲国产色一区| 国产日韩一级二级三级| 精品婷婷伊人一区三区三| 国产一区在线不卡| 亚洲日本va午夜在线影院| 欧美高清www午色夜在线视频| 国产酒店精品激情| 一区二区三区在线观看动漫| 欧美va亚洲va香蕉在线| 91色婷婷久久久久合中文| 蜜桃传媒麻豆第一区在线观看| 国产视频一区二区在线| 欧美高清精品3d| av电影一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品久久三| 精品国产免费久久| 中文字幕在线不卡一区| 精品捆绑美女sm三区| 欧美另类videos死尸| 91丨国产丨九色丨pron| 国产99久久久精品| 国产在线播精品第三| 午夜精品一区二区三区三上悠亚| 亚洲欧美日韩国产综合| 国产欧美一区在线| 精品三级在线观看| 欧美精品久久99| 欧美日韩一区二区三区在线| 国产精品久久久99| 国产日韩成人精品| 欧美二区在线观看| 在线视频综合导航| 色屁屁一区二区| 97久久精品人人做人人爽 | 国产91精品久久久久久久网曝门| 天堂蜜桃91精品| 日韩精品欧美精品| 亚洲一区二区在线视频| 亚洲精品国产精华液| 亚洲丝袜制服诱惑| 亚洲男人的天堂一区二区| 亚洲天天做日日做天天谢日日欢| 亚洲欧洲精品一区二区三区不卡| 欧美激情一区二区| 国产精品电影一区二区| 国产精品免费视频网站| 国产三级一区二区三区| 日韩中文字幕不卡| 经典三级视频一区| 国产一区二区三区精品欧美日韩一区二区三区 | 国产欧美日韩在线| 中文字幕在线一区二区三区| 国产精品第五页| 一区二区三区日韩精品视频| 亚洲福利一二三区| 日本不卡不码高清免费观看| 欧美网站大全在线观看| 亚洲免费电影在线| 天天免费综合色| 国内一区二区视频| 91久久线看在观草草青青| 一区二区三区精品久久久| 五月婷婷激情综合网| 狠狠网亚洲精品| 91视视频在线观看入口直接观看www | 91精品国产黑色紧身裤美女| 日韩一区二区免费在线观看| 国产免费成人在线视频| 亚洲精品国产精华液| 激情综合网激情| 91一区在线观看| 欧美女孩性生活视频| 国产在线精品免费| 91丨九色丨国产丨porny| 欧美一区二区三区在线观看视频| 精品福利一区二区三区免费视频| 亚洲视频一二三区| 久久99久久久久| 欧美在线制服丝袜| 久久久久久毛片|