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

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

?? rxbdereg.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
字號:
{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995, 1996 AO ROSNO             }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

{ Note:
  - in Delphi 5.0 you must add DCLRX5 to the requires page of the
    package you install this components into.
  - in Delphi 4.0 you must add DCLRX4 to the requires page of the
    package you install this components into.
  - in Delphi 3.0 you must add DCLRXCTL to the requires page of the
    package you install this components into.
  - in C++Builder 4.0 you must add DCLRX4 to the requires page of the
    package you install this components into.
  - in C++Builder 3.0 you must add DCLRXCTL to the requires page of the
    package you install this components into. }

unit RxBDEReg;

{$I RX.INC}
{$D-,L-,S-}

interface

uses Classes, RTLConsts, DesignIntf, DesignEditors, VCLEditors, SysUtils, DB, DBTables;

{ Register data aware custom controls }

procedure Register;

implementation

{$IFDEF WIN32}
 {$R *.D32}
{$ELSE}
 {$R *.D16}
{$ENDIF}

uses TypInfo, DBLists, RXLConst, DBQBE, DBFilter, DBIndex, DBPrgrss, 
  RxLogin, DBSecur, RXQuery, VCLUtils, DbExcpt, RxDsgn,
  {$IFDEF DCS} SelDSFrm, {$ENDIF} {$IFDEF RX_MIDAS} RxRemLog, {$ENDIF}
  {$IFDEF RX_D3} QBndDlg, {$ELSE} 
  {$IFNDEF WIN32} QBndDlg, {$ELSE} QBindDlg, {$ENDIF} {$ENDIF}
  Consts, LibHelp, MemTable;

{$IFDEF WIN32}

{ TSessionNameProperty }

type
  TSessionNameProperty = class(TRxDBStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

procedure TSessionNameProperty.GetValueList(List: TStrings);
begin
  Sessions.GetSessionNames(List);
end;

{$ENDIF WIN32}

{ TDatabaseNameProperty }

type
  TDatabaseNameProperty = class(TRxDBStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

procedure TDatabaseNameProperty.GetValueList(List: TStrings);
{$IFDEF WIN32}
var
  S: TSession;
{$ENDIF}
begin
{$IFDEF WIN32}
  if (GetComponent(0) is TDBDataSet) then
    (GetComponent(0) as TDBDataSet).DBSession.GetDatabaseNames(List)
  else if (GetComponent(0) is TSQLScript) then begin
    S := Sessions.FindSession((GetComponent(0) as TSQLScript).SessionName);
    if S = nil then S := Session;
    S.GetDatabaseNames(List);
  end;
{$ELSE}
  Session.GetDatabaseNames(List);
{$ENDIF}
end;

{ TTableNameProperty }
{ For TFieldList, TIndexList components }

type
  TTableNameProperty = class(TRxDBStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

procedure TTableNameProperty.GetValueList(List: TStrings);
begin
{$IFDEF WIN32}
  (GetComponent(0) as TCustomTableItems).DBSession.GetTableNames((GetComponent(0)
    as TCustomTableItems).DatabaseName, '', True, False, List);
{$ELSE}
  Session.GetTableNames((GetComponent(0) as TCustomTableItems).DatabaseName,
    '', True, False, List);
{$ENDIF WIN32}
end;

{$IFNDEF RX_D4}

{$IFNDEF VER90}
 {$IFNDEF VER93}
function EditQueryParams(DataSet: TDataSet; List: TParams): Boolean;
begin
  Result := QBndDlg.EditQueryParams(DataSet, List, hcDQuery);
end;
 {$ENDIF}
{$ENDIF}

{ TRxParamsProperty }

type
  TRxParamsProperty = class(TPropertyEditor)
  public
    procedure Edit; override;
    function GetValue: string; override;
    function GetAttributes: TPropertyAttributes; override;
  end;

function TRxParamsProperty.GetValue: string;
var
  Params: TParams;
begin
  Params := TParams(Pointer(GetOrdValue));
  if Params.Count > 0 then
{$IFDEF WIN32}
    Result := Format('(%s)', [GetPropInfo.Name])
{$ELSE}
    Result := Format('(%s)', [GetPropInfo^.Name])
{$ENDIF}
  else
    Result := ResStr(srNone);
end;

function TRxParamsProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paMultiSelect, paDialog];
end;

procedure TRxParamsProperty.Edit;
var
  List, Params: TParams;
  Query: TDataSet;
  QueryCreated: Boolean;
  I: Integer;
begin
  QueryCreated := False;
  if GetComponent(0) is TDataSet then
    Query := GetComponent(0) as TDataSet
  else begin
    Query := TQuery.Create(GetComponent(0) as TComponent);
    QueryCreated := True;
  end;
  try
    Params := TParams(GetOrdProp(GetComponent(0), GetPropInfo));
    if QueryCreated then TQuery(Query).Params := Params;
    List := TParams.Create;
    try
      List.Assign(Params);
      if EditQueryParams(Query, List) {$IFDEF WIN32} and not
        List.IsEqual(Params) {$ENDIF} then
      begin
{$IFDEF WIN32}
        Modified;
{$ELSE}
        if Designer <> nil then Designer.Modified;
{$ENDIF}
        Query.Close;
        for I := 0 to PropCount - 1 do begin
          Params := TParams(GetOrdProp(GetComponent(I),
            TypInfo.GetPropInfo(GetComponent(I).ClassInfo,
{$IFDEF WIN32}
            GetPropInfo.Name)));
{$ELSE}
            GetPropInfo^.Name)));
{$ENDIF}
          Params.AssignValues(List);
        end;
      end;
    finally
      List.Free;
    end;
  finally
    if QueryCreated then Query.Free;
  end;
end;

{$ENDIF RX_D4}

{ TUserTableNameProperty }
{ For TDBSecurity component }

type
  TUserTableNameProperty = class(TRxDBStringProperty)
    procedure GetValueList(List: TStrings); override;
  end;

procedure TUserTableNameProperty.GetValueList(List: TStrings);
var
  Security: TDBSecurity;
begin
  Security := GetComponent(0) as TDBSecurity;
  if Security.Database <> nil then begin
{$IFDEF WIN32}
    Security.Database.Session.GetTableNames(Security.Database.DatabaseName,
      '*.*', True, False, List);
{$ELSE}
    Session.GetTableNames(Security.Database.DatabaseName, '*.*',
      True, False, List);
{$ENDIF}
  end;
end;

{ TLoginNameFieldProperty }
{ For TDBSecurity component }

type
  TLoginNameFieldProperty = class(TRxDBStringProperty)
    procedure GetValueList(List: TStrings); override;
  end;

procedure TLoginNameFieldProperty.GetValueList(List: TStrings);
var
  Security: TDBSecurity;
  Table: TTable;
begin
  Security := GetComponent(0) as TDBSecurity;
  if (Security.Database <> nil) and (Security.UsersTableName <> '') then begin
    Table := TTable.Create(Security);
    try
      Table.DatabaseName := Security.Database.DatabaseName;
      Table.TableName := Security.UsersTableName;
      Table.GetFieldNames(List);
    finally
      Table.Free;
    end;
  end;
end;

{$IFDEF DCS}

{ TMemoryTableEditor }

type
  TMemoryTableEditor = class(TMemDataSetEditor)
  protected
    function CopyStructure(Source, Dest: TDataSet): Boolean; override;
  end;

function TMemoryTableEditor.CopyStructure(Source, Dest: TDataSet): Boolean;
begin
  Result := Dest is TMemoryTable;
  if Result then
    TMemoryTable(Dest).CopyStructure(Source);
end;

{$ENDIF DCS}

{ Designer registration }

procedure Register;
begin
{$IFDEF RX_D4}
  { Database Components are excluded from the STD SKU }
  if GDAL = LongWord(-16) then Exit;
{$ENDIF}

{ Data aware components and controls }
  RegisterComponents(LoadStr(srRXDBAware), [TRxQuery, TSQLScript,
    TMemoryTable, TQBEQuery, TRxDBFilter, TDBIndexCombo, TDBProgress, 
    TDBSecurity]);
{$IFDEF RX_MIDAS}
{ MIDAS components }
  RegisterComponents(LoadStr(srRXDBAware), [TRxRemoteLogin]);
  RegisterNonActiveX([TRxRemoteLogin], axrComponentOnly);
{$ENDIF}
{ Database lists }
  RegisterComponents(LoadStr(srRXDBAware), [TBDEItems, TDatabaseItems,
    TTableItems]);
{$IFNDEF CBUILDER}
 {$IFDEF USE_OLD_DBLISTS}
  RegisterComponents(LoadStr(srRXDBAware), [TDatabaseList, TLangDrivList,
    TTableList, TStoredProcList, TFieldList, TIndexList]);
 {$ENDIF USE_OLD_DBLISTS}
{$ENDIF CBUILDER}

{$IFDEF RX_D3}
  RegisterNonActiveX([TRxQuery, TSQLScript, TMemoryTable, TQBEQuery,
    TRxDBFilter, TDBIndexCombo, TDBProgress, TDBSecurity, TBDEItems,
    TDatabaseItems, TTableItems], axrComponentOnly);
{$ENDIF RX_D3}

{ Property and component editors for data aware controls }

  RegisterPropertyEditor(TypeInfo(TFileName), TCustomTableItems, 'TableName',
    TTableNameProperty);
  RegisterPropertyEditor(TypeInfo(TFileName), TDBSecurity,
    'UsersTableName', TUserTableNameProperty);
  RegisterPropertyEditor(TypeInfo(string), TDBSecurity,
    'LoginNameField', TLoginNameFieldProperty);

{$IFDEF DCS}
  RegisterComponentEditor(TMemoryTable, TMemoryTableEditor);
{$ENDIF}

{$IFNDEF RX_D4}
  RegisterPropertyEditor(TypeInfo(TParams), TQBEQuery, 'Params',
    TRxParamsProperty);
  RegisterPropertyEditor(TypeInfo(TParams), TRxQuery, 'Macros',
    TRxParamsProperty);
  RegisterPropertyEditor(TypeInfo(TParams), TSQLScript, 'Params',
    TRxParamsProperty);
{$ENDIF}

  RegisterPropertyEditor(TypeInfo(string), TSQLScript, 'DatabaseName',
    TDatabaseNameProperty);
{$IFDEF WIN32}
  RegisterPropertyEditor(TypeInfo(string), TCustomBDEItems, 'SessionName',
    TSessionNameProperty);
  RegisterPropertyEditor(TypeInfo(string), TSQLScript, 'SessionName',
    TSessionNameProperty);
  RegisterPropertyEditor(TypeInfo(string), TDBProgress, 'SessionName',
    TSessionNameProperty);
{$ELSE}
  DbErrorIntercept;
{$ENDIF WIN32}

end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美在线| 正在播放亚洲一区| 国产福利一区在线观看| 麻豆91在线看| 开心九九激情九九欧美日韩精美视频电影| 一区二区三区精品在线观看| 一区二区三区日本| 一区二区三区四区精品在线视频| 亚洲欧美日韩一区二区| 亚洲美女屁股眼交| 亚洲福利一区二区| 蜜桃视频一区二区| 国产ts人妖一区二区| 国产成人精品影院| 91网站最新网址| 欧美午夜电影网| 欧美电影影音先锋| 精品欧美一区二区在线观看| 欧美第一区第二区| 国产欧美一区二区精品仙草咪| 国产欧美日韩视频一区二区| 亚洲视频一区二区免费在线观看| 一区二区三区电影在线播| 日韩电影在线一区| 国产成人福利片| 欧美亚洲尤物久久| 精品国产一区二区三区忘忧草| 国产亚洲精品精华液| 亚洲人成在线观看一区二区| 亚洲国产精品久久不卡毛片| 亚洲高清视频在线| 国产高清久久久久| 色综合久久综合网| 亚洲精品一区二区三区99| 亚洲特黄一级片| 亚洲午夜久久久| 国产原创一区二区| 国产精一区二区三区| 国产毛片一区二区| 欧美日韩小视频| 国产精品人妖ts系列视频| 亚洲国产精品久久久久婷婷884| 精品影院一区二区久久久| 成人免费看视频| 欧美一区二区三区啪啪| 亚洲欧洲成人自拍| 九九热在线视频观看这里只有精品| 99精品国产91久久久久久| 欧美一卡二卡在线观看| 亚洲丝袜美腿综合| 国产剧情在线观看一区二区| 欧美精品日韩一本| 综合网在线视频| 成人爽a毛片一区二区免费| 日韩手机在线导航| 午夜精品一区在线观看| 91在线一区二区三区| 精品国产乱码久久久久久闺蜜| 亚洲欧美激情一区二区| av在线综合网| 日本一区免费视频| 国内外成人在线视频| 在线播放/欧美激情| 一区二区三区国产| 日本精品一区二区三区高清| 中文字幕成人在线观看| 国产精品18久久久久久久网站| 欧美一级爆毛片| 免费美女久久99| 欧美一级日韩一级| 午夜精品久久久久久久久久 | 欧美日韩一区三区| 一区二区三区欧美| 欧美亚洲国产一区二区三区| 洋洋av久久久久久久一区| 91偷拍与自偷拍精品| 亚洲日本在线天堂| 色婷婷av一区二区三区软件 | 精品国产一区二区三区四区四| 日韩精品一二三四| 91精品免费观看| 日韩和欧美一区二区三区| 欧美另类一区二区三区| 免费看日韩a级影片| 精品国产一区二区三区忘忧草| 国产乱妇无码大片在线观看| 国产亚洲精久久久久久| 成人亚洲精品久久久久软件| 中文字幕在线不卡视频| 99久久777色| 亚洲一二三区视频在线观看| 91精品国产综合久久国产大片| 另类中文字幕网| 久久精品人人爽人人爽| 99久久精品免费看| 亚洲综合久久av| 精品国产免费一区二区三区香蕉| 国产一区二区成人久久免费影院| 国产精品久久久久久久久搜平片 | 国产清纯白嫩初高生在线观看91 | 色婷婷综合激情| 三级不卡在线观看| 国产亚洲污的网站| 色老汉一区二区三区| 免费在线看成人av| 中文字幕欧美激情| 欧美综合视频在线观看| 免费亚洲电影在线| 国产精品色眯眯| 欧美区一区二区三区| 国产成人av自拍| 一区二区三区在线视频播放| 日韩欧美国产一区二区三区| 成人av资源站| 免费观看91视频大全| 1024国产精品| 欧美成人a视频| 91免费视频观看| 美女视频黄久久| 亚洲丝袜美腿综合| 日韩欧美一级精品久久| 91在线观看高清| 蓝色福利精品导航| 亚洲午夜在线电影| 国产精品毛片高清在线完整版 | 成人午夜短视频| 日韩成人精品在线| 亚洲综合在线视频| 国产欧美1区2区3区| 91精品国产乱| 欧洲另类一二三四区| 成人免费av网站| 精品一区二区三区免费| 天堂成人免费av电影一区| 亚洲色图20p| 国产日韩精品一区| 日韩一区二区在线免费观看| 欧美日韩免费高清一区色橹橹| av电影在线观看完整版一区二区| 韩日av一区二区| 日韩成人av影视| 日本麻豆一区二区三区视频| 亚洲一区av在线| 亚洲精品国产无天堂网2021 | 91福利精品第一导航| 99久久精品免费| 9久草视频在线视频精品| 国产成人综合在线| 国产专区综合网| 精品写真视频在线观看| 另类小说一区二区三区| 久久精品国产亚洲aⅴ | 在线观看av一区二区| 一本大道久久a久久综合婷婷| 99vv1com这只有精品| 91麻豆免费在线观看| 99免费精品视频| 色综合久久天天| 91福利在线免费观看| 欧美午夜精品电影| 欧美日韩一区精品| 日韩天堂在线观看| 久久久久久亚洲综合| 国产精品久久久久久久久快鸭| 国产精品理论片| 亚洲免费观看视频| 一区二区三区在线观看动漫 | 国产大片一区二区| 成人午夜私人影院| 成人免费看视频| 欧美性videosxxxxx| 9191精品国产综合久久久久久| 日韩午夜电影av| 久久久亚洲精品一区二区三区| 国产精品久久久久影院色老大 | 国产日韩综合av| 亚洲伦在线观看| 日韩高清欧美激情| 国产成人午夜视频| 99久精品国产| 欧美日韩精品二区第二页| 6080日韩午夜伦伦午夜伦| 久久久一区二区三区| 亚洲最新视频在线观看| 久久成人久久爱| 不卡区在线中文字幕| 欧美精品日韩一区| 中文字幕电影一区| 日韩精品乱码免费| 国产成+人+日韩+欧美+亚洲| 在线观看av不卡| 久久免费偷拍视频| 亚洲国产视频一区二区| 国精产品一区一区三区mba桃花| 成人午夜又粗又硬又大| 欧美一区二区二区| 亚洲精品国产无套在线观| 精品亚洲成a人在线观看| 色哟哟亚洲精品| 欧美国产97人人爽人人喊|