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

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

?? formcolselect.pas

?? 控件下載 控件下載 控件下載 控件下載 控件下載
?? PAS
字號:
{******************************************************************************}
{ @UnitName    : FormColSelect                                                 }
{ @Project     : PDF                                                           }
{ @Copyright   : kingjit@163.com                                               }
{ @Author      : jacky                                                         }
{ @CreateDate  : 2005-11-09 22:21:09                                           }
{ @LastUpdate  : 2005-11-09 22:21:09 by jacky                                  }
{ @Description :                                                               }
{ @Comment     :                                                               }
{ @History     :                                                               }
{jacky xu                                                                      }
{QQ:112876992                                                                  }
{Email:kingjit@163.com                                                         }
{MSN:kingjit@163.com                                                           }
{skype:kingjit@163.com                                                         }
{http: www.kingjit.com                                                         }
{******************************************************************************}
unit FormColSelect;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGridEh, CheckLst, Buttons, siComp, ComCtrls,
  ExtCtrls, Math;

type
  PColParams = ^TColParams;
  TColParams = record //如有需求可以在這里增加字段以實現更多功能
    FieldName: string; //字段名
    Title: string; //顯示標題
    Index: integer; //位置
    Visible: Boolean; //是否可見
    ReadOnly: Boolean; //只讀否
    Sort: Boolean; //是否可排序,設置TitleButton
    SumListType: TFooterValueType; //合計的類型
    SumListField: string; //合計字段值
    SumListValue: string; //合計文字值
    P: TColumnEh; //此處放的是TColumnEh的指針
  end;
  TP = ^TColParams;
type
  TFrmColSelect = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    CLB: TCheckListBox;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ChkSumList: TCheckBox;
    UpDownFix: TUpDown;
    EdtFix: TEdit;
    Label1: TLabel;
    ChkMultiTitle: TCheckBox;
    Panel4: TPanel;
    SpeedButton6: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton7: TSpeedButton;
    EdtFieldName: TLabeledEdit;
    EdtFieldTitle: TLabeledEdit;
    ChkSort: TCheckBox;
    ChkReadOnly: TCheckBox;
    Label2: TLabel;
    CbxSumType: TComboBox;
    EditSumField: TComboBox;
    EditSumValue: TLabeledEdit;
    Label3: TLabel;
    BitBtn3: TBitBtn;
    chkAutoColWidth: TCheckBox;
    ColorBox1: TColorBox;
    ColorBox2: TColorBox;
    procedure Button2Click(Sender: TObject);
    procedure CLBDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure CLBClick(Sender: TObject);
    procedure OnSaveFieldValue(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure CbxSumTypeChange(Sender: TObject);
  private
    ColArray: array of TColParams;
    OldIndex: Integer;
    { Private declarations }
  public
    Grid: TDBGridEH;
    procedure LoadData;
    procedure SaveData;
    procedure SaveFieldValue;
    { Public declarations }
  end;

procedure ShowGridColEditor(Grid: TDBGridEH);

var
  FrmColSelect: TFrmColSelect;

implementation

{$R *.dfm}

procedure ShowGridColEditor(Grid: TDBGridEH);
begin
  //顯示GRID的編輯窗口
  if not Assigned(Grid) or not Assigned(Grid.DataSource) or not
    Assigned(Grid.DataSource.DataSet) then
    exit;

  if not Assigned(FrmColSelect) then
    FrmColSelect := TFrmColSelect.Create(Application);
  try
    FrmColSelect.Grid := Grid;
    FrmColSelect.ShowModal;
  finally
    FreeAndNil(FrmColSelect);
  end;
end;

procedure TFrmColSelect.Button2Click(Sender: TObject);
begin
  SaveData;
  ModalResult := mrOk;
end;

procedure TFrmColSelect.CLBDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if Sender = Source then
  begin
    Accept := true;
    OldIndex := TCheckListBox(sender).ItemIndex;
  end
  else
    OldIndex := -1;
end;

procedure TFrmColSelect.SpeedButton1Click(Sender: TObject);
var
  i: integer;
begin
  if CLB.ItemIndex > 0 then
  begin
    i := clb.ItemIndex - 1;
    clb.Items.Move(clb.ItemIndex, i);
    CLB.ItemIndex := i;
    CLB.Selected[i];
  end;
end;

procedure TFrmColSelect.SpeedButton2Click(Sender: TObject);
var
  i: integer;
begin
  if CLB.ItemIndex < CLB.Count - 1 then
  begin
    i := clb.ItemIndex + 1;
    clb.Items.Move(clb.ItemIndex, i);
    CLB.ItemIndex := i;
    CLB.Selected[i];
  end;
end;

procedure TFrmColSelect.CheckBox1Click(Sender: TObject);
begin //此處代碼用于保存界面的設置到INI文件,
  //但是我界面的保存另有功能實現
  //因此就沒有用此功能了,改一改應該就可以用到你們的工程中了
  {
  var
    Ini: TIniFile;
  begin
    if CheckBox1.Checked then
      Grid.SaveGridLayoutIni(ExtractFilePath(Application.ExeName) + '\Grid.ini',
        Grid.Owner.ClassName + '$' + Grid.Name, true)
    else
    begin
      Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\Grid.ini');
      try
        Ini.EraseSection(Grid.Owner.ClassName + '$' + Grid.Name);
      finally
        Ini.Free;
      end;
    end; }
end;

procedure TFrmColSelect.FormShow(Sender: TObject);
begin
  LoadData;
end;

procedure TFrmColSelect.LoadData;
var
  i: integer;
begin //裝入GRID的數據到界面
  //第一步,取全局參數
  ChkSumList.Checked := Grid.FooterRowCount > 0;
  ChkMultiTitle.Checked := Grid.UseMultiTitle;
  EdtFix.Text := inttostr(Grid.FrozenCols);
  UpDownFix.Max := Grid.Columns.Count - 1;
  UpDownFix.Position := Grid.FrozenCols;
  ColorBox1.Selected := Grid.OddRowColor;
  ColorBox2.Selected := Grid.EvenRowColor;
  chkAutoColWidth.Checked := Grid.AutoFitColWidths;
  //從GRID中裝入COLUMNS信息
  CLB.Clear;
  SetLength(ColArray, Grid.Columns.Count);
  for i := 0 to Grid.Columns.Count - 1 do
  begin
    ColArray[i].FieldName := Grid.Columns.Items[i].FieldName;
    ColArray[i].Index := Grid.Columns.Items[i].Index;
    ColArray[i].Visible := Grid.Columns.Items[i].Visible;
    ColArray[i].ReadOnly := Grid.Columns.Items[i].ReadOnly;
    ColArray[i].Sort := Grid.Columns.Items[i].Title.TitleButton;
    ColArray[i].Title := Grid.Columns.Items[i].Title.Caption;
    ColArray[i].SumListType := Grid.Columns.Items[i].Footer.ValueType;
    ColArray[i].SumListField := Grid.Columns.Items[i].Footer.FieldName;
    ColArray[i].SumListValue := Grid.Columns.Items[i].Footer.Value;
    ColArray[i].p := Grid.Columns.Items[i];

    CLB.Items.AddObject(ColArray[i].Title, @(ColArray[i]));
    clb.Checked[i] := ColArray[i].Visible;
    //填充cmbFieldName的字段選項
    EditSumField.Items.Add(Grid.Columns.Items[i].FieldName);
  end;
  if CLB.Items.Count > 0 then
  begin
    CLB.ItemIndex := 0;
    clb.Selected[0] := True;
    CLBClick(nil);
  end;

end;

procedure TFrmColSelect.SaveData;
var
  i: integer;
  p: pColParams;
  c: TColumnEh;
begin //從界面中的設置保存到GRID中
  //保存全局GRID的參數
  Grid.FooterRowCount := IfThen(ChkSumList.Checked, 1, 0);
  Grid.SumList.Active := ChkSumList.Checked;
  Grid.UseMultiTitle := ChkMultiTitle.Checked;
  Grid.FrozenCols := UpDownFix.Position;
  Grid.OddRowColor := ColorBox1.Selected;
  Grid.EvenRowColor := ColorBox2.Selected;
  Grid.AutoFitColWidths := chkAutoColWidth.Checked;

  for i := 0 to CLB.Count - 1 do
  begin
    p := PColParams(CLB.Items.Objects[i]);
    c := p^.P;
    if Assigned(c) then
    begin
      c.Visible := CLB.Checked[i];
      C.Index := i;
      C.ReadOnly := p^.ReadOnly;
      C.Title.Caption := p^.Title;
      C.Title.TitleButton := p^.Sort;
      C.Footer.ValueType := p^.SumListType;
      C.Footer.FieldName := p^.SumListField;
      C.Footer.Value := p^.SumListValue;
    end;
  end;
end;

procedure TFrmColSelect.SpeedButton6Click(Sender: TObject);
begin
  if Clb.ItemIndex >= 0 then
  begin
    clb.Items.Move(clb.ItemIndex, 0);
    CLB.Selected[0];
  end;
end;

procedure TFrmColSelect.SpeedButton7Click(Sender: TObject);
begin
  if Clb.ItemIndex >= 0 then
  begin
    clb.Items.Move(clb.ItemIndex, CLB.Count - 1);
    CLB.Selected[CLB.Count - 1];
  end;
end;

procedure TFrmColSelect.CLBClick(Sender: TObject);
var
  i: integer;
  p: PColParams;
  c: TColParams;
begin
  if CLB.ItemIndex >= 0 then
  begin
    i := clb.ItemIndex;
    P := PColParams(CLB.Items.Objects[i]);
    case P^.SumListType of
      fvtNon: CbxSumType.ItemIndex := 0;
      fvtStaticText: CbxSumType.ItemIndex := 1;
      fvtFieldValue: CbxSumType.ItemIndex := 2;
      fvtAvg: CbxSumType.ItemIndex := 3;
      fvtCount: CbxSumType.ItemIndex := 4;
      fvtSum: CbxSumType.ItemIndex := 5;
    else
      CbxSumType.ItemIndex := -1;
    end;
    EditSumValue.Text := p.SumListValue;
    EditSumField.ItemIndex := EditSumField.Items.IndexOf(P^.SumListField);
    EdtFieldName.Text := P^.FieldName;
    EdtFieldTitle.Text := P^.Title;
    ChkSort.Checked := P^.Sort;
    ChkReadOnly.Checked := P^.ReadOnly;
    //CLB.Checked[i] := p^.Visible;

  end;
end;

procedure TFrmColSelect.OnSaveFieldValue(Sender: TObject);
begin
  SaveFieldValue;
end;

procedure TFrmColSelect.SaveFieldValue;
var
  i: integer;
  v: TFooterValueType;
  p: PColParams;
begin
  //保存Field部分的設置
  i := CLB.ItemIndex;

  if i >= 0 then
  begin
    p := pColparams(CLB.Items.Objects[i]);
    case CbxSumType.ItemIndex of
      0: v := fvtNon;
      1: v := fvtStaticText;
      2: v := fvtFieldValue;
      3: v := fvtAvg;
      4: v := fvtCount;
      5: v := fvtSum;
      -1: v := fvtNon;
    end;

    p^.SumListType := v;
    p^.SumListField := EditSumField.Text;
    p^.SumListValue := EditSumValue.Text;
    p^.ReadOnly := ChkReadOnly.Checked;
    p^.Sort := ChkSort.Checked;
    p^.Title := EdtFieldTitle.Text;
    p^.Visible := CLB.Checked[i];
  end;

end;

procedure TFrmColSelect.BitBtn3Click(Sender: TObject);
begin
  LoadData;
end;

procedure TFrmColSelect.CbxSumTypeChange(Sender: TObject);
var
  bField, bValue: Boolean; //用這兩個變量來標識字段選擇及文字框是否可用
  p: PColParams;
begin
  case CbxSumType.ItemIndex of
    0:
      begin
        bField := False;
        bValue := False;
      end;
    1:
      begin
        bField := False;
        bValue := True;
      end;
    2:
      begin
        bField := True;
        bValue := False;
      end;
    3:
      begin
        bField := True;
        bValue := False;
      end;
    4:
      begin
        bField := True;
        bValue := False;
      end;
    5:
      begin
        bField := True;
        bValue := False;
      end;
  else
    begin
      bField := False;
      bValue := False;
    end;
  end;
  p := pColParams(CLB.Items.Objects[CLB.ItemIndex]);
  if bField then
    EditSumField.ItemIndex := EditSumField.Items.IndexOf(p^.FieldName);
  EditSumField.Enabled := bField;

  if bValue then
    EditSumValue.Text :=
      p^.SumListValue;
  EditSumValue.Enabled := bValue;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费在线视频| 欧美成人a在线| 国产在线视视频有精品| 午夜精品久久一牛影视| 亚洲精品自拍动漫在线| 国产精品成人一区二区艾草| 国产精品久99| 精品国产乱码久久| 欧美日韩国产综合久久| 欧美日韩中文字幕精品| 欧美精品777| 日韩欧美一级二级| 日韩精品一区二区三区在线 | 日韩欧美国产系列| 日韩三区在线观看| 久久久久久一级片| 成人欧美一区二区三区1314| 亚洲视频一区二区在线| 亚洲一区二区在线观看视频| 欧美三级电影精品| 性做久久久久久久久| 在线亚洲人成电影网站色www| 国产成人精品亚洲777人妖| 国产成人精品免费一区二区| 91性感美女视频| 欧美性受xxxx黑人xyx性爽| 欧美一三区三区四区免费在线看| 日韩无一区二区| 国产欧美日本一区视频| 亚洲一区二区视频| 极品少妇xxxx偷拍精品少妇| 99久久99久久免费精品蜜臀| 欧美色视频一区| 久久精品免视看| 亚洲一区二区三区中文字幕| 国产美女精品人人做人人爽| 欧美体内she精视频| 久久久午夜精品理论片中文字幕| 久久久久久久久蜜桃| 亚洲欧美另类久久久精品| 日韩影视精彩在线| 成人午夜免费电影| 91.xcao| 亚洲国产精品t66y| 美国毛片一区二区| 91首页免费视频| 久久色中文字幕| 午夜影院在线观看欧美| 成人美女在线视频| 精品久久久久一区二区国产| 亚洲精品免费在线观看| 国产超碰在线一区| 欧美一级久久久| 亚洲综合一区在线| 99久久综合狠狠综合久久| 欧美精品乱人伦久久久久久| 亚洲线精品一区二区三区八戒| 精品在线视频一区| 欧美群妇大交群中文字幕| 国产精品成人网| 高清在线不卡av| 欧美videossexotv100| 丝袜脚交一区二区| 欧洲视频一区二区| 亚洲欧美色一区| av一区二区久久| 日本一区二区三区在线不卡| 国产一区二区视频在线播放| 9191成人精品久久| 日本vs亚洲vs韩国一区三区| 欧洲亚洲国产日韩| 一区二区三区**美女毛片| 成人a免费在线看| 国产精品久久夜| youjizz久久| 成人免费在线观看入口| 99re66热这里只有精品3直播 | 亚洲国产欧美在线| 99在线精品观看| 一色屋精品亚洲香蕉网站| 另类小说欧美激情| 91麻豆精品国产| 裸体在线国模精品偷拍| 欧美xxxx老人做受| 国产毛片精品视频| 国产精品美日韩| 97国产一区二区| 亚洲精品日韩一| 91搞黄在线观看| 日日夜夜精品免费视频| 精品奇米国产一区二区三区| 国产精品羞羞答答xxdd| 中文字幕乱码久久午夜不卡| 99国产精品久久久久久久久久 | 99视频一区二区| 久久久三级国产网站| 国产麻豆精品一区二区| 国产精品你懂的| 色婷婷精品大在线视频| 亚洲第一成人在线| 日韩午夜电影av| 欧美网站大全在线观看| 一区2区3区在线看| 日韩午夜在线观看视频| 丁香网亚洲国际| 婷婷开心久久网| 久久久久久久av麻豆果冻| 色噜噜狠狠色综合欧洲selulu| 日韩精品欧美精品| 欧美国产激情一区二区三区蜜月| 91浏览器打开| 韩国三级电影一区二区| 亚洲精品乱码久久久久久| 日韩欧美专区在线| 日韩码欧中文字| 一区二区中文视频| 欧美色国产精品| 国产高清在线观看免费不卡| 亚洲精品国产第一综合99久久| 91精品国产入口在线| 成人激情小说网站| 久久精品国产**网站演员| 亚洲人成伊人成综合网小说| 日韩视频一区在线观看| 色哟哟精品一区| 国产91高潮流白浆在线麻豆| 亚洲一区二区欧美| 中文字幕在线观看一区二区| 欧美videos中文字幕| 欧美日本国产一区| 91在线你懂得| 成人一道本在线| 狠狠色狠狠色综合系列| 亚洲国产精品久久人人爱| 国产精品日产欧美久久久久| 日韩精品一区二区三区视频播放| 日本电影欧美片| 99视频热这里只有精品免费| 国产精品亚洲一区二区三区妖精 | 欧美做爰猛烈大尺度电影无法无天| 极品销魂美女一区二区三区| 五月激情综合婷婷| 亚洲图片一区二区| 一二三区精品视频| **性色生活片久久毛片| 国产女人水真多18毛片18精品视频| 日韩精品一区二区在线| 91精品久久久久久蜜臀| 欧美理论电影在线| 欧美日产在线观看| 欧美精品乱人伦久久久久久| 欧美日韩在线播放| 欧美男男青年gay1069videost | 制服丝袜激情欧洲亚洲| 欧美婷婷六月丁香综合色| 在线观看91视频| 精品1区2区3区| 在线不卡欧美精品一区二区三区| 欧美色偷偷大香| 欧美日韩国产精品成人| 5858s免费视频成人| 日韩一级视频免费观看在线| 日韩一级黄色片| 国产网站一区二区三区| 中文字幕精品一区二区三区精品| 欧美国产日本视频| 一区二区三区在线观看动漫| 亚洲综合偷拍欧美一区色| 丝袜诱惑亚洲看片| 麻豆国产精品官网| 成人性视频网站| 91官网在线观看| 日韩区在线观看| 中文字幕第一区二区| 一区二区三区成人| 男女性色大片免费观看一区二区| 国产精品综合av一区二区国产馆| 激情国产一区二区| 成人国产一区二区三区精品| 欧美亚洲免费在线一区| 欧美成人性战久久| 成人欧美一区二区三区黑人麻豆| 亚洲综合在线观看视频| 老司机精品视频一区二区三区| 国产成人精品网址| 欧美四级电影在线观看| 2023国产一二三区日本精品2022| 国产精品麻豆99久久久久久| 午夜精品成人在线| 国产ts人妖一区二区| 精品视频免费在线| 国产欧美一区二区三区网站| 亚洲综合小说图片| 成熟亚洲日本毛茸茸凸凹| 欧美日本高清视频在线观看| 国产日韩精品一区二区三区在线| 亚洲香肠在线观看| av不卡免费在线观看| 日韩免费在线观看| 亚洲成人一区二区|