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

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

?? memtabledesigneh.pas

?? EHlib CN For Delphi2009
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}
{                                                       }
{                     EhLib v4.0                        }
{                                                       }
{     TMemTableFieldsEditorEh component (Build 14)      }
{                                                       }
{        Copyright (c) 2003-05 by EhLib Team and        }
{                Dmitry V. Bolshakov                    }
{                                                       }
{*******************************************************}

unit MemTableDesignEh;

{$I EhLib.Inc}

interface

uses
  Windows, Messages, SysUtils,
{$IFDEF CIL} Borland.Vcl.Design.DesignIntf,
             Borland.Vcl.Design.DesignEditors,
             Borland.Vcl.Design.ColnEdit,
             Borland.Vcl.Design.DSDesign,
             Borland.Vcl.Design.DsnDBCst,
{$ELSE}
  DSDesign, DsnDBCst,
  {$IFDEF EH_LIB_6} Variants,
  DesignEditors, DesignIntf, DesignWindows,
    {$ELSE} //EH_LIB_6
      DsgnIntf,  DsgnWnds,
    {$ENDIF}
{$ENDIF}
  Classes, Graphics, Controls, Forms,
  Dialogs, Menus, DB, StdCtrls, DBCtrls, ExtCtrls, GridsEh, MTCreateDataDriver,
  DBGridEh, ComCtrls, Buttons, ActnList, MemTableEh, DBGridEhImpExp;

type

{$IFNDEF EH_LIB_6}
  IDesigner = IFormDesigner;
{$ENDIF}

  TMemTableFieldsEditorEh = class(TFieldsEditor)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGridEh1: TDBGridEh;
    TabSheet3: TTabSheet;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    ActionList1: TActionList;
    actFetchParams: TAction;
    actAssignLocalData: TAction;
    actLoadFromMyBaseTable: TAction;
    actCreateDataSet: TAction;
    actSaveToMyBaseXmlTable: TAction;
    actSaveToMyBaseXmlUTF8Table: TAction;
    actSaveToBinaryMyBaseTable: TAction;
    actClearData: TAction;
    GridMenu: TPopupMenu;
    GridCut: TMenuItem;
    GridCopy: TMenuItem;
    GridPaste: TMenuItem;
    GridDelete: TMenuItem;
    GridSelectAll: TMenuItem;
    SpeedButton9: TSpeedButton;
    actCreateDataDriver: TAction;
    procedure actFetchParamsExecute(Sender: TObject);
    procedure actAssignLocalDataExecute(Sender: TObject);
    procedure actLoadFromMyBaseTableExecute(Sender: TObject);
    procedure actCreateDataSetExecute(Sender: TObject);
    procedure actSaveToMyBaseXmlTableExecute(Sender: TObject);
    procedure actSaveToMyBaseXmlUTF8TableExecute(Sender: TObject);
    procedure actSaveToBinaryMyBaseTableExecute(Sender: TObject);
    procedure actClearDataExecute(Sender: TObject);
    procedure actCreateDataSetUpdate(Sender: TObject);
    procedure SelectTable(Sender: TObject);
    procedure GridCutClick(Sender: TObject);
    procedure GridCopyClick(Sender: TObject);
    procedure GridPasteClick(Sender: TObject);
    procedure GridDeleteClick(Sender: TObject);
    procedure GridSelectAllClick(Sender: TObject);
    procedure DBGridEh1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    procedure actCreateDataDriverExecute(Sender: TObject);
  private
    { Private declarations }
  public
    constructor Create(AOwner: TComponent); override;
    { Public declarations }
  end;

  TMemTableEditorEh = class(TComponentEditor{$IFDEF LINUX}, IDesignerThreadAffinity{$ENDIF})
  protected
    function GetDSDesignerClass: TDSDesignerClass; virtual;
  public
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
{$IFDEF LINUX}
    procedure Edit; override;
    {IDesignerThreadAffinity}
    function GetThreadAffinity: TThreadAffinity;
{$ENDIF}
  end;

{ TSQLDataDriverEhEditor }

  TSQLDataDriverEhEditor = class(TComponentEditor)
  public
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
  end;

procedure ShowFieldsEditorEh(Designer: IDesigner; ADataset: TDataset;
  DesignerClass: TDSDesignerClass);
function CreateFieldsEditorEh(Designer: IDesigner; ADataset: TDataset;
  DesignerClass: TDSDesignerClass; var Shared: Boolean): TFieldsEditor;

//function CreateUniqueName(Dataset: TDataset; const FieldName: string;
//  FieldClass: TFieldClass; Component: TComponent): string;

var
  MemTableFieldsEditor: TMemTableFieldsEditorEh;

procedure Register;

implementation

uses Clipbrd, MemTableEditEh, DataDriverEh, TypInfo,
{$IFDEF CIL}
  Borland.Vcl.Design.FldLinks,
{$ELSE}
  FldLinks,
{$ENDIF}
//  DBTables, bdeconst,
//  BDEDataDriverEh, BDEDataDriverDesignEh,
  SQLDriverEditEh;

{$R *.dfm}

type
  TSQLCommandProperty  = class(TClassProperty)
  public
{$IFDEF EH_LIB_6}
    FCommandTextProp: IProperty;
{$ELSE}
    FCommandTextProp: TPropertyEditor;
{$ENDIF}
    function GetAttributes: TPropertyAttributes; override;
    procedure Edit; override;
{$IFDEF EH_LIB_6}
    procedure SetCommandTextProp(const Prop: IProperty);
{$ELSE}
    procedure SetCommandTextProp(Prop: TPropertyEditor);
{$ENDIF}
  end;

{ TSQLCommandProperty }

procedure TSQLCommandProperty.Edit;
var
  Command: TSQLCommandEh;
{$IFDEF EH_LIB_6}
  FSQLCommandSel: IDesignerSelections;
{$ELSE}
  FSQLCommandSel: TDesignerSelectionList;
{$ENDIF}
begin
  FCommandTextProp := nil;
{$IFDEF CIL}
  Command := TSQLCommandEh(GetObjValue);
{$ELSE}
  Command := TSQLCommandEh(GetOrdValue);
{$ENDIF}
{$IFDEF EH_LIB_6}
  FSQLCommandSel := CreateSelectionList;
  FSQLCommandSel.Add(Command);
  GetComponentProperties(FSQLCommandSel, [tkClass], Designer, SetCommandTextProp, nil);
  if FCommandTextProp <> nil then
    FCommandTextProp.Edit;
{$ELSE}
  FSQLCommandSel := TDesignerSelectionList.Create;
  FSQLCommandSel.Add(Command);
  GetComponentProperties(FSQLCommandSel, [tkClass], Designer, SetCommandTextProp);
  if FCommandTextProp <> nil then
    FCommandTextProp.Edit;
{$ENDIF}
end;

function TSQLCommandProperty.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog];
end;

{$IFDEF EH_LIB_6}
procedure TSQLCommandProperty.SetCommandTextProp(const Prop: IProperty);
{$ELSE}
procedure TSQLCommandProperty.SetCommandTextProp(Prop: TPropertyEditor);
{$ENDIF}
begin
  if Prop.GetName = 'CommandText' then
    FCommandTextProp := Prop;
end;

type

{ TMemTableFieldLinkProperty }

  TMemTableFieldLinkProperty = class(TFieldLinkProperty)
  private
    FMemTable: TMemTableEh;
  protected
    function GetIndexFieldNames: string; override;
    function GetMasterFields: string; override;
    procedure SetIndexFieldNames(const Value: string); override;
    procedure SetMasterFields(const Value: string); override;
  public
    procedure Edit; override;
  end;

{ TMemTableFieldLinkProperty }

procedure TMemTableFieldLinkProperty.Edit;
begin
  FMemTable := DataSet as TMemTableEh;
  inherited Edit;
end;

function TMemTableFieldLinkProperty.GetIndexFieldNames: string;
begin
  Result := FMemTable.DetailFields;
end;

function TMemTableFieldLinkProperty.GetMasterFields: string;
begin
  Result := FMemTable.MasterFields;
end;

procedure TMemTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
begin
  FMemTable.DetailFields := Value;
end;

procedure TMemTableFieldLinkProperty.SetMasterFields(const Value: string);
begin
  FMemTable.MasterFields := Value;
end;

{ Utility functions }

procedure ShowFieldsEditorEh(Designer: IDesigner; ADataset: TDataset;
  DesignerClass: TDSDesignerClass);
var
  FieldsEditor: TFieldsEditor;
  vShared: Boolean;
begin
  FieldsEditor := CreateFieldsEditorEh(Designer, ADataSet, DesignerClass, vShared);
  if FieldsEditor <> nil then
    FieldsEditor.Show;
end;

function CreateFieldsEditorEh(Designer: IDesigner; ADataset: TDataset;
  DesignerClass: TDSDesignerClass; var Shared: Boolean): TFieldsEditor;
begin
  Shared := True;
  if ADataset.Designer <> nil then
  begin
    Result := (ADataset.Designer as TDSDesigner).FieldsEditor;
  end
  else
  begin
    Result := TMemTableFieldsEditorEh.Create(Application);
    Result.DSDesignerClass := DesignerClass;
{$IFDEF EH_LIB_6}
    Result.Designer := Designer;
{$ELSE}
    Result.Designer := IFormDesigner(Designer);
    Result.Form := Designer.Form;
{$ENDIF}
    Result.Dataset := ADataset;
    Shared := False;
  end;
end;

{ TMTDesigner }

type

  TMTDesigner = class(TDSDesigner)
  public
    function SupportsAggregates: Boolean; override;
    function SupportsInternalCalc: Boolean; override;
  end;

{ TMTDesigner }

function TMTDesigner.SupportsAggregates: Boolean;
begin
  Result := True;
end;

function TMTDesigner.SupportsInternalCalc: Boolean;
begin
  Result := True;
end;

{ TDataSetEditor }

function TMemTableEditorEh.GetDSDesignerClass: TDSDesignerClass;
begin
  Result := TMTDesigner;
end;

procedure TMemTableEditorEh.ExecuteVerb(Index: Integer);
begin
  case Index of
    0:
      ShowFieldsEditorEh(Designer, TDataSet(Component), GetDSDesignerClass);
    1:
      begin
        TCustomMemTableEh(Component).FetchParams;
        Designer.Modified;
      end;
    2: if EditMemTable(TCustomMemTableEh(Component), Designer)
         then Designer.Modified;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦一区二区三区免费| 亚洲精品视频在线| 午夜精品久久久久影视| 成人午夜看片网址| 国产精品麻豆99久久久久久| 国产一区二区三区免费在线观看| 欧美一级精品在线| 污片在线观看一区二区| 91免费版在线| 亚洲另类在线视频| 欧美视频在线一区二区三区 | 国产精品高潮呻吟| 99这里只有精品| 国产精品久久久久久久蜜臀| av成人老司机| 亚洲一区二区三区中文字幕在线| 欧美日韩一区二区三区四区五区| 日韩在线卡一卡二| 精品毛片乱码1区2区3区| 国产一区二区网址| 亚洲欧美电影院| 欧美一二三四在线| 国产福利一区在线| 午夜电影网一区| 国产三级精品三级| 欧美精品一二三区| 国产一区视频网站| 蜜桃av一区二区| 欧美激情一区二区三区四区| 欧美日韩国产一二三| 丁香另类激情小说| 日本va欧美va瓶| 亚洲欧洲综合另类| 国产欧美综合色| 日韩欧美国产午夜精品| 91老师片黄在线观看| 国产一区欧美日韩| 亚洲午夜精品在线| 亚洲欧美另类图片小说| 久久久久久久综合日本| 欧美一区二区黄| 欧美日韩高清在线播放| 91麻豆6部合集magnet| 成人开心网精品视频| 国产成人8x视频一区二区| 麻豆精品久久精品色综合| 亚洲成av人影院| 三级一区在线视频先锋| 亚洲综合小说图片| 一区二区三区在线视频免费| 国产精品美女www爽爽爽| 久久综合九色综合欧美就去吻 | 欧美国产综合一区二区| 精品日本一线二线三线不卡| 欧美一区二区三区在线视频| 91精品国产综合久久久久| 4438成人网| 欧美mv日韩mv| 国产精品视频在线看| 亚洲色图都市小说| 亚洲午夜电影网| 六月丁香综合在线视频| 国产九九视频一区二区三区| 成人午夜碰碰视频| 色婷婷综合久色| 欧美成人一区二区三区片免费 | 久久久精品2019中文字幕之3| 亚洲精品在线三区| 亚洲欧美在线高清| 五月婷婷综合网| 国产精品影视网| 欧美综合一区二区三区| 精品日韩欧美一区二区| 18欧美亚洲精品| 男人的天堂亚洲一区| 成人性生交大合| 91精品蜜臀在线一区尤物| 欧美国产精品劲爆| 免费看日韩a级影片| 欧美视频在线观看一区二区| 盗摄精品av一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 亚洲免费看黄网站| 91.麻豆视频| 中文字幕一区二区三区不卡| 日韩欧美你懂的| 亚洲人快播电影网| 国产自产v一区二区三区c| 欧美视频日韩视频| 亚洲女性喷水在线观看一区| 国产精品性做久久久久久| 欧美mv和日韩mv的网站| 亚洲一区在线视频| 91蝌蚪国产九色| 国产精品视频线看| 成人性生交大片免费看视频在线 | 裸体健美xxxx欧美裸体表演| 欧美日韩国产另类不卡| 亚洲国产日韩一区二区| 色婷婷激情久久| 亚洲制服丝袜一区| 欧美三级日韩三级| 另类欧美日韩国产在线| 欧美成人伊人久久综合网| 麻豆精品视频在线观看视频| 欧美精品一区二区蜜臀亚洲| 国产自产高清不卡| 国产精品高清亚洲| 在线一区二区三区四区| 日韩国产欧美一区二区三区| 日韩欧美精品在线| 东方欧美亚洲色图在线| 亚洲摸摸操操av| 欧美日韩免费在线视频| 久久 天天综合| 亚洲欧洲在线观看av| 欧美视频一区二区三区四区| 蜜臀va亚洲va欧美va天堂| 国产精品午夜春色av| 欧美日韩国产在线观看| 国产在线日韩欧美| 亚洲精品中文在线| 久久久久久亚洲综合| 在线观看日韩毛片| 国产69精品久久777的优势| 一区二区三区日韩| www久久久久| 91精品黄色片免费大全| 成人av影视在线观看| 爽爽淫人综合网网站| 最新国产精品久久精品| 26uuu亚洲综合色| 欧美日韩激情在线| 91麻豆产精品久久久久久| 国产成人av电影在线观看| 亚洲香蕉伊在人在线观| 亚洲欧美乱综合| 国产精品久久久一本精品 | 3d成人h动漫网站入口| 92精品国产成人观看免费| 国产乱淫av一区二区三区| 日日夜夜精品视频天天综合网| 久久久综合精品| 欧美日韩精品欧美日韩精品 | av一本久道久久综合久久鬼色| 亚洲一区电影777| 亚洲自拍欧美精品| 亚洲精品成人悠悠色影视| 中文字幕不卡三区| 亚洲国产精品成人综合| 国产日韩精品一区二区三区 | 国产日产欧美一区| 国产精品沙发午睡系列990531| 2021久久国产精品不只是精品| 日韩免费视频一区二区| 欧美一区二区三区四区视频| 91精品久久久久久久99蜜桃| 欧美一级生活片| 久久精品人人做人人爽97| 欧美国产乱子伦| 亚洲福利一区二区| 日本不卡在线视频| 久久精品国产第一区二区三区| 久久成人羞羞网站| 国产成人av一区二区三区在线 | 樱桃视频在线观看一区| 午夜一区二区三区在线观看| 日本女人一区二区三区| 国产一区二区在线电影| 99re6这里只有精品视频在线观看| 一本一道综合狠狠老| 欧美变态tickling挠脚心| 中文字幕在线播放不卡一区| 亚洲午夜精品网| 成人性视频免费网站| 欧美一区二区三区在线视频| 国产精品灌醉下药二区| 久久激情综合网| 欧美日韩一区二区三区不卡| 久久久亚洲高清| 麻豆成人久久精品二区三区红| 99久久夜色精品国产网站| 欧美成人性战久久| 日日欢夜夜爽一区| 在线观看视频欧美| 亚洲视频综合在线| 成人性生交大合| 久久久国际精品| 精品午夜久久福利影院| 国产欧美一区二区精品性色超碰 | 欧美亚一区二区| 亚洲欧美区自拍先锋| 99riav久久精品riav| 国产精品无码永久免费888| 九九精品一区二区| 欧美第一区第二区| 久久综合综合久久综合| 日韩欧美一卡二卡| 国产精品自拍av| 中文字幕日韩av资源站|