• 通用下拉选择框


    object FormChoose: TFormChoose
      Left = 331
      Top = 269
      BorderStyle = bsDialog
      Caption = #36873#25321
      ClientHeight = 242
      ClientWidth = 439
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnClose = FormClose
      PixelsPerInch = 96
      TextHeight = 13
      object Panel1: TPanel
        Left = 0
        Top = 201
        Width = 439
        Height = 41
        Align = alBottom
        BevelOuter = bvNone
        TabOrder = 0
        object BitBtn2: TRzBitBtn
          Left = 208
          Top = 8
          FrameColor = 7617536
          Caption = #36807#28388
          Color = 15791348
          HotTrack = True
          TabOrder = 1
          OnClick = BitBtn2Click
          Glyph.Data = {
            36040000424D3604000000000000360000002800000010000000100000000100
            2000000000000004000000000000000000000000000000000000FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
            0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF000000000000000000000000000000000000000000FFFFFF0000000000FFFF
            FF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF0000000000FFFFFF00000000000000000000000000FFFFFF0000000000FFFF
            FF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF0000000000FFFFFF00000000000000000000000000FFFFFF00000000000000
            00000000000000000000000000000000000000000000FFFFFF00000000000000
            00000000000000000000000000000000000000000000FFFFFF00000000000000
            0000FFFFFF00000000000000000000000000000000000000000000000000FFFF
            FF000000000000000000000000000000000000000000FFFFFF00000000000000
            0000FFFFFF00000000000000000000000000C6C6C6000000000000000000FFFF
            FF000000000000000000000000000000000000000000FFFFFF00000000000000
            0000FFFFFF00000000000000000000000000C6C6C6000000000000000000FFFF
            FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000
            0000000000000000000000000000000000000000000000000000000000000000
            000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
            FF0000000000FFFFFF00000000000000000000000000FFFFFF0000000000FFFF
            FF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF000000000000000000000000000000000000000000FFFFFF00000000000000
            0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000
            00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000
            0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000
            00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
            FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00}
        end
        object BitBtn3: TRzBitBtn
          Left = 360
          Top = 8
          FrameColor = 7617536
          Caption = #21462#28040
          Color = 15791348
          HotTrack = True
          TabOrder = 0
          OnClick = BitBtn3Click
          Kind = bkCancel
        end
        object BitBtn1: TRzBitBtn
          Left = 284
          Top = 8
          FrameColor = 7617536
          Caption = #30830#23450
          Color = 15791348
          HotTrack = True
          TabOrder = 2
          OnClick = BitBtn1Click
          Kind = bkOK
        end
      end
      object Panel2: TPanel
        Left = 0
        Top = 0
        Width = 439
        Height = 201
        Align = alClient
        BevelOuter = bvNone
        Caption = 'Panel2'
        TabOrder = 1
      end
      object DataSource1: TDataSource
        Left = 168
        Top = 160
      end
    end

    //单元设计: 陈新光(CXG)
    //设计时间: 2009-10-5 21:11:46
    //单元功用: 公用选择窗体

    unit uChoose;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, Grids, DBGrids, DB, StdCtrls, Buttons
      ,ADODB
      ,remoteudpdataset, GridsEh, DBGridEh, RzButton
      ,EhLibCDS
      ;

    type
      TFormChoose = class(TForm)
        Panel1: TPanel;
        DataSource1: TDataSource;
        BitBtn2: TRzBitBtn;
        BitBtn3: TRzBitBtn;
        Panel2: TPanel;
        BitBtn1: TRzBitBtn;
        procedure BitBtn3Click(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure BitBtn2Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
        FDataSet: TDataSet;
        procedure DBGridKeyPress(Sender: TObject; var Key: Char);
        procedure DBGridDblClick(Sender: TObject);   
      public
        { Public declarations }
      end;

    var
      FormChoose: TFormChoose;
      FEdit: boolean;

    procedure Execute(ADataSet: TDataSet);
    procedure AdjustDropDownForm(AControl: TControl);

    implementation

    uses
      uPublicQuery
      ,uFunction
      ;

    {$R *.dfm}

    var
      DBGrid1: TDBGridEh;

    procedure AdjustDropDownForm(AControl: TControl);  //设置下拉窗口位置。
    var
      WorkArea: TRect;
      HostP, PDelpta: TPoint;
    begin
      SystemParametersInfo(SPI_GETWORKAREA, 0, @WorkArea, 0);

      GetCursorPos(HostP); //根据点击的鼠标位置决定显示的位置
      PDelpta := AControl.ClientToScreen(Point(0, 0));

      AControl.Left := HostP.x - 2;
      AControl.Top := HostP.y - 3;

      if (AControl.Width > WorkArea.Right - WorkArea.Left) then
        AControl.Width := WorkArea.Right - WorkArea.Left;

      if (AControl.Left + AControl.Width > WorkArea.Right) then
        AControl.Left := WorkArea.Right - AControl.Width;
      if (AControl.Left < WorkArea.Left) then
        AControl.Left := WorkArea.Left;

      if (AControl.Top + AControl.Height > WorkArea.Bottom) then
      begin
        if (HostP.y - WorkArea.Top > WorkArea.Bottom - HostP.y ) then
          AControl.Top := HostP.y - AControl.Height;
      end;

      if (AControl.Top < WorkArea.Top) then
      begin
        AControl.Height := AControl.Height - (WorkArea.Top - AControl.Top);
        AControl.Top := WorkArea.Top;
      end;

      if (AControl.Top + AControl.Height > WorkArea.Bottom) then
      begin
        AControl.Height := WorkArea.Bottom - AControl.Top;
      end;
    end;

    procedure Execute(ADataSet: TDataSet);
    begin
      if ADataSet = nil then Exit;
      if FormChoose = nil then
        FormChoose := TFormChoose.Create(nil);
      with FormChoose do
      begin
        DBGrid1 := TDBGridEh.Create(FormChoose);
        DBGrid1.Parent := Panel2;
        DBGrid1.ReadOnly := True;
        DBGrid1.Flat := true;
        DBGrid1.Align := alClient;
        DBGrid1.ReadOnly := True;
        uFunction.SetFilter(DBGrid1);
        uFunction.ShowMutiColSort(DBGrid1);
        uFunction.ShowRecno(DBGrid1);
        DBGrid1.Options := DBGrid1.Options + [dgRowSelect];
        DBGrid1.OnKeyPress := DBGridKeyPress;
        DBGrid1.OnDblClick := DBGridDblClick;
        fDataSet := ADataSet;
        DataSource1.DataSet := FDataSet;
        DBGrid1.DataSource := DataSource1;
      end;
      FEdit := False;
      AdjustDropDownForm(FormChoose);
      uFunction.SetDataset(FormChoose.FDataSet);
      try
        FormChoose.ShowModal;
      finally
        FreeAndNil(FormChoose);
      end;
    end;

    procedure TFormChoose.BitBtn3Click(Sender: TObject);
    begin
      ModalResult := mrCancel;
    end;

    procedure TFormChoose.BitBtn1Click(Sender: TObject);
    begin
      if not FDataSet.IsEmpty then
        FEdit := True;
      ModalResult := mrOk;
    end;

    procedure TFormChoose.DBGridKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        BitBtn1Click(nil);
    end;

    procedure TFormChoose.DBGridDblClick(Sender: TObject);
    begin
      BitBtn1Click(nil);
    end;

    procedure TFormChoose.BitBtn2Click(Sender: TObject);
    begin
      uPublicQuery.Execute(FDataSet);
    end;

    procedure TFormChoose.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;

    end.

  • 相关阅读:
    elasticsearch的rest搜索---mapping
    elasticsearch的rest搜索--- 安装
    elasticsearch的rest搜索--- 总述
    vs2012代码段,快捷键,snippet 的使用
    Web字体@font-face对于中文字体的使用
    对于VS相关的插件
    作业九 ——报告及总结
    结对编程项目——四则运算
    代码规范、代码复审、PSP
    源程序版本管理软件和项目管理软件
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940627.html
Copyright © 2020-2023  润新知