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

📄 comlbzl.pas

📁 delphi作得信息业进销存源码.功能全面,运行稳定.
💻 PAS
字号:
unit ComLbzl;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComJbzl, ActnList, Menus, ComCtrls, DBCtrls, ToolWin, ExtCtrls, StdCtrls,
  Grids, DBGrids, db, IniFiles;

type
  TfrmComLbzl = class(TfrmComJbzl)
    pnlList: TPanel;
    Splitter1: TSplitter;
    StringGrid1: TStringGrid;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    aList: TAction;
    N3: TMenuItem;
    mnuList: TMenuItem;
    N6: TMenuItem;
    pmnList: TMenuItem;
    procedure FormShow(Sender: TObject);override;
    procedure dsAfterScroll(DataSet: TDataSet);override;
    procedure pnlListResize(Sender: TObject);virtual;
    procedure aListExecute(Sender: TObject);virtual;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);override;
    procedure aModifyExecute(Sender: TObject);override;
    procedure aNewExecute(Sender: TObject);override;
    procedure DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    procedure aRefreshExecute(Sender: TObject);override;
    procedure aSearchExecute(Sender: TObject);override;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmComLbzl: TfrmComLbzl;

implementation

uses Main;

{$R *.DFM}

//Form.Show
procedure TfrmComLbzl.FormShow(Sender: TObject);
var
  i: integer;
  iniPos: TIniFile;
begin
  inherited;
  //StringGrid
  with StringGrid1 do
  begin
    ColWidths[0] := 0;
    RowCount := DBGrid1.Columns.Count;
    for i := 0 to DBGrid1.Columns.Count - 1 do
    begin
      Cells[0, i] := DBGrid1.Columns[i].FieldName;
      Cells[1, i] := DBGrid1.Columns[i].Title.Caption;
      if (self.Canvas.TextWidth(Cells[1, i]) + 8) > ColWidths[1] then
        ColWidths[1] := self.Canvas.TextWidth(Cells[1, i]) + 8;
    end;
  end;
  //Pos
  iniPos := TiniFile.Create(ExtractFilePath(Application.ExeName) + 'System\Lbzl.ini');
  with iniPos do
  begin
    pnlList.Width := ReadInteger(FormatFloat('0000', pintUserID) + self.Name, 'Width', screen.Width div 2);
    StringGrid1.TopRow := ReadInteger(FormatFloat('0000', pintUserID) + self.Name, 'TopRow', 0);
    aList.Checked := ReadBool(FormatFloat('0000', pintUserID) + self.Name, 'Show', aList.Checked);
    Free;
  end;
  //Scroll
  if aList.Checked then
    dsAfterScroll(dsJbzl)
  else
    pnlList.Visible := aList.Checked;
end;

//Form.Close
procedure TfrmComLbzl.FormClose(Sender: TObject; var Action: TCloseAction);
var
  iniPos: TIniFile;
begin
  inherited;
  //Pos
  iniPos := TiniFile.Create(ExtractFilePath(Application.ExeName) + 'System\Lbzl.ini');
  with iniPos do
  begin
    WriteInteger(FormatFloat('0000', pintUserID) + self.Name, 'Width', pnlList.Width);
    WriteInteger(FormatFloat('0000', pintUserID) + self.Name, 'TopRow', StringGrid1.TopRow);
    WriteBool(FormatFloat('0000', pintUserID) + self.Name, 'Show', aList.Checked);
  end;
end;

//dsAfterScroll
procedure TfrmComLbzl.dsAfterScroll(DataSet: TDataSet);
var
  i: integer;
begin
  inherited;
  if not aList.Checked or (StringGrid1.Cells[0, 0] = '') then exit;
  with StringGrid1 do
    for i := 0 to RowCount - 1 do
    begin
      Cells[2, i] := DBGrid1.DataSource.DataSet.FieldByName(Cells[0, i]).DisplayText;
    end;
end;

//pnlList.Resize
procedure TfrmComLbzl.pnlListResize(Sender: TObject);
begin
  StringGrid1.ColWidths[2] := StringGrid1.Width - StringGrid1.ColWidths[1] - 28;
end;

//aList.Execute
procedure TfrmComLbzl.aListExecute(Sender: TObject);
begin
  aList.Checked := not aList.Checked;
  pnlList.Visible := aList.Checked;
  if aList.Checked then
    dsAfterScroll(dsJbzl);
  Splitter1.Visible := aList.Checked;
end;

//aModify.Execute
procedure TfrmComLbzl.aModifyExecute(Sender: TObject);
begin
  inherited;
  if aList.Checked then
    dsAfterScroll(dsJbzl);
end;

procedure TfrmComLbzl.aNewExecute(Sender: TObject);
begin
  inherited;
  if aList.Checked then
    dsAfterScroll(dsJbzl);
end;

procedure TfrmComLbzl.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
  if Button = nbRefresh then
    if aList.Checked then
      dsAfterScroll(dsJbzl);
end;

procedure TfrmComLbzl.aRefreshExecute(Sender: TObject);
begin
  inherited;
  if aList.Checked then
    dsAfterScroll(dsJbzl);
end;

procedure TfrmComLbzl.aSearchExecute(Sender: TObject);
begin
  inherited;
  dsAfterScroll(nil);
end;

end.

⌨️ 快捷键说明

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