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

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

?? qldbcstvw.pas

?? 企業ERP管理系統
?? PAS
字號:

 
unit QLDBCstVw;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Buttons, StdCtrls, CheckLst, DB;

type
  TFieldsPickForm = class (TForm)
    bbtCheckAll: TBitBtn;
    bbtMoveDown: TBitBtn;
    bbtMoveUp: TBitBtn;
    Bevel1: TBevel;
    BitBtn1: TBitBtn;
    btnCancel: TButton;
    btnOK: TButton;
    clbFieldList: TCheckListBox;
    Label1: TLabel;
    procedure bbtCheckAllClick(Sender: TObject);
    procedure bbtMoveDownClick(Sender: TObject);
    procedure bbtMoveUpClick(Sender: TObject);
    procedure clbFieldListDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure clbFieldListDragOver(Sender, Source: TObject; X, Y: Integer; 
            State: TDragState; var Accept: Boolean);
    procedure clbFieldListDrawItem(Control: TWinControl; Index: Integer; Rect: 
            TRect; State: TOwnerDrawState);
    procedure clbFieldListEndDrag(Sender, Target: TObject; X, Y: Integer);
    procedure clbFieldListMouseDown(Sender: TObject; Button: TMouseButton; 
            Shift: TShiftState; X, Y: Integer);
  private
    FDragItemIndex: Integer;
  end;
  
  EDBCustomViewDialogError = class (Exception)
  end;

  TDBFieldSelectDialog = class (TComponent)
  private
    FDataSet: TDataSet;
    FAvailableFields: string;
    FSelectedFields: string;
    FTitle: string;
    procedure SetTitle(const Value: string);
  protected
    procedure DoClose(Form: TFieldsPickForm); virtual;
    procedure DoShow(Form: TFieldsPickForm); virtual;
  public
    function Execute: Boolean; virtual;
  published
    property DataSet: TDataSet read FDataSet write FDataSet;
    property AvailableFields: string read FAvailableFields write FAvailableFields;
    property SelectedFields: string read FSelectedFields write FSelectedFields;
    property Title: string read FTitle write SetTitle;
  end;

  TQLDBCustomViewDialog = class (TDBFieldSelectDialog)
  protected
  public
    function Execute: Boolean; override;
    procedure Apply;
  end;
  
implementation

uses QLConsts, DBConsts;

{$R *.DFM}

resourcestring
  SDataSetNotSet = 'Missing DataSet property';

{ TFieldsPickForm }

{
******************************* TFieldsPickForm ********************************
}
procedure TFieldsPickForm.bbtCheckAllClick(Sender: TObject);
var
  I: Integer;
  AChecked: Boolean;
begin
  inherited;
  AChecked := TBitBtn(Sender).Tag = 1;
  with clbFieldList do
    for I := 0 to Items.Count - 1 do
      Checked[I] := AChecked;
end;

procedure TFieldsPickForm.bbtMoveDownClick(Sender: TObject);
begin
  inherited;
  with clbFieldList do
    if (ItemIndex >= 0) and (ItemIndex < Items.Count - 1) then
      Items.Exchange(ItemIndex, ItemIndex + 1);
end;

procedure TFieldsPickForm.bbtMoveUpClick(Sender: TObject);
begin
  inherited;
  with clbFieldList do
    if ItemIndex > 0 then
      Items.Exchange(ItemIndex, ItemIndex - 1);
end;

procedure TFieldsPickForm.clbFieldListDragDrop(Sender, Source: TObject; X, Y: 
        Integer);
var
  NewIndex: Integer;
begin
  inherited;
  with TCheckListBox(Sender) do
  begin
    NewIndex := ItemAtPos(Point(X, Y), True);
    Items.Move(ItemIndex, NewIndex);
    ItemIndex := NewIndex;
  end;
end;

procedure TFieldsPickForm.clbFieldListDragOver(Sender, Source: TObject; X, Y: 
        Integer; State: TDragState; var Accept: Boolean);
var
  I: Integer;
  Rect: TRect;
begin
  inherited;
  Accept := False;
  if Source = clbFieldList then
    with TCheckListBox(Sender) do
    begin
      I := ItemAtPos(Point(X, Y), True);
      if I = ItemIndex then I := -1;
      Accept := I >= 0;
      if I <> FDragItemIndex then
      begin
        Rect := ItemRect(FDragItemIndex);
        InvalidateRect(Handle, @Rect, False);
        FDragItemIndex := I;
        if FDragItemIndex >= 0 then
        begin
          Rect := ItemRect(FDragItemIndex);
          InvalidateRect(Handle, @Rect, False);
        end;
      end
    end;
end;

procedure TFieldsPickForm.clbFieldListDrawItem(Control: TWinControl; Index: 
        Integer; Rect: TRect; State: TOwnerDrawState);
var
  AState: TOwnerDrawState;
begin
  inherited;
  AState := State;
  with TCheckListBox(Control) do
  begin
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
    if ([odFocused] * AState = [odFocused]) or
      (Dragging and (Index = FDragItemIndex)) then
      Canvas.DrawFocusRect(Rect);
  end;
end;

procedure TFieldsPickForm.clbFieldListEndDrag(Sender, Target: TObject; X, Y: 
        Integer);
var
  Rect: TRect;
begin
  inherited;
  with TCheckListBox(Sender) do
  begin
    Rect := ItemRect(FDragItemIndex);
    InvalidateRect(Handle, @Rect, False);
  end;
end;

procedure TFieldsPickForm.clbFieldListMouseDown(Sender: TObject; Button: 
        TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Button = mbLeft then
  begin
    clbFieldList.BeginDrag(False);
    FDragItemIndex := clbFieldList.ItemIndex;
  end;
end;

{ TQLDBCustomViewDialog }

procedure DBCustomViewDialogError(const Message: string);
begin
  raise EDBCustomViewDialogError.Create(Message);
end;

{
***************************** TDBFieldSelectDialog *****************************
}
procedure TDBFieldSelectDialog.DoClose(Form: TFieldsPickForm);
begin
end;

procedure TDBFieldSelectDialog.DoShow(Form: TFieldsPickForm);
begin
end;

function TDBFieldSelectDialog.Execute: Boolean;
var
  Form: TFieldsPickForm;
  AvailableList, SelectedList: TList;
  I: Integer;
begin
  Result := False;
  if not Assigned(FDataSet) then
    DBCustomViewDialogError(SDataSetNotSet);
  Form := TFieldsPickForm.Create(Self);
  with Form do
    try
      AvailableList := TList.Create;
      try
        FDataSet.GetFieldList(AvailableList, FAvailableFields);
        SelectedList := TList.Create;
        try
          FDataSet.GetFieldList(SelectedList, FSelectedFields);
          with clbFieldList do
            for I := 0 to FDataSet.Fields.Count - 1 do
              if AvailableList.IndexOf(FDataSet.Fields[I]) >= 0 then
                Checked[Items.AddObject(TField(FDataSet.Fields[I]).DisplayLabel, FDataSet.Fields[I])] :=
                  SelectedList.IndexOf(TField(FDataSet.Fields[I])) >= 0;
        finally
          SelectedList.Free;
        end;
      finally
        AvailableList.Free;
      end;
      Self.DoShow(Form);
      Result := ShowModal = mrOK;
      Self.DoClose(Form);
      if Result then
      begin
        SelectedFields := '';
        AvailableFields := '';
        with clbFieldList do
          for I := 0 to Items.Count - 1 do
          begin
            if AvailableFields = '' then
              AvailableFields := TField(Items.Objects[I]).FieldName
            else AvailableFields := AvailableFields + '; ' + TField(Items.Objects[I]).FieldName;
            if Checked[I] then
              if SelectedFields = '' then
                SelectedFields := TField(Items.Objects[I]).FieldName
              else SelectedFields := SelectedFields + '; ' + TField(Items.Objects[I]).FieldName;
          end;
        Result := True;
      end;
    finally
      Free;
    end;
end;

procedure TDBFieldSelectDialog.SetTitle(const Value: string);
begin
  if FTitle <> Value then
  begin
    FTitle := Value;
  end;
end;

{
***************************** TQLDBCustomViewDialog ******************************
}
procedure TQLDBCustomViewDialog.Apply;
var
  AvailableList: TList;
  SelectedList: TList;
  I: Integer;
begin
  AvailableList := TList.Create;
  try
    DataSet.GetFieldList(AvailableList, AvailableFields);
    SelectedList := TList.Create;
    try
      DataSet.GetFieldList(SelectedList, SelectedFields);
      for I := 0 to AvailableList.Count - 1 do
      begin
        TField(AvailableList[I]).Visible := SelectedList.IndexOf(AvailableList[I]) >= 0;
        TField(AvailableList[I]).Index := I;
      end;
    finally
      SelectedList.Free;
    end;
  finally
    AvailableList.Free;
  end;
end;

function TQLDBCustomViewDialog.Execute: Boolean;
var
  I: Integer;
  AvailableList: TList;
begin
  SelectedFields := '';
  AvailableList := TList.Create;
  try
    DataSet.GetFieldList(AvailableList, AvailableFields);
    for I := 0 to AvailableList.Count - 1 do
      if TField(AvailableList[I]).Visible then
        if SelectedFields = '' then SelectedFields := TField(AvailableList[I]).FieldName
        else SelectedFields := SelectedFields + '; ' + TField(AvailableList[I]).FieldName;
  finally
    AvailableList.Free;
  end;
  Result := inherited Execute;
  if Result then Apply;
end;

end.


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日产一区| 成人黄色片在线观看| 久久精品视频免费| 精品日韩在线观看| 日韩西西人体444www| 欧美日韩中文一区| 国产精品久久久久9999吃药| 91精品国产乱码| 欧美剧在线免费观看网站| 欧美日韩久久一区二区| 欧美午夜理伦三级在线观看| 在线亚洲一区二区| 欧美卡1卡2卡| 精品国产精品网麻豆系列| 久久久久久亚洲综合影院红桃| 欧美不卡在线视频| 欧美国产精品中文字幕| 国产精品第五页| 亚洲国产欧美在线人成| 日精品一区二区三区| 九色|91porny| 国产成人aaaa| 宅男噜噜噜66一区二区66| 欧美中文一区二区三区| 欧美日韩高清一区二区| 精品少妇一区二区三区| 国产精品色呦呦| 一区二区三区不卡在线观看| 亚洲国产精品一区二区www| 奇米888四色在线精品| 国产高清无密码一区二区三区| 99久久亚洲一区二区三区青草| 欧美三区在线观看| 久久综合久久鬼色| 亚洲精品高清在线| 久久国产欧美日韩精品| 97se亚洲国产综合在线| 56国语精品自产拍在线观看| 久久看人人爽人人| 五月天国产精品| 高清成人免费视频| 欧美久久久久中文字幕| 中文字幕巨乱亚洲| 麻豆国产一区二区| 日本高清不卡视频| 欧美激情一区二区三区四区 | 欧美日产在线观看| 国产片一区二区| 日韩黄色片在线观看| www..com久久爱| 精品国产百合女同互慰| 亚洲高清免费观看高清完整版在线观看 | 中文字幕在线视频一区| 日韩精品高清不卡| 91美女片黄在线观看91美女| 精品国产123| 日韩精品亚洲专区| 色94色欧美sute亚洲线路二| 国产欧美日韩中文久久| 日韩国产精品大片| 欧美在线播放高清精品| 国产精品你懂的| 国产91精品免费| 久久一区二区三区四区| 日韩av网站在线观看| 日韩欧美中文字幕精品| 午夜不卡av免费| 在线观看日韩av先锋影音电影院| 国产精品久久久久久久久晋中| 一区二区日韩电影| 国产91在线观看丝袜| 欧美日韩和欧美的一区二区| ...xxx性欧美| 成人av在线观| 国产精品国产三级国产aⅴ入口| 激情综合五月婷婷| 日韩精品一区二区三区中文精品| 天天爽夜夜爽夜夜爽精品视频| 在线观看成人免费视频| 亚洲精品久久久蜜桃| 99久久婷婷国产综合精品电影| 中文字幕一区二区在线播放 | 日韩电影免费一区| 在线播放国产精品二区一二区四区| 亚洲黄色免费电影| 精品视频在线视频| 日本大胆欧美人术艺术动态| 国产精品欧美经典| 亚洲精品久久7777| 在线观看一区二区精品视频| 亚洲女人小视频在线观看| 色综合一个色综合| 亚洲国产视频直播| 777亚洲妇女| 国产在线一区二区| 国产精品视频一区二区三区不卡| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲人成精品久久久久久| 91福利精品视频| 欧美aa在线视频| 久久久欧美精品sm网站| 不卡视频在线看| 天天综合网天天综合色| 久久精品亚洲精品国产欧美| 欧美a一区二区| 久久久久久夜精品精品免费| 丁香桃色午夜亚洲一区二区三区| 亚洲日本成人在线观看| 91精品国产日韩91久久久久久| 成人激情动漫在线观看| 一区二区三区中文字幕| 91精品国产欧美一区二区成人 | 五月天一区二区| 久久亚洲一级片| 91麻豆精品一区二区三区| 午夜精品久久久久久久久久久 | 777a∨成人精品桃花网| 国产麻豆欧美日韩一区| 亚洲老妇xxxxxx| 久久久久久久免费视频了| 色婷婷国产精品久久包臀| 同产精品九九九| 欧美日韩在线播放| 精品一区二区三区的国产在线播放| 国产日韩影视精品| 欧美精三区欧美精三区| 成人午夜电影网站| 老司机精品视频线观看86| 亚洲欧美日韩电影| 亚洲国产电影在线观看| 欧美区视频在线观看| 97精品电影院| 国产精品自在在线| 奇米四色…亚洲| 亚洲成人www| 一区二区三区日韩欧美| 欧美激情一区二区三区四区| 欧美va在线播放| 欧美精品久久天天躁| 欧美在线综合视频| 91丝袜美腿高跟国产极品老师 | 国产成人超碰人人澡人人澡| 夜夜嗨av一区二区三区| 中文字幕av一区二区三区免费看| 制服丝袜亚洲播放| 欧美日韩国产综合一区二区| 99久久婷婷国产精品综合| 国产福利电影一区二区三区| 青青草成人在线观看| 性做久久久久久免费观看欧美| 亚洲黄色在线视频| 亚洲欧美视频在线观看| 中文字幕字幕中文在线中不卡视频| 久久蜜桃一区二区| 精品999久久久| 亚洲精品在线三区| 久久久精品影视| 国产欧美精品一区| 国产精品成人免费在线| 中文字幕一区二区三区视频| 一色桃子久久精品亚洲| 国产精品初高中害羞小美女文| 国产精品久久国产精麻豆99网站| 中文一区二区完整视频在线观看| 国产天堂亚洲国产碰碰| 亚洲国产精品高清| 亚洲三级免费观看| 亚洲国产你懂的| 精品一区二区三区在线播放视频| 国内成人免费视频| www.在线欧美| 在线观看一区日韩| 日韩欧美中文字幕公布| 日韩免费在线观看| 国产色综合一区| 亚洲精品视频一区| 日韩成人免费在线| 丁香婷婷综合激情五月色| 一本大道久久a久久综合婷婷| 欧美日韩在线三级| 亚洲天堂2014| 天天色综合成人网| 粉嫩一区二区三区在线看| 色综合一区二区三区| 欧美日本在线看| 国产午夜精品一区二区三区视频| 亚洲欧美另类图片小说| 日韩**一区毛片| av一二三不卡影片| 欧美一区二区啪啪| 国产精品丝袜在线| 亚洲成人三级小说| 成人综合在线观看| 欧美精品久久久久久久多人混战| 久久婷婷综合激情| 亚洲不卡在线观看| 成人亚洲精品久久久久软件| 欧美精品日韩精品| 亚洲天堂av一区| 国产成人自拍网|