⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqlpropedit.pas

📁 MYSQL 连接控件 MYSQL 连接控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//	Author:			Jacques Venter, jacques@scibit.com
//	Copyright:		1999,2000,2001,2002,2003,2004 SciBit - Scientific Bitware (Pty) Ltd
//	Version:			2004.1.1.0
//	Comments:      Property Editors
//	History:
//						2002.1.0.0
//							First release
//
//   Licensing
//
//       Copyright (c) 1998-2004 SciBit - Scientific Bitware (Pty) Ltd
//       ALL RIGHTS RESERVED
//
//  The entire contents of this file is protected by South African and
//  International Copyright Laws. Unauthorized reproduction,
//  reverse-engineering, and distribution of all or any portion of
//  the code contained in this file is strictly prohibited and may
//  result in severe civil and criminal penalties and will be
//  prosecuted to the maximum extent possible under the law.
//
//  RESTRICTIONS
//
//  THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES
//  (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE
//  SECRETS OF SCIBIT (Pty) Ltd. THE REGISTERED DEVELOPER IS
//  LICENSED TO DISTRIBUTE THE SOURCECODE AND ALL
//  ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY.
//
//  THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED
//  FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE
//  COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE
//  AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT
//  AND PERMISSION FROM SciBit - Scientific Bitware (Pty) Ltd
//
//  CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON
//  ADDITIONAL RESTRICTIONS.
//
//*******************************************************************
unit MySQLPropEdit;
interface
{$I product.inc}
uses
	Classes,DB,TypInfo,SysUtils,
{$IFDEF MSWINDOWS}
  Controls,
  Dialogs,
{$ELSE}
  QControls,
  QDialogs,
{$ENDIF}
{$IFDEF DELPHI5}
	DsgnIntf,EditIntf,
{$ENDIF}
{$IFDEF DELPHI6UP}
	Variants,DesignIntf,DesignEditors,
{$ENDIF}
  MySQLLinks,MySQLServer,MySQLDataset,MySQLDrivers;
type
  TMySQLStringProperty = class(TStringProperty)
  public
    	function GetAttributes: TPropertyAttributes; override;
    	procedure GetValueList(List: TStrings); virtual;
    	procedure GetValues(Proc: TGetStrProc); override;
  end;

  TMySQLMasterFieldsProperty = class(TPropertyEditor)
  public
    	function GetAttributes: TPropertyAttributes; override;
    	procedure Edit; override;
		function GetValue: string; override;
    	procedure SetValue(const Value: string); override;
  end;

  TMySQLDriverKindProperty = class(TEnumProperty)
  public
     function GetAttributes: TPropertyAttributes; override;
     procedure SetValue(const Value: string); override;
  end;

  TMySQLDriverProperty = class(TClassProperty)
  protected
    function HasSubProperties: Boolean;
  public
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
    procedure GetValues(Proc: TGetStrProc); override;
    procedure SetValue(const Value: string); override;
  end;

  TMySQLServerConnectedProperty = class(TEnumProperty)
  public
    procedure SetValue(const Value: string); override;
  end;

  TMySQLDatasetBaseActiveProperty = class(TEnumProperty)
  public
    procedure SetValue(const Value: string); override;
  end;

  TMySQLDatabaseNameProperty = class(TMySQLStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

  TMySQLDSTableNameProperty = class(TMySQLStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

  TMySQLDSFieldNameProperty = class(TMySQLStringProperty)
  public
    procedure GetValueList(List: TStrings); override;
  end;

procedure Register;

implementation
{$R MySQLPropEdit.res}

//****************************************************
// 					TMySQLStringProperty
//****************************************************

function TMySQLStringProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paValueList, paSortList, paMultiSelect];
end;

procedure TMySQLStringProperty.GetValueList(List: TStrings);
begin
end;

procedure TMySQLStringProperty.GetValues(Proc: TGetStrProc);
var
  I: Integer;
  Values: TStringList;
begin
  Values := TStringList.Create;
  try
    GetValueList(Values);
    for I := 0 to Values.Count - 1 do Proc(Values[I]);
  finally
    Values.Free;
  end;
end;

//****************************************************
// 					TMySQLMasterFieldsProperty
//****************************************************

function TMySQLMasterFieldsProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paDialog];
end;

procedure TMySQLMasterFieldsProperty.Edit;
begin
	if TMySQLDatasetBase(GetComponent(0)).GetDataSource<>nil then
		Value := EditMasterFields(TMySQLDatasetBase(GetComponent(0)))
  else
  	MessageDlg('You must specify a MasterSource first.',mtError,[mbOk],0);
end;

function TMySQLMasterFieldsProperty.GetValue: string;
begin
	Result := TMySQLDatasetBase(GetComponent(0)).GetMasterFields;
end;

procedure TMySQLMasterFieldsProperty.SetValue(const Value: string);
begin
  TMySQLDatasetBase(GetComponent(0)).SetMasterFields(Value);
end;

//****************************************************
// 					TMySQLDriverKindProperty
//****************************************************

function TMySQLDriverKindProperty.GetAttributes: TPropertyAttributes;
begin
//  Result := inherited GetAttributes;
  Result := [paReadOnly];
end;

procedure TMySQLDriverKindProperty.SetValue(const Value: string);
begin
//  inherited;
//  Modified;
end;

//****************************************************
// 					TMySQLDriverProperty
//****************************************************

function TMySQLDriverProperty.HasSubProperties: Boolean;
var
  i: Integer;
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -