Componentes.Terceros.SDAC/internal/4.10.0.10/1/Source/Design/DAMacrosFrame.pas
2007-10-05 14:48:18 +00:00

120 lines
2.7 KiB
ObjectPascal

//////////////////////////////////////////////////
// DB Access Components
// Copyright © 1998-2005 Core Lab. All right reserved.
// Macros Frame
//////////////////////////////////////////////////
{$IFNDEF CLR}
{$I Dac.inc}
unit DAMacrosFrame;
{$ENDIF}
interface
uses
{$IFDEF MSWINDOWS}
Windows, Messages, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls,
{$ENDIF}
{$IFDEF LINUX}
QStdCtrls, QExtCtrls, QControls,
{$ENDIF}
Classes, SysUtils,
DBAccess, CRFrame, CRColFrame, CRTabEditor;
type
TDAMacrosFrame = class(TCRColFrame)
lbMName: TLabel;
lbMacroLog: TLabel;
lbMValue: TLabel;
meMacroValue: TMemo;
cbMacroActive: TCheckBox;
lbActive: TLabel;
procedure cbMacroActiveClick(Sender: TObject);
procedure meMacroValueExit(Sender: TObject);
protected
function GetItems: TCollection; override;
function GetMacros: TMacros;
function GetItemName(Item: TCollectionItem): string; override;
procedure ItemToControls(Item: TCollectionItem); override;
procedure ControlsToItem(Item: TCollectionItem); override;
property Macros: TMacros read GetMacros;
public
end;
implementation
{$IFDEF IDE}
{$R *.dfm}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$R DAMacrosFrame.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
uses
DB, DASQLEditor;
function TDAMacrosFrame.GetItems: TCollection;
begin
Result := Editor.DADesignUtilsClass.GetMacros(Editor.localComponent);
end;
function TDAMacrosFrame.GetMacros: TMacros;
begin
Result := Items as TMacros;
end;
function TDAMacrosFrame.GetItemName(Item: TCollectionItem): string;
begin
Result := TMacro(Item).Name;
end;
procedure TDAMacrosFrame.ItemToControls(Item: TCollectionItem);
begin
meMacroValue.Lines.Text := TMacro(Item).Value;
cbMacroActive.Checked := TMacro(Item).Active;
end;
procedure TDAMacrosFrame.ControlsToItem(Item: TCollectionItem);
begin
TMacro(Item).Value := meMacroValue.Lines.Text;
TMacro(Item).Active := cbMacroActive.Checked;
end;
procedure TDAMacrosFrame.cbMacroActiveClick(Sender: TObject);
begin
if FInSelectItem or not IsControlEnabled(Sender as TControl) then
Exit;
Macros[lbItemName.ItemIndex].Active := cbMacroActive.Checked;
Modified := True;
UpdateControlsState;
end;
procedure TDAMacrosFrame.meMacroValueExit(Sender: TObject);
begin
if FInSelectItem or not IsControlEnabled(Sender as TControl) then
Exit;
if meMacroValue.Lines.Text <> Macros[lbItemName.ItemIndex].Value then begin
Macros[lbItemName.ItemIndex].Value := meMacroValue.Lines.Text;
Modified := True;
UpdateControlsState;
end;
end;
end.