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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qrexpbld.pas

?? delphi7報表打印控件源碼 可以設(shè)計報表
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    FunctionPage.BringToFront;
  end else
    Result := false;
  if not Result then
    Func := '';
  FunctionPage.Enabled := false;
end;

function TQRExpressionBuilder.GetParams(ParamList : string; var ParamResult : string) : boolean;
var
  I : integer;
begin
  FuncParamsPage.Enabled := true;
  FuncParamsPage.BringToFront;
  CopyFuncName.Caption := FuncName.Caption;
  CopyFuncDescription.Caption := FuncDescription.Caption;
  for I := 0 to length(ParamList) - 1 do
  begin
    with TLabel.Create(Self) do
    begin
      Parent := FuncParamSB;
      Left := 10;
      Top := I * 40;
      Tag := 1;
      case ParamList[I + 1] of
        'N' : Caption := SqrExpBldNumeric;
        'B' : Caption := SqrExpBldLogical;
        'S' : Caption := SqrExpBldText;
        'V' : Caption := SqrExpBldValue;
      end;
      Caption := Format(Caption, [I + 1]);
    end;
    with TEdit.Create(Self) do
    begin
      Parent := FuncParamSB;
      Left := 10;
      Top := I * 40 + 15;
      Width := Parent.Width - 60;
      Tag := I;
    end;
    with TSpeedButton.Create(Self) do
    begin
      Parent := FuncParamSB;
      Left := Parent.Width - 40;
      Width := 20;
      Height := 20;
      Top := I * 40 + 15;
      Caption := '...';
      Tag := I;
      OnClick := GetParamExprClick;
    end;
    FuncParamSB.VertScrollBar.Range := Length(ParamList) * 40;
    FuncParamSB.VertScrollBar.Increment := 40;
  end;
  FFuncParamsResult := 0;
  repeat
    Application.HandleMessage
  until FFuncParamsResult <> 0;
  Result := FFuncParamsResult = 1;
  if Result then
  begin
    ParamResult := '';
    for I := 0 to FuncParamSB.ControlCount - 1 do
    begin
      if FuncParamSB.Controls[I] is TEdit then
      begin
        if ParamResult <> '' then
          ParamResult := ParamResult + ',';
        ParamResult := ParamResult + TEdit(FuncParamSB.Controls[I]).Text;
      end;
    end;
  end;
  while FuncParamSB.ControlCount > 0 do
    FuncParamSB.Controls[0].Free;
  FuncParamsPage.Enabled := false;
end;

procedure TQRExpressionBuilder.GetParamExprClick(Sender : TObject);
var
  I : integer;
  ParamExpr : string;
begin
  for I := 0 to FuncParamSB.ControlCount - 1 do
    if (FuncParamSB.Controls[I] is TEdit) and
      (TEdit(FuncParamSB.Controls[I]).Tag = TSpeedButton(Sender).Tag) then
      with TEdit(FuncParamSB.Controls[I]) do
      begin
        ParamExpr := Text;
        if GetExpression(Format(SqrExpBldEnterParam, [Tag + 1, FuncName.Caption]),
          ParamExpr, DataSetForm, Self, FLocalEnvironment) then
          Text := ParamExpr;
        FuncParamsPage.BringToFront;
        SetFocus;
        SelStart := 0;
        SelLength := Length(Text);
        Exit;
      end;
end;

procedure TQRExpressionBuilder.InsertFunctionBtnClick(Sender: TObject);
var
  AFunction : string;
begin
  MainPage.Enabled := false;
  if GetFunc(AFunction) then
  begin
    MainPage.Enabled := true;
    InsertText(AFunction);
  end else
    MainPage.Enabled := true;
  MainPage.BringToFront;
  Expr.SetFocus;
end;

procedure TQRExpressionBuilder.FuncParamOkBtnClick(Sender: TObject);
begin
  FFuncParamsResult := 1;
end;

procedure TQRExpressionBuilder.FuncArgCancelBtnClick(Sender: TObject);
begin
  FFuncParamsResult := 2;
end;

procedure TQRExpressionBuilder.FunctionCancelBtnClick(Sender: TObject);
begin
  FFuncResult := 2;
end;

procedure TQRExpressionBuilder.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  FFuncResult := 2;
  FFuncParamsResult := 2;
  FDataFieldResult := 2;
  if FExprResult <> 1 then FExprResult := 2;
  FVariableResult := 2;
  CanClose := true;
end;

function TQRExpressionBuilder.GetDatafield(var Field : string) : boolean;
begin
  FDatafieldResult := 0;
  DataFieldPage.Enabled := true;
  DataFieldPage.BringToFront;
  repeat
    Application.HandleMessage
  until FDatafieldResult <> 0;
  Result := FDatafieldResult = 1;
  if Result and (AvailableDataSets.ItemIndex > -1) and (AvailableFields.ItemIndex > -1) then
    Field := AvailableDatasets.Items[AvailableDataSets.ItemIndex] + '.' + AvailableFields.Items[AvailableFields.ItemIndex]
  else
    Field := '';
  DataFieldPage.Enabled := false;
end;

function TQRExpressionBuilder.GetVariable(var Variable : string) : boolean;
begin
  FVariableResult := 0;
  VariablePage.Enabled := true;
  VariablePage.BringToFront;
  repeat
    Application.HandleMessage
  until FVariableResult <> 0;
  Result := FVariableResult = 1;
  if Result then
    Variable := AvailableVariables.Items[AvailableVariables.ItemIndex]
  else
    Variable := '';
  VariablePage.Enabled := false;
end;

procedure TQRExpressionBuilder.InsertText(AText : string);
begin
  Expr.SelText := AText;
  Expr.SelStart := Expr.SelStart + Expr.SelLength;
  Expr.SelLength := 0;
  Expr.SetFocus;
end;

procedure TQRExpressionBuilder.AddSomeClick(Sender: TObject);
begin
  InsertText(' ' + TSpeedButton(Sender).Caption + ' ');
end;

procedure TQRExpressionBuilder.PickDatasets;
begin
  AvailableDataSets.Items := AllDataSets(DatasetForm, true);
  AvailableDataSets.ItemIndex := 0;
  AvailableDataSetsClick(self);
end;

procedure TQRExpressionBuilder.PickVariables;
var
  I : integer;
begin
  AvailableVariables.Items.Clear;
  if LocalEnvironment <> nil then
    for I := 0 to LocalEnvironment.Count - 1 do
      AvailableVariables.Items.Add(LocalEnvironment[I]);
  for I := 0 to QRGlobalEnvironment.Count - 1 do
    AvailableVariables.Items.Add(QRGlobalEnvironment[I]);
  AvailableVariables.ItemIndex := 0;
  AvailableVariablesClick(Self);
end;

procedure TQRExpressionBuilder.FormActivate(Sender: TObject);
begin
  PickDataSets;
  PickVariables;
  Expr.SetFocus;
end;

procedure TQRExpressionBuilder.AvailableDatasetsClick(Sender: TObject);
var
  I : integer;
begin
  AvailableFields.Items.Clear;
  if AvailableDataSets.Items.Count > 0 then
    with TDataSet(AvailableDataSets.Items.Objects[AvailableDataSets.ItemIndex]) do
    begin
      for I := 0 to FieldCount - 1 do
        AvailableFields.Items.Add(Fields[I].FieldName);
    end;
end;

procedure TQRExpressionBuilder.OKClick(Sender: TObject);
begin
  FExprResult := 1;
end;

procedure TQRExpressionBuilder.CancelClick(Sender: TObject);
begin
  FExprResult := 2;
end;

procedure TQRExpressionBuilder.ClearClick(Sender: TObject);
begin
  Expr.Text := '';
end;

procedure TQRExpressionBuilder.ValidateBtnClick(Sender: TObject);
var
  I : integer;
  AResult : TQREvResult;
  TextResult : string;
begin
  QRGlobalEnvironment.Prepare;
  if LocalEnvironment <> nil then
    LocalEnvironment.Prepare;
  with TQREvaluator.Create do
  try
    DataSets := TList.Create;
    Environment := LocalEnvironment;
    for I := 0 to AvailableDataSets.Items.Count - 1 do
      DataSets.Add(TDataSet(AvailableDataSets.Items.Objects[I]));
    AResult := Calculate(TrimExpr(Expr.Text));
    TextResult := '';
    case AResult.Kind of
      resInt : TextResult := IntToStr(AResult.IntResult);
      resDouble : TextResult := FloatToStr(AResult.DblResult);
      resString : TextResult := AResult.StrResult;
      resBool : if AResult.booResult then
                  TextResult := 'True'
                else
                  TextResult := 'False';
    end;
    if TextResult = '' then
      ShowMessage(SqrExpBldError + AResult.strResult)
    else
      ShowMessage(SqrExpBldNoError + TextResult);
      DataSets.Free;
  finally
    free;
  end;
  if LocalEnvironment <> nil then LocalEnvironment.Unprepare;
  QRGlobalEnvironment.Unprepare;
end;

procedure TQRExpressionBuilder.InsertVariableBtnClick(Sender: TObject);
var
  AVariable : string;
begin
  MainPage.Enabled := false;
  if GetVariable(AVariable) then
  begin
    MainPage.Enabled := true;
    InsertText(AVariable);
  end else
    MainPage.Enabled := true;
  MainPage.BringToFront;
end;

procedure TQRExpressionBuilder.VariableOKBtnClick(Sender: TObject);
begin
  FVariableResult := 1;
end;

procedure TQRExpressionBuilder.VariableCancelBtnClick(Sender: TObject);
begin
  FVariableResult := 2;
end;

procedure TQRExpressionBuilder.AvailableVariablesClick(Sender: TObject);
var
  VarName : string;
begin
  VarName := AvailableVariables.Items[AvailableVariables.ItemIndex];
  if (LocalEnvironment <> nil) and (LocalEnvironment.IndexOf(VarName) >= 0) then
  begin
    with TQREvEmbeddedFunction(TQREvElementWrapper(LocalEnvironment.Element(VarName)).EmbeddedFunction) do
      VariableValue.Caption := Expression;
  end else
    with TQREvEmbeddedFunction(TQREvElementWrapper(QRGlobalEnvironment.Element(VarName)).EmbeddedFunction) do
      VariableValue.Caption := Expression;
end;


procedure TQRExpressionBuilder.ModifyVariablesClick(Sender: TObject);
begin
  EditEnvironment(LocalEnvironment, true, self);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲1区2区3区视频| 日韩网站在线看片你懂的| 欧美国产禁国产网站cc| 国产伦精品一区二区三区免费| 日韩视频永久免费| 韩国一区二区视频| 中文一区二区在线观看| 不卡av在线免费观看| 136国产福利精品导航| 欧美艳星brazzers| 免费成人在线视频观看| 精品国产乱码久久久久久老虎| 国产专区综合网| 亚洲视频1区2区| 337p亚洲精品色噜噜噜| 国内精品免费**视频| 成人欧美一区二区三区黑人麻豆| 欧美性猛交xxxx乱大交退制版| 视频在线观看91| 亚洲国产精品t66y| 欧美日韩一级视频| 国产高清成人在线| 亚洲综合免费观看高清完整版| 日韩欧美一区二区在线视频| 成人免费看的视频| 亚洲自拍偷拍欧美| 精品久久久三级丝袜| www.爱久久.com| 美女在线视频一区| 亚洲美女偷拍久久| 26uuu色噜噜精品一区| 在线精品视频免费播放| 国产一区二区中文字幕| 亚洲一级二级三级在线免费观看| 精品粉嫩超白一线天av| 99v久久综合狠狠综合久久| 青草av.久久免费一区| 亚洲精选在线视频| 久久久亚洲欧洲日产国码αv| 欧美亚洲日本一区| www.欧美日韩| 国产酒店精品激情| 男人的天堂亚洲一区| 亚洲欧洲精品一区二区三区不卡| 日韩一区二区三区四区五区六区| 99精品热视频| 国产成人亚洲综合a∨婷婷| 天堂va蜜桃一区二区三区漫画版| 国产精品污网站| 欧美成人女星排名| 欧美精品v国产精品v日韩精品 | 国产精品久久久久久亚洲伦| 欧美亚洲自拍偷拍| 99国产精品99久久久久久| 国产一区二区在线观看视频| 日日骚欧美日韩| 一区二区三区蜜桃网| 欧美国产精品一区| 久久久亚洲欧洲日产国码αv| 91精品国产手机| 欧日韩精品视频| 日本高清无吗v一区| 99久久国产综合色|国产精品| 国产一区二区三区香蕉| 久久国产人妖系列| 日韩在线播放一区二区| 亚洲午夜在线视频| 亚洲美女精品一区| 亚洲日本在线看| 中文字幕日韩av资源站| ...中文天堂在线一区| 国产女人18水真多18精品一级做| 久久综合成人精品亚洲另类欧美| 538在线一区二区精品国产| 欧美色爱综合网| 欧美日本在线一区| 成人午夜大片免费观看| 国产91综合网| 成人免费黄色在线| 99久久伊人网影院| 一本高清dvd不卡在线观看| 色综合色综合色综合色综合色综合 | 亚洲老司机在线| 18欧美亚洲精品| 亚洲免费观看高清完整版在线观看 | 成人一区二区三区视频| 国产成人啪免费观看软件| 国产一区二三区| av一区二区三区黑人| 91久久精品一区二区三| 欧美日韩成人综合| 精品国产免费视频| 亚洲国产精品av| 一区二区三区欧美日| 亚洲国产精品人人做人人爽| 亚洲自拍与偷拍| 麻豆精品国产传媒mv男同| 国产成人亚洲综合a∨猫咪| av不卡免费在线观看| 欧美怡红院视频| 精品sm在线观看| ㊣最新国产の精品bt伙计久久| 亚洲视频一区二区在线| 亚洲bdsm女犯bdsm网站| 国内精品伊人久久久久影院对白| www.日韩大片| 91精品国产综合久久久久久 | 久久av资源站| www.日韩大片| 欧美精品久久一区二区三区| 精品国产乱码久久久久久老虎| 国产精品乱码一区二区三区软件 | 丝袜国产日韩另类美女| 国产一区二区三区在线观看精品| av中文字幕亚洲| 在线综合视频播放| 国产精品私人自拍| 性欧美大战久久久久久久久| 国产一本一道久久香蕉| 欧美中文字幕一区| 久久久五月婷婷| 亚洲午夜久久久久久久久久久| 久久精品国产一区二区| 在线观看日韩一区| 久久免费精品国产久精品久久久久| 亚洲免费视频中文字幕| 国产一区二区导航在线播放| 欧美三级中文字幕在线观看| 欧美激情在线一区二区三区| 视频一区国产视频| 91麻豆视频网站| 国产亚洲欧美日韩日本| 日精品一区二区三区| 91美女在线视频| 久久久国产综合精品女国产盗摄| 亚洲国产日韩一级| 成人av资源站| 国产亚洲一本大道中文在线| 亚洲国产欧美一区二区三区丁香婷| 国产福利不卡视频| 日韩一区二区电影| 亚洲午夜影视影院在线观看| 成人黄色免费短视频| 日韩一级片在线播放| 亚洲成人免费在线观看| 色综合视频在线观看| 国产精品视频在线看| 国产电影精品久久禁18| 欧美videossexotv100| 视频一区在线播放| 欧美日韩精品一区二区三区四区| 综合久久国产九一剧情麻豆| 成人免费精品视频| 国产精品欧美久久久久无广告| 激情综合色播激情啊| 日韩三级视频在线看| 日本欧美一区二区三区乱码| 欧美唯美清纯偷拍| 亚洲国产aⅴ成人精品无吗| 97久久精品人人澡人人爽| 欧美韩日一区二区三区| 风间由美一区二区三区在线观看| 久久综合久久鬼色中文字| 精一区二区三区| 精品精品国产高清一毛片一天堂| 日韩av在线发布| 日韩欧美一区二区不卡| 久久国产精品无码网站| www日韩大片| 国产精品一区二区视频| 久久久久国产一区二区三区四区| 韩国三级在线一区| 欧美韩国日本综合| 99久久国产综合精品麻豆| 最新热久久免费视频| 欧美在线视频你懂得| 亚洲超碰精品一区二区| 欧美一区二区三区小说| 狠狠v欧美v日韩v亚洲ⅴ| 久久久久久日产精品| 成人免费毛片app| 一区二区三区日韩欧美| 538prom精品视频线放| 九色|91porny| 国产精品伦理在线| 欧美亚日韩国产aⅴ精品中极品| 图片区小说区国产精品视频| 精品欧美乱码久久久久久1区2区 | 亚洲成人自拍偷拍| 欧美一区二区精品在线| 国产精品一区二区男女羞羞无遮挡| 国产拍欧美日韩视频二区| 色综合久久综合网97色综合| 亚洲国产成人av网| 久久伊人中文字幕| 99九九99九九九视频精品| 午夜欧美电影在线观看| 精品久久人人做人人爱| 色综合久久中文字幕综合网| 日韩av中文字幕一区二区三区|