⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showgrid.pas

📁 一款不错的商务程序商品管理系统,有简易的窗体皮肤
💻 PAS
字号:
unit ShowGrid;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls,ADODB,DB,DBCtrls, jpeg, Mask,
  Buttons,Theme;

type
  TFrm_ShowGrid = class(TBaseForm)
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Notebook1: TNotebook;
    DBEdit1: TDBEdit;
    SpeedButton1: TSpeedButton;
    procedure FormShow(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Panel2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure DBEdit1Change(Sender: TObject);
    procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);


  private
    Old,New:TPoint;
    IsSize,IsFirst:Boolean;
    OldRect,NewRect,Rect:TRect;
    deskcanvas:TCanvas;
    EDS,GDS:TDataSource;

    { Private declarations }
    procedure MyMouseDown;
    procedure MyMouseMove(Operator:string);
    procedure MyMouseUp;
  

  public
    { Public declarations }
    SCreenP:TPoint;
    Text:string;
    FieldKey:string;
    procedure SetData(var EditDS:TDataSource; var LookDS:TDataSource);
  end;

var
  Frm_ShowGrid: TFrm_ShowGrid;


implementation

{$R *.dfm}

{ TFrm_ShowGrid }

procedure TFrm_ShowGrid.MyMouseDown;
begin
  OldRect:=DBGrid1.ClientRect;{GetClientRect;}
  Old.X:=OldRect.Left;
  Old.Y:=OldRect.Top;
  Old:=ClientToScreen(Old);
  OldRect.Left:=Old.X;
  OldRect.Top:=Old.Y;

  Old.X:=OldRect.Right;
  Old.Y:=OldRect.Bottom;
  Old:=ClientToScreen(Old);
  OldRect.Right:=Old.X;
  OldRect.Bottom:=Old.Y;

  Rect:=OldRect;
  IsSize:=True;
  IsFirst:=True;
end;

procedure TFrm_ShowGrid.MyMouseMove(Operator: string);
begin
  if IsSize then
  begin
    GetCursorPos(New);
    NewRect.Left:=OldRect.Left;
    NewRect.Top:=OldRect.Top;
    if Operator = 'H' then
    begin
      NewRect.Right:=New.X;
      NewRect.Bottom:=OldRect.Bottom;
    end else if Operator = 'V' then
    begin
      NewRect.Right:=OldRect.Right;
      NewRect.Bottom:=New.Y;
    end else if Operator = 'B' then
    begin
      NewRect.Right:=New.X;
      NewRect.Bottom:=New.Y;
    end;

    deskcanvas:=TCanvas.Create;
    deskcanvas.Handle:=GetDC(0);
    with deskcanvas do
    begin
      Pen.Width:=1;
      Pen.Style:=psSolid;
      if not IsFirst then
        //DrawFocusRect(OldRect)
      else
        IsFirst:=False;
      //DrawFocusRect(NewRect);
      OldRect:=NewRect;
    end;
    deskcanvas.Free;
  end;
end;

procedure TFrm_ShowGrid.MyMouseUp;
begin
  DBGrid1.Width:=DBGrid1.Width+(NewRect.Right-Rect.Right);
  DBGrid1.Height:=DBGrid1.Height+(NewRect.Bottom-Rect.Bottom);
  IsSize:=False;
  Refresh;
end;

procedure TFrm_ShowGrid.FormShow(Sender: TObject);
begin
  DBEdit1.DataSource:=EDS;
  DBGrid1.DataSource:=GDS;
  DBEdit1.DataField:=FieldKey;
  Self.Top:=Screenp.Y;
  Self.Left:=SCreenP.X;
  DBEdit1.SetFocus;
  DBEdit1.Text:=Text;
end;

procedure TFrm_ShowGrid.Panel1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MyMouseDown;
end;

procedure TFrm_ShowGrid.Panel1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
  MyMouseMove('H');
end;

procedure TFrm_ShowGrid.Panel1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MyMouseUp;
end;

procedure TFrm_ShowGrid.Panel2MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MyMouseDown;
end;

procedure TFrm_ShowGrid.Panel2MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
  MyMouseMove('V');
end;

procedure TFrm_ShowGrid.Panel2MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MyMouseUp;
end;


procedure TFrm_ShowGrid.DBGrid1DblClick(Sender: TObject);
begin
  DBEdit1.Text:=GDS.DataSet.FieldByName(FieldKey).AsString;
  Self.Close;
end;

procedure TFrm_ShowGrid.SetData(var EditDS, LookDS: TDataSource);
begin
  EDS:=EditDS;
  GDS:=LookDS;
end;

procedure TFrm_ShowGrid.SpeedButton1Click(Sender: TObject);
begin
  DBEdit1.Text:=GDS.DataSet.FieldByName(FieldKey).AsString;
  Self.Close;
end;

procedure TFrm_ShowGrid.DBEdit1Change(Sender: TObject);
begin
  DBEdit1.SelStart:=Length(DBEdit1.Text);
  GDS.DataSet.Locate(FieldKey,DBEdit1.Text,[loPartialKey]);


end;

procedure TFrm_ShowGrid.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    DBGrid1.SelectedField.FocusControl;
    DBEdit1.Text:=GDS.DataSet.FieldByName(FieldKey).AsString;
  end;
end;

procedure TFrm_ShowGrid.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    DBEdit1.Text:=GDS.DataSet.FieldByName(FieldKey).AsString;
    Close;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -