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

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

?? memtabledesigneh.pas

?? 一個功能強大的DBGRID控件
?? 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一区二区三区免费野_久草精品视频
1区2区3区精品视频| 69堂国产成人免费视频| 国产精品系列在线| 丁香天五香天堂综合| 国产精品三级视频| 在线亚洲一区观看| 日韩精品一二区| 欧美电影免费观看高清完整版在线| 奇米精品一区二区三区四区| 精品国产成人在线影院| 丁香桃色午夜亚洲一区二区三区| 亚洲欧美激情一区二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 精品国产乱码久久久久久免费 | 91麻豆国产在线观看| 一片黄亚洲嫩模| 日韩欧美一区二区不卡| 成人午夜大片免费观看| 亚洲精品videosex极品| 日韩一区二区精品在线观看| 国产精品一区不卡| 亚洲在线观看免费视频| 日韩精品中午字幕| 91麻豆产精品久久久久久| 日韩二区三区四区| 国产精品国产三级国产a| 欧美日韩黄色一区二区| 国产精品主播直播| 亚洲韩国精品一区| 国产人成一区二区三区影院| 色综合天天综合色综合av| 久久精品国产99| 亚洲人午夜精品天堂一二香蕉| 日韩亚洲欧美一区| 91色.com| 国产精品99久久久久久久女警| 亚洲综合视频网| 国产日韩欧美精品一区| 欧美日韩成人综合天天影院 | 亚洲人成人一区二区在线观看| 欧美一级久久久久久久大片| 99久久国产综合精品麻豆| 麻豆视频一区二区| 一区二区三区精品| 亚洲国产精品成人综合| 欧美一二三四区在线| 色偷偷一区二区三区| 国产精品影视在线| 日韩黄色免费电影| 亚洲综合一二区| 国产精品欧美经典| 久久先锋影音av鲁色资源网| 欧美日韩国产经典色站一区二区三区| 成人免费毛片app| 国内精品久久久久影院薰衣草| 五月激情综合婷婷| 亚洲韩国一区二区三区| 自拍偷拍欧美精品| 国产精品入口麻豆九色| 欧美成人艳星乳罩| 91精品国产综合久久精品app| 日本道在线观看一区二区| 成人美女视频在线观看| 国产精品亚洲视频| 国产一本一道久久香蕉| 蜜桃久久av一区| 美女视频黄免费的久久 | 99久久精品免费观看| 国产成人午夜精品影院观看视频 | 精品99久久久久久| 欧美一区二区美女| 91精品国产综合久久久蜜臀粉嫩| 欧美无砖砖区免费| 欧美三级电影网站| 欧美二区三区91| 3atv一区二区三区| 日韩欧美电影一区| 欧美va亚洲va| 久久一区二区三区四区| 久久美女高清视频| 精品久久久久久久久久久久久久久| 日韩午夜精品电影| 337p粉嫩大胆噜噜噜噜噜91av | 久久蜜臀精品av| 国产网站一区二区| 国产精品久久免费看| 国产精品国产成人国产三级| 1区2区3区欧美| 亚洲精品一卡二卡| 亚洲成在人线在线播放| 日韩成人午夜精品| 久久国产精品色| 丁香激情综合国产| 91免费国产在线| 欧美精品丝袜久久久中文字幕| 日韩一区和二区| 欧美国产在线观看| 一区二区三区欧美亚洲| 日韩va欧美va亚洲va久久| 看电影不卡的网站| 成人国产精品视频| 在线影视一区二区三区| 日韩免费看网站| 国产网红主播福利一区二区| 国产精品护士白丝一区av| 亚洲一区二区视频| 激情综合五月婷婷| eeuss影院一区二区三区 | 成人免费三级在线| 欧美亚一区二区| 精品少妇一区二区三区在线播放| 国产日韩欧美高清| 午夜欧美大尺度福利影院在线看| 蜜臀av性久久久久蜜臀av麻豆| 国产成a人无v码亚洲福利| 色综合久久99| 精品少妇一区二区三区| 中文字幕日韩精品一区| 免费欧美高清视频| 99国产精品一区| 91精品黄色片免费大全| 国产精品久久影院| 日韩精品成人一区二区在线| 丁香网亚洲国际| 91精品国产综合久久香蕉的特点| 国产精品色婷婷| 久久精品国产亚洲5555| 日本二三区不卡| 久久精品在这里| 免费在线观看视频一区| 色欧美日韩亚洲| 国产日产欧美一区二区视频| 五月天激情综合| 欧美一级在线观看| 欧美电视剧在线观看完整版| 国产精品理论片在线观看| 亚洲影视资源网| 韩国精品久久久| 欧美年轻男男videosbes| 欧美国产禁国产网站cc| 久久99精品网久久| 欧美综合在线视频| 成人欧美一区二区三区视频网页| 精品一区二区三区免费视频| 欧美午夜视频网站| 中文字幕综合网| 东方欧美亚洲色图在线| 日韩一区二区中文字幕| 亚洲动漫第一页| 欧美在线色视频| 亚洲美女屁股眼交3| 波多野结衣亚洲一区| 欧美激情一区二区三区蜜桃视频| 美女网站在线免费欧美精品| 在线播放91灌醉迷j高跟美女| 樱花影视一区二区| 91在线国产福利| 亚洲四区在线观看| 99国产麻豆精品| 自拍偷拍欧美激情| av亚洲产国偷v产偷v自拍| 日本一区二区在线不卡| 国产在线精品免费| 欧美精品一区二区在线播放 | 免费高清在线视频一区·| 欧美高清精品3d| 视频一区国产视频| 欧美日韩国产小视频在线观看| 一区二区三区美女视频| 91精品福利视频| 亚洲在线视频网站| 欧美日韩国产综合一区二区三区| 亚洲福中文字幕伊人影院| 91成人免费在线视频| 亚洲风情在线资源站| 欧美日韩在线精品一区二区三区激情| 一区二区三区小说| 欧美亚洲综合网| 免费欧美在线视频| 久久久综合激的五月天| 成人晚上爱看视频| 中文字幕一区二区三区不卡| 91网站在线播放| 亚洲国产精品久久人人爱| 在线综合+亚洲+欧美中文字幕| 美洲天堂一区二卡三卡四卡视频| 日韩亚洲国产中文字幕欧美| 日本在线不卡视频一二三区| 日韩欧美久久一区| 国产成人亚洲综合a∨婷婷图片| 中文字幕+乱码+中文字幕一区| www.综合网.com| 亚洲一区二区欧美激情| 欧美大白屁股肥臀xxxxxx| 粉嫩av亚洲一区二区图片| 亚洲欧美视频在线观看| 91精品国产综合久久福利| 国产91色综合久久免费分享| 一区二区三区中文字幕| 日韩亚洲欧美在线|