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

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

?? qbnddlg.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
字號:
{*******************************************************}
{                                                       }
{       Delphi Visual Component Library                 }
{                                                       }
{       Copyright (c) 1995 Borland International        }
{       Portions copyright (c) 1997 Master-Bank         }
{                                                       }
{*******************************************************}

unit QBndDlg;

interface

{$I RX.INC}

uses
  SysUtils, {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF}
  Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB
  {$IFNDEF RX_D4}, DBTables {$ENDIF};

type
  TQueryParamsDialog = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    ParamValue: TEdit;
    Label2: TLabel;
    NullValue: TCheckBox;
    OkBtn: TButton;
    CancelBtn: TButton;
    Label3: TLabel;
    TypeList: TComboBox;
    ParamList: TListBox;
    HelpBtn: TButton;
    procedure ParamListChange(Sender: TObject);
    procedure TypeListChange(Sender: TObject);
    procedure ParamValueExit(Sender: TObject);
    procedure NullValueClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OkBtnClick(Sender: TObject);
    procedure HelpBtnClick(Sender: TObject);
  private
    InitList: TParams;
    PressedOK: Boolean;
    InValueExit: Boolean;
    InParamChange: Boolean;
    procedure CheckValue;
    procedure Edit;
    procedure Unbind;
  end;

function EditQueryParams(DataSet: TDataSet; List: TParams;
  AHelpContext: THelpContext {$IFDEF RX_D4} = 0 {$ENDIF}): Boolean;

implementation

uses DbConsts, {$IFDEF RX_D3} BdeConst, {$ENDIF} VclUtils;

{$R *.DFM}

var
  FieldTypes: array[TFieldType] of String;

procedure FillFieldTypes;
var
  ParamString: string;
  I: Integer;
  J: TFieldType;
begin
  for J := Low(TFieldType) to High(TFieldType) do
    FieldTypes[J] := EmptyStr;
  ParamString := ResStr(SDataTypes);
  J := Low(TFieldType);
  I := 1;
  while I <= Length(ParamString) do begin
    FieldTypes[J] := ExtractFieldName(ParamString, I);
    Inc(J);
  end;
end;

function GetFieldType(const Value: string): TFieldType;
begin
  for Result := Low(TFieldType) to High(TFieldType) do
    if (FieldTypes[Result] <> '') and (FieldTypes[Result] = Value) then Exit;
  Result := ftUnknown;
end;

procedure ClearFieldTypes;
var
  I: TFieldType;
begin
  for I := Low(TFieldType) to High(TFieldType) do begin
    //DisposeStr(FieldTypes[I]);
    FieldTypes[I] := EmptyStr;
  end;
end;

procedure DoneQBind; far;
begin
  ClearFieldTypes;
end;

function EditQueryParams(DataSet: TDataSet; List: TParams;
  AHelpContext: THelpContext {$IFDEF RX_D4} = 0 {$ENDIF}): Boolean;
begin
  with TQueryParamsDialog.Create(Application) do
  try
    HelpContext := AHelpContext;
    if HelpContext = 0 then begin
      HelpBtn.Visible := False;
      OkBtn.Left := OkBtn.Left + HelpBtn.Width div 2;
      CancelBtn.Left := CancelBtn.Left + HelpBtn.Width div 2;
    end;
    if (csDesigning in DataSet.ComponentState) then
      Caption := Format(ResStr(SParamEditor),
{$IFDEF RX_D3}
  {$IFDEF CBUILDER}
        [DataSet.Owner.Name, '->', DataSet.Name]);
  {$ELSE}
    {$IFDEF RX_D4}
        [DataSet.Owner.Name, '.', DataSet.Name]);
    {$ELSE}
        [DataSet.Owner.Name, DataSet.Name]);
    {$ENDIF}
  {$ENDIF}
{$ELSE}
        [DataSet.Owner.Name, DataSet.Name]);
{$ENDIF}
    InitList := List;
    Edit;
    Result := PressedOk;
  finally
    Free;
  end;
end;

procedure TQueryParamsDialog.Edit;
var
  I: Integer;
  J: TFieldType;
begin
  for J := Low(TFieldType) to High(TFieldType) do
    if (FieldTypes[J] <> '') and (FieldTypes[J] <> '') then TypeList.Items.Add(FieldTypes[J]);
  if InitList.Count = 0 then begin
    ParamValue.Enabled := False;
    NullValue.Enabled := False;
    TypeList.Enabled := False;
    ParamList.Enabled := False;
  end
  else begin
    for I := 0 to InitList.Count - 1 do
      if ParamList.Items.IndexOf(InitList[I].Name) = -1 then
        ParamList.Items.Add(InitList[I].Name);
    ParamList.ItemIndex := 0;
    ParamListChange(Self);
    ActiveControl := OkBtn;
  end;
  PressedOk := ShowModal = mrOK;
end;

procedure TQueryParamsDialog.ParamListChange(Sender: TObject);
begin
  InParamChange := True;
  try
    with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do
    begin
      if (FieldTypes[DataType] <> '') and (FieldTypes[DataType] <> '') then begin
        with TypeList do ItemIndex := Items.IndexOf(FieldTypes[DataType]);
        if Bound then ParamValue.Text := AsString
        else ParamValue.Text := '';
      end
      else begin
        TypeList.ItemIndex := -1;
        ParamValue.Text := '';
      end;
      NullValue.Checked := IsNull;
    end;
  finally
    InParamChange := False;
  end;
end;

procedure TQueryParamsDialog.TypeListChange(Sender: TObject);
begin
  with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do
  begin
    DataType := GetFieldType(TypeList.Text);
    ParamValue.Text := '';
    NullValue.Checked := IsNull;
  end;
end;

procedure TQueryParamsDialog.ParamValueExit(Sender: TObject);
begin
  if InValueExit or (ActiveControl = CancelBtn) then Exit;
  InValueExit := True;
  try
    if ParamValue.Text <> '' then NullValue.Checked := False;
    if (TypeList.Text = '') and TypeList.CanFocus then begin
      TypeList.SetFocus;
      raise Exception.Create(ResStr(SInvalidParamFieldType));
    end;
    if ParamValue.Text = '' then
      with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do
      begin
        if NullValue.Checked then Clear
        else Unbind;
      end
    else CheckValue;
  finally
    InValueExit := False;
  end;
end;

procedure TQueryParamsDialog.CheckValue;
begin
  try
    with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do begin
      if (DataType in [ftDate, ftTime, ftDateTime]) and
        (CompareText(ParamValue.Text, 'Now') = 0) then
      begin
        case DataType of
          ftDate: Text := DateToStr(SysUtils.Date);
          ftTime: Text := TimeToStr(SysUtils.Time);
          ftDateTime: Text := DateTimeToStr(SysUtils.Now);
        end;
      end
      else Text := ParamValue.Text;
    end;
  except
    with ParamValue do begin
      if CanFocus then SetFocus;
      SelectAll;
    end;
    raise;
  end;
end;

procedure TQueryParamsDialog.Unbind;
begin
  with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do
  begin
    AsInteger := 1;
    DataType := GetFieldType(TypeList.Text);
    Bound := False;
  end;
end;

procedure TQueryParamsDialog.NullValueClick(Sender: TObject);
begin
  if InParamChange then Exit;
  if NullValue.Checked then
    with InitList.ParamByName(ParamList.Items[ParamList.ItemIndex]) do
    begin
      Clear;
      ParamValue.Text := '';
    end
  else Unbind;
end;

procedure TQueryParamsDialog.OkBtnClick(Sender: TObject);
begin
  if not TypeList.Enabled then Exit;
  try
    ParamValueExit(Sender);
  except
    ModalResult := 0;
    raise;
  end;
end;

procedure TQueryParamsDialog.HelpBtnClick(Sender: TObject);
begin
  Application.HelpContext(HelpContext);
end;

procedure TQueryParamsDialog.FormCreate(Sender: TObject);
begin
{$IFNDEF WIN32}
  Font.Style := [fsBold];
{$ENDIF}
end;

initialization
  FillFieldTypes;
{$IFDEF WIN32}
finalization
  DoneQBind;
{$ELSE}
  AddExitProc(DoneQBind);
{$ENDIF}
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文在线免费一区三区高中清不卡| 粉嫩av亚洲一区二区图片| 国产黄人亚洲片| 亚洲欧洲一区二区在线播放| 国内久久婷婷综合| 国产性色一区二区| 高清成人在线观看| 国产精品一区二区免费不卡| 成人欧美一区二区三区在线播放| 国产福利一区在线| 伊人开心综合网| 精品一区二区久久| 国产精品久久久久桃色tv| 亚洲欧美日韩中文播放| 亚洲国产精品欧美一二99| 国产一区二区三区四区在线观看| 欧美性一区二区| 热久久国产精品| 欧美日本免费一区二区三区| 久久精品久久99精品久久| 日韩毛片在线免费观看| 欧美一区二区视频在线观看2020| 亚洲日本一区二区| 亚洲综合一二区| 国产精品美女久久久久aⅴ| 91精品婷婷国产综合久久性色| 一区二区在线观看视频| 一区二区三区中文字幕| 国产偷国产偷精品高清尤物 | 奇米影视一区二区三区| 免费美女久久99| av中文字幕在线不卡| 日韩精品一级二级 | 成人av在线播放网站| 视频一区视频二区在线观看| 日韩和欧美的一区| 国产一区二区电影| 色av成人天堂桃色av| 成人免费视频一区| 亚洲成人高清在线| 亚洲国产精品久久人人爱蜜臀| 国产亚洲自拍一区| 亚洲国产另类av| 亚洲精品中文在线| 裸体一区二区三区| 亚洲一二三区在线观看| 国内精品伊人久久久久av一坑| 日本aⅴ亚洲精品中文乱码| 国产精品系列在线播放| 国产精品99久久久久久似苏梦涵| 日韩va欧美va亚洲va久久| 久久久天堂av| 一本色道**综合亚洲精品蜜桃冫| 洋洋av久久久久久久一区| 美女国产一区二区三区| 欧美在线观看18| 9191成人精品久久| 欧美一区二区私人影院日本| 亚洲色图清纯唯美| 亚洲尤物视频在线| 99麻豆久久久国产精品免费| 精品美女一区二区三区| 欧美精品一区二区久久婷婷| 久久久久97国产精华液好用吗| 日韩视频免费观看高清完整版在线观看 | 欧美精品一区二区三区久久久 | 精品一区二区三区日韩| 色综合天天天天做夜夜夜夜做| 亚洲天堂免费看| 亚洲女同女同女同女同女同69| 亚洲欧洲一区二区在线播放| 国产精品福利av| 亚洲色图欧美偷拍| 成人高清视频在线| 国产精品灌醉下药二区| 国产精品一区二区x88av| 精品国产一区二区三区忘忧草| 国产人久久人人人人爽| 国产精品萝li| 成人黄色av电影| 欧美在线观看禁18| 亚洲狠狠爱一区二区三区| 免费视频最近日韩| 日韩精品一区二区三区在线观看 | 91.com视频| 日本一区中文字幕| 精品动漫一区二区三区在线观看| 中文字幕国产精品一区二区| 日韩av中文字幕一区二区| 欧美日韩国产高清一区二区三区 | 亚洲欧美日韩国产综合| 91色在线porny| 99久久精品免费| 日韩一区二区三区在线视频| 美国精品在线观看| 欧美—级在线免费片| 日韩精品久久久久久| 国产91色综合久久免费分享| 自拍偷拍国产精品| 国产精品一区二区无线| 国产精品久久久爽爽爽麻豆色哟哟| 视频一区二区中文字幕| 成人精品gif动图一区| 自拍偷拍欧美激情| 在线播放中文一区| 欧美一区二区三区在| 黄色资源网久久资源365| 国产精品五月天| 欧美高清视频不卡网| 亚洲三级理论片| 欧美一区二区三区啪啪| 成人不卡免费av| 久久久久综合网| 免费黄网站欧美| 中文字幕在线不卡一区| 欧美精品在线观看一区二区| 国产91丝袜在线观看| 五月激情丁香一区二区三区| 色婷婷精品大在线视频| 国产精品久久午夜| 91精品欧美福利在线观看| 成人爱爱电影网址| 另类小说图片综合网| 亚洲国产va精品久久久不卡综合| 色综合咪咪久久| 久久66热re国产| 亚洲18影院在线观看| 中文天堂在线一区| 精品精品国产高清a毛片牛牛| 蜜桃视频一区二区三区在线观看 | 国产精品456露脸| 丝袜美腿亚洲一区二区图片| 中文字幕一区二区视频| 色综合色综合色综合色综合色综合 | 免费精品视频在线| 亚洲成人激情av| 亚洲乱码日产精品bd| 欧美国产一区视频在线观看| caoporm超碰国产精品| 亚洲欧洲国产日本综合| 精品88久久久久88久久久| 欧美久久久久久久久久| 久久成人麻豆午夜电影| 亚洲高清久久久| 亚洲三级电影网站| 亚洲精品日日夜夜| 欧美一区二区三区影视| 欧美私模裸体表演在线观看| 91麻豆国产精品久久| 97超碰欧美中文字幕| jlzzjlzz亚洲女人18| 北岛玲一区二区三区四区| 丁香天五香天堂综合| 成人免费视频国产在线观看| 国产激情视频一区二区三区欧美| 亚洲欧美色一区| 亚洲女人小视频在线观看| 亚洲精品视频免费看| 亚洲美女区一区| 亚洲国产综合人成综合网站| 欧美成人乱码一区二区三区| www.性欧美| 色综合久久99| 欧美三片在线视频观看| 国产精品一区二区久久不卡| 综合激情成人伊人| 欧美成人video| 国产婷婷一区二区| 《视频一区视频二区| 日韩视频一区在线观看| 久久久久久影视| 自拍偷拍国产亚洲| 婷婷成人综合网| 亚洲欧美综合色| 精品日韩一区二区三区| 国产欧美一区在线| 91精品国产综合久久精品app | 久久免费电影网| 欧美性受xxxx| 91精品国产综合久久福利| a美女胸又www黄视频久久| 91精品1区2区| 日韩欧美资源站| 欧美日韩一级二级| 日韩免费性生活视频播放| 亚洲国产高清aⅴ视频| 欧美一区二区三区免费在线看 | 欧美精品 日韩| 国产三级久久久| 亚洲国产成人av网| 丰满少妇在线播放bd日韩电影| 欧美aaaaa成人免费观看视频| 亚洲婷婷综合久久一本伊一区| 国产视频一区不卡| 亚洲一区二区四区蜜桃| 国产成人精品www牛牛影视| 一本一道波多野结衣一区二区| 成人a区在线观看| 5858s免费视频成人| 国产精品欧美一区二区三区|