📄 mysqlpropedit.pas
字号:
// 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 + -