referred.pas
来自「delphi编程控件」· PAS 代码 · 共 118 行
PAS
118 行
unit referred;
(*
COPYRIGHT (c) RSD software 1997 - 98
All Rights Reserved.
*)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, DB, refer;
type
TReferenceTextEdit = class(TForm)
Panel: TPanel;
BOk: TButton;
ComboBox: TComboBox;
LFields: TLabel;
Edit: TEdit;
BCancel: TButton;
BInsert: TButton;
Edit1: TEdit;
CheckBox: TCheckBox;
LText: TLabel;
LTextOnError: TLabel;
EditError: TEdit;
BHelp: TButton;
procedure BInsertClick(Sender: TObject);
procedure CheckBoxClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
DataSet : TDataSet;
SaveString : String;
CustomReference : TCustomReference;
end;
function EditReferenceText(CustomReference : TCustomReference) : Boolean;
implementation
uses autostrs, audbstrs;
{$R *.DFM}
function EditReferenceText(CustomReference : TCustomReference) : Boolean;
Var
AForm : TReferenceTextEdit;
i : Integer;
begin
Result := False;
AForm := TReferenceTextEdit.Create(Nil);
AForm.CustomReference := CustomReference;
if(CustomReference.GridLayout.DataSource <> Nil) And (CustomReference.GridLayout.DataSource.DataSet <> Nil) then
AForm.DataSet := CustomReference.GridLayout.DataSource.DataSet
else AForm.DataSet := Nil;
AForm.Caption := CustomReference.Name + '.PatternText';
AForm.Edit.Text := CustomReference.PatternText;
AForm.EditError.Text := CustomReference.TextOnError;
if(AForm.DataSet <> Nil) then
if(CustomReference.CanUseQuery) then
for i := 0 to CustomReference.GetQuery.FieldCount - 1 do
AForm.ComboBox.Items.Add(CustomReference.GetQuery.Fields[i].FieldName)
else
for i := 0 to AForm.DataSet.FieldCount - 1 do
AForm.ComboBox.Items.Add(AForm.DataSet.Fields[i].FieldName);
if(AForm.ComboBox.Items.Count > 0) then
AForm.ComboBox.ItemIndex := 0;
AForm.ShowModal;
if(AForm.ModalResult = mrOk) then begin
CustomReference.PatternText := AForm.Edit.Text;
CustomReference.TextOnError := AForm.EditError.Text;
Result := True;
end;
AForm.Free;
end;
procedure TReferenceTextEdit.BInsertClick(Sender: TObject);
begin
if(ComboBox.ItemIndex >= 0) and (ComboBox.Items.Count > 0) then begin
Edit1.Text := '&' + ComboBox.Text;
Edit1.SelectAll;
Edit1.CutToClipboard;
Edit.PasteFromClipboard;
Edit.SetFocus;
end;
end;
procedure TReferenceTextEdit.CheckBoxClick(Sender: TObject);
begin
BInsert.Enabled := Not CheckBox.Checked;
ComboBox.Enabled := Not CheckBox.Checked;
if(CheckBox.Checked) then begin
SaveString := Edit.Text;
Edit.Text := CustomReference.ChangeTextByPattern(Edit.Text);
Edit.ReadOnly := True;
end else begin
Edit.Text := SaveString;
Edit.ReadOnly := False;
end;
end;
procedure TReferenceTextEdit.FormCreate(Sender: TObject);
begin
BInsert.Caption := LoadStr(ACB_INSERT);
BOK.Caption := LoadStr(ACB_OK);
BCancel.Caption := LoadStr(ACB_CANCEL);
BHelp.Caption := LoadStr(ACB_HELP);
LText.Caption := LoadStr(AEL_TEXT);
LTextOnError.Caption := LoadStr(ACDB_REFTEXTONERROR);
CheckBox.Caption := LoadStr(ACDB_REFVIEWREALTEXT);
LFields.Caption := LoadStr(ACDB_FIELDS);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?