{******************************************} { } { FastReport v3.0 } { Expression Editor } { } { Copyright (c) 1998-2006 } { by Alexander Tzyganenko, } { Fast Reports Inc. } { } {******************************************} unit frxEditExpr; interface {$I frx.inc} uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, frxClass, ExtCtrls, ImgList, Buttons, frxDataTree {$IFDEF Delphi6} , Variants {$ENDIF}; type TfrxExprEditorForm = class(TForm) ExprMemo: TMemo; Panel1: TPanel; OkB: TButton; CancelB: TButton; Splitter1: TSplitter; Panel2: TPanel; ExprL: TLabel; procedure FormCreate(Sender: TObject); procedure ExprMemoDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure ExprMemoDragDrop(Sender, Source: TObject; X, Y: Integer); procedure FormShow(Sender: TObject); procedure FormHide(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private FDataTree: TfrxDataTreeForm; FReport: TfrxReport; procedure OnDataTreeDblClick(Sender: TObject); public end; implementation {$R *.DFM} uses frxDock, IniFiles, frxRes; { TfrxExprEditorForm } procedure TfrxExprEditorForm.FormCreate(Sender: TObject); begin Caption := frxGet(4400); ExprL.Caption := frxGet(4401); OkB.Caption := frxGet(1); CancelB.Caption := frxGet(2); FReport := TfrxCustomDesigner(Owner).Report; FDataTree := TfrxDataTreeForm.Create(Self); FDataTree.Report := FReport; FDataTree.OnDblClick := OnDataTreeDblClick; FDataTree.Tabs.Parent := Self; FDataTree.Tabs.Align := alClient; FDataTree.HintPanel.Height := 60; FDataTree.FunctionNameL.Height := 17; FDataTree.UpdateItems; end; procedure TfrxExprEditorForm.FormShow(Sender: TObject); var Ini: TCustomIniFile; begin Ini := FReport.GetIniFile; Ini.WriteBool('Form.TfrxExprEditorForm', 'Visible', True); frxRestoreFormPosition(Ini, Self); Ini.Free; end; procedure TfrxExprEditorForm.FormHide(Sender: TObject); var Ini: TCustomIniFile; begin Ini := FReport.GetIniFile; frxSaveFormPosition(Ini, Self); Ini.Free; end; procedure TfrxExprEditorForm.OnDataTreeDblClick(Sender: TObject); begin ExprMemo.SelText := FDataTree.GetFieldName; ExprMemo.SetFocus; end; procedure TfrxExprEditorForm.ExprMemoDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source is TTreeView) and (TControl(Source).Owner = FDataTree) and (FDataTree.GetFieldName <> ''); end; procedure TfrxExprEditorForm.ExprMemoDragDrop(Sender, Source: TObject; X, Y: Integer); begin ExprMemo.SelText := FDataTree.GetFieldName; ExprMemo.SetFocus; end; procedure TfrxExprEditorForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_F1 then frxResources.Help(Self); end; end. //