亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qrenved.~pas

?? delphi7報表打印控件源碼 可以設計報表
?? ~PAS
字號:
{ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  :: QuickReport 3.5 for Delphi and C++Builder               ::
  ::                                                         ::
  :: QREnvEd.pas - ENVIRONMENT EDITOR                        ::
  ::                                                         ::
  :: Copyright (c) 2001 A Lochert                            ::
  :: All Rights Reserved                                     ::
  ::                                                         ::
  :: web: http://www.qusoft.no                               ::
  ::                                                         ::
  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }

unit QREnvEd;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  QRExpr, Grids, StdCtrls, Buttons, QR4Const;

type
  TQREnvironmentEditor = class(TForm)
    VariableOKBtn: TButton;
    AvailableGB: TGroupBox;
    UDFGrid: TStringGrid;
    DeleteBtn: TButton;
    EditBtn: TButton;
    AddBtn: TButton;
    LocalCB: TRadioButton;
    GlobalCB: TRadioButton;
    NewEntryGB: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Name: TEdit;
    Expression: TEdit;
    SpeedButton1: TSpeedButton;
    NewOKBtn: TButton;
    NewCancelBtn: TButton;
    procedure FormCreate(Sender: TObject);
    procedure UDFGridSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure EditBtnClick(Sender: TObject);
    procedure LocalCBClick(Sender: TObject);
    procedure VariableOKBtnClick(Sender: TObject);
    procedure NewOKBtnClick(Sender: TObject);
    procedure NewCancelBtnClick(Sender: TObject);
    procedure AddBtnClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    CloseDialog : boolean;
    NewResult : integer;
    FEnvironment : TQREvEnvironment;
    function WorkEnvironment : TQREvEnvironment;
    function GetNew(var AName, AExpr : string) : boolean;
  public
    procedure PopulateGrid;
    property Environment : TQREvEnvironment read FEnvironment write FEnvironment;
  end;

procedure EditEnvironment(AEnvironment : TQREvEnvironment; AllowGlobalEnv : boolean; ParentControl : TWinControl);

implementation

uses
  QRExpBld;

{$R *.DFM}

function TQREnvironmentEditor.WorkEnvironment : TQREvEnvironment;
begin
  if LocalCB.Checked then
    Result := Environment
  else
    Result := QRGlobalEnvironment;
end;

procedure TQREnvironmentEditor.PopulateGrid;
var
  I : integer;
begin
  if WorkEnvironment <> nil then
  begin
    UDFGrid.RowCount := WorkEnvironment.Count + 1;
    for I := 0 to WorkEnvironment.Count - 1 do
    begin
      UDFGrid.Cells[0, I + 1] := WorkEnvironment[I];
      UDFGrid.Cells[1, I + 1] := TQREvEmbeddedFunction(WorkEnvironment.Objects[I]).Expression;
    end;
  end;
end;

procedure TQREnvironmentEditor.FormCreate(Sender: TObject);
begin
  UDFGrid.Cells[0, 0] := SqrName;
  UDFGrid.Cells[1, 0] := SqrExpression;
  Environment := nil;
end;

procedure TQREnvironmentEditor.UDFGridSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
begin
  if ACol = 0 then
    WorkEnvironment[ARow - 1] := AnsiUppercase(Value)
  else
    if not WorkEnvironment.Prepared then
    begin
      TQREvEmbeddedFunction(WorkEnvironment.Objects[ARow - 1]).Free;
      WorkEnvironment.Objects[ARow - 1] := TQREvEmbeddedFunction.Create(Value);
    end else
      UDFGrid.Cells[1, ARow] := TQREvEmbeddedFunction(WorkEnvironment.Objects[ARow - 1]).Expression;
end;

procedure TQREnvironmentEditor.EditBtnClick(Sender: TObject);
var
  aExpression : string;
  aName : string;
begin
  with UDFGrid do
  begin
    aName := Cells[0, Row];
    aExpression := TQREvEmbeddedFunction(WorkEnvironment.Objects[Row - 1]).Expression;
    if GetExpression(aName, AExpression, self, self, Environment) then
    begin
      Cells[1, Row] := AExpression;
      UDFGridSetEditText(Self, 1, Row, AExpression);
    end;
  end;
end;

procedure TQREnvironmentEditor.LocalCBClick(Sender: TObject);
begin
  PopulateGrid;
end;

procedure EditEnvironment(AEnvironment : TQREvEnvironment; AllowGlobalEnv : boolean; ParentControl : TWinControl);
begin
  with TQREnvironmentEditor.Create(Application) do
  try
    if ParentControl <> nil then
    begin
//      Parent := ParentControl;
//      BorderStyle := bsNone;
//      Top := ParentControl.Top;
//      Left := ParentControl.Left;
//      position := poDesigned;
//      BringToFront;
    end;
    if not AllowGlobalEnv then
      GlobalCB.Enabled := false;
    if AEnvironment = nil then
    begin
      LocalCB.Enabled := false;
      GlobalCB.Checked := true;
    end else
      Environment := AEnvironment;
    PopulateGrid;
    CloseDialog := false;
    ShowModal;
    repeat
      Application.HandleMessage
    until CloseDialog;
  finally
    Free
  end;
end;

procedure TQREnvironmentEditor.VariableOKBtnClick(Sender: TObject);
begin
  CloseDialog := true;
end;


function TQREnvironmentEditor.GetNew(var AName, AExpr : string) : boolean;
begin
  AddBtn.Visible := false;
  EditBtn.Visible := false;
  DeleteBtn.Visible := false;
  VariableOKBtn.Visible := false;
  NewEntryGB.BringToFront;
  NewResult := 0;
  repeat
    Application.HandleMessage
  until NewResult <> 0;
  if NewResult = 1 then
  begin
    AName := Name.Text;
    AExpr := Expression.Text;
    Result := true;
  end else
    Result := false;
  AddBtn.Visible := true;
  EditBtn.Visible := true;
  DeleteBtn.Visible := true;
  VariableOKBtn.Visible := true;
  AvailableGB.BringToFront;
end;

procedure TQREnvironmentEditor.NewOKBtnClick(Sender: TObject);
begin
  NewResult := 1;
end;

procedure TQREnvironmentEditor.NewCancelBtnClick(Sender: TObject);
begin
  NewResult := 2;
end;

procedure TQREnvironmentEditor.AddBtnClick(Sender: TObject);
var
  NewName : string;
  NewExpr : string;
begin
  if GetNew(NewName, NewExpr) then
  begin
    WorkEnvironment.AddFunction(NewName, NewExpr);
    PopulateGrid;
  end;
end;

procedure TQREnvironmentEditor.SpeedButton1Click(Sender: TObject);
var
  AName : string;
  AExpr : string;
begin
  AName := Name.Text;
  AExpr := Expression.Text;
  if GetExpression(AName, AExpr, self, self, Environment) then
    Expression.Text := AExpr;
end;

procedure TQREnvironmentEditor.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CloseDialog := true;
  CanClose := True;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品久久久| 性做久久久久久免费观看欧美| 欧美日韩精品一区二区三区四区 | 成人av资源站| 国产裸体歌舞团一区二区| 精品一区二区日韩| 国产一区二区在线观看免费| 韩国av一区二区三区四区| 国产美女精品人人做人人爽| 国产成人在线视频网站| 国产精品一品视频| 波多野结衣精品在线| 91香蕉视频黄| 911精品国产一区二区在线| 91精品国产色综合久久ai换脸| 日韩一区二区三区免费看 | 国产成人福利片| 播五月开心婷婷综合| 99国产精品一区| 欧美精选午夜久久久乱码6080| 91精品国产麻豆| 国产丝袜在线精品| 亚洲欧美另类久久久精品2019| 天天综合色天天综合| 激情综合网天天干| 成人av资源下载| 欧美日韩国产一级| 精品免费一区二区三区| 国产精品乱人伦| 天天亚洲美女在线视频| 国产精品77777竹菊影视小说| 91在线云播放| 日韩你懂的电影在线观看| 国产日韩av一区| 五月天一区二区三区| 国产美女在线观看一区| 欧美视频一区二区三区四区| 久久综合久久综合九色| 亚洲成人免费视| 国产99精品国产| 欧美精品三级日韩久久| 国产欧美日韩视频一区二区 | 欧美一区欧美二区| 欧日韩精品视频| 国产丝袜欧美中文另类| 亚洲成人动漫在线观看| 99视频在线观看一区三区| 欧美一级艳片视频免费观看| 国产精品毛片大码女人| 国产在线一区观看| 在线电影院国产精品| 亚洲视频一区二区在线| 高清shemale亚洲人妖| 日韩欧美你懂的| 亚洲成人免费av| 欧洲av在线精品| 综合中文字幕亚洲| 成人动漫av在线| 久久久久久麻豆| 另类小说欧美激情| 欧美一区二区不卡视频| 亚洲午夜精品网| 色呦呦国产精品| 国产精品进线69影院| 国产福利精品一区二区| 日韩精品一区二区三区在线 | 欧美激情在线观看视频免费| 蜜臀av一区二区| 91精品国产免费| 奇米精品一区二区三区在线观看| 欧美日韩mp4| 日韩电影免费在线看| 91精品国产91久久久久久一区二区| 亚洲18影院在线观看| 欧美色涩在线第一页| 亚洲午夜日本在线观看| 欧美日韩在线综合| 亚洲午夜免费视频| 9191久久久久久久久久久| 亚洲午夜激情av| 欧美精品日韩一本| 奇米影视一区二区三区小说| 日韩欧美一区电影| 欧美影片第一页| 丝袜美腿亚洲综合| 精品久久五月天| 国产精品一区二区三区99| 国产精品欧美一区二区三区| www.亚洲免费av| 亚洲另类在线制服丝袜| 欧美精品色一区二区三区| 美腿丝袜亚洲色图| 国产欧美中文在线| 色婷婷久久99综合精品jk白丝| 亚洲国产精品久久久久秋霞影院 | 亚洲香蕉伊在人在线观| 日韩一区二区免费在线观看| 国产一区二三区| 亚洲图片你懂的| 91麻豆精品国产91久久久资源速度 | 精品一区在线看| 欧美国产综合色视频| 91碰在线视频| 精品一区二区在线播放| 国产精品美女久久久久久久久久久 | 中文字幕日本乱码精品影院| 91激情在线视频| 精品一区二区综合| 一区二区三区自拍| 欧美电影免费提供在线观看| 色综合天天综合给合国产| 天天做天天摸天天爽国产一区 | 一区二区国产盗摄色噜噜| 91精品国产综合久久久久久漫画| 粉嫩高潮美女一区二区三区 | 国产精品美女久久久久aⅴ国产馆| 欧美丝袜自拍制服另类| 国产乱码精品1区2区3区| 一区二区三区欧美日| 久久夜色精品一区| 91视频精品在这里| 国产主播一区二区三区| 日韩国产成人精品| 亚洲天天做日日做天天谢日日欢| 日韩免费成人网| 欧美日韩国产一区二区三区地区| 国产成都精品91一区二区三| 日韩精品亚洲一区二区三区免费| 国产精品国产精品国产专区不蜜 | 成人性生交大片免费看视频在线 | 国产福利电影一区二区三区| 亚洲高清免费视频| 亚洲婷婷综合色高清在线| 久久女同互慰一区二区三区| 日韩欧美一卡二卡| 6080yy午夜一二三区久久| 在线精品视频免费播放| 97久久超碰国产精品| 本田岬高潮一区二区三区| 国产一区二区影院| 黄色日韩三级电影| 极品少妇xxxx精品少妇偷拍| 蜜臀av性久久久久蜜臀aⅴ| 日韩国产精品久久| 亚洲v日本v欧美v久久精品| 亚洲午夜久久久久| 亚洲成人激情av| 亚洲高清中文字幕| 亚洲成人精品一区二区| 天天综合色天天综合| 三级欧美在线一区| 日本sm残虐另类| 日日欢夜夜爽一区| 日韩高清在线观看| 精品在线一区二区| 国产很黄免费观看久久| 国产成人精品影院| av亚洲精华国产精华| 99国产精品久久久久| 91免费在线视频观看| 在线免费av一区| 欧美特级限制片免费在线观看| 欧美人狂配大交3d怪物一区| 欧美一级日韩免费不卡| 欧美成人a视频| 国产日韩欧美麻豆| 国产精品国产三级国产aⅴ无密码| 国产精品每日更新在线播放网址| 亚洲精品免费在线观看| 亚洲国产乱码最新视频| 免费的国产精品| 国产一区二区三区四| www.成人网.com| 欧美色中文字幕| 欧美成人在线直播| 国产精品久久久久久久久久久免费看| 一区二区在线观看免费 | 日韩欧美国产综合在线一区二区三区| 日韩欧美国产综合一区 | 久久久久国产成人精品亚洲午夜 | 欧美无砖专区一中文字| 日韩美女一区二区三区| 中文字幕一区二区三区乱码在线| 一级精品视频在线观看宜春院 | 91蜜桃免费观看视频| 3751色影院一区二区三区| 国产网红主播福利一区二区| 夜夜嗨av一区二区三区四季av| 蜜臂av日日欢夜夜爽一区| jvid福利写真一区二区三区| 欧美久久久久久蜜桃| 国产精品久久久久永久免费观看| 亚洲国产精品久久人人爱| 国产成人免费9x9x人网站视频| 精品视频在线视频| 国产女主播一区| 欧美aaaaaa午夜精品| 在线日韩国产精品| 国产欧美一区二区精品性| 视频在线在亚洲|