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

📄 unit2.pas

📁 铁路道口管理系统 开发源码 大家随便看看 呵呵
💻 PAS
字号:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons, ExtDlgs ,Jpeg;

type
  TForm2 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    OpenPictureDialog1: TOpenPictureDialog;
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    Label5: TLabel;
    Edit3: TEdit;
    BitBtn1: TBitBtn;
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Image1DblClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    OldID : integer;
    CDSPanel : Tpanel;
    OperaType,DataName,OrderByName : string;
    
    procedure Brow_Dic(datastr : string;TagT : integer); //浏览
    procedure EmpSome_Dic;//删除后清空界面
    procedure AddTab_Title(Datastr : string);
    procedure Insert_DKbase(Datastr : string);//添加基本信息
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation
Uses Unit1,Unit3,Unit4;
{$R *.dfm}
//浏览
procedure TForm2.AddTab_Title(Datastr: string);
begin
  try
    with DBgrid1.Columns do
    begin
      if DataName = 'DKBase' then //基本信息
      begin
        Items[0].Visible := false;
        Items[1].Visible := false;
        Items[2].Visible := false;
        Items[5].Visible := false;
        Items[6].Visible := false;
        Items[3].Title.caption := '道口名称';
        Items[4].Title.caption := '负责人';


      end;
    end;
  except

  end;
end;

procedure TForm2.Brow_Dic(datastr: string ; TagT : integer);
begin
  with DModule1.Qry_Brow do
  begin
    Close;
    SQL.Text := 'select * from '+datastr+' where DBase_Tag=:tag1' +' order by '+OrderByName;
    Parameters.ParamByName('tag1').Value := TagT;
    Open;
    AddTab_Title(DataName);
  end;
end;

procedure TForm2.DBGrid1CellClick(Column: TColumn);
var
  i,j : integer;
  MyJpg : TjpegImage;
  MyStream : TMemoryStream;
  OtherStream : TStringStream;
  Sizeofstream : integer;
begin
  try

    MyJpg := Tjpegimage.Create;
    Mystream := TMemoryStream.Create;
    if OperaType = 'DKbaseOP' then //道口基本信息
      OtherStream := TstringStream.Create(DModule1.Qry_Brow.fieldbyname('DBase_Photo').Asstring)
    else
      OtherStream := TStringStream.Create('');
    Sizeofstream := OtherStream.size;

    with DModule1.Qry_Brow do
    begin
      OldID := fields[0].AsInteger;
      j := 0;
      for i := 0 to CDSPanel.ControlCount-1 do
      begin
        if CDSPanel.Controls[i].ClassType = TEdit then
        begin
          //showmessage('j='+inttostr(j)+ '  edit ' +inttostr(i));
          Tedit(CDSPanel.Controls[i]).Text := Fields[j+2].AsString;
          Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TCombobox then
        begin
           Tcombobox(CDSPanel.Controls[i]).Text := Fields[j+2].AsString;
           Inc(j) ;
        end
        else if  CDSPanel.Controls[i].ClassType = TMemo then
        begin
         //  showmessage('j='+inttostr(j)+ '  Memo ' +inttostr(i));
           TMemo(CDSPanel.Controls[i]).Text := fields[j+2].AsString;
           Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TDateTimePicker then
        begin
           TDateTimePicker(CDSPanel.Controls[i]).DateTime := fields[j+2].AsDateTime;
           Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TImage then
        begin
          if Sizeofstream <> 0 then //读取数据库图形不为空
          begin
            //showmessage('j='+inttostr(j)+ '  image ' +inttostr(i));
            OtherStream.Position := 0;
            Mystream.CopyFrom(OtherStream,SizeofStream);
            Mystream.Position := 0;
            MyJpg.LoadFromStream(MyStream);
            MyJpg.SaveToFile(Form1.LocalPath + 'TempC.jpg');
            TImage(CDSPanel.Controls[i]).Picture.LoadFromFile(Form1.LocalPath + 'TempC.jpg');

          end
          else
            TImage(CDSPanel.Controls[i]).Picture.LoadFromFile(Form1.LocalPath + 'Temp.jpg');
            inc(j);
        end;
      end;
    end;
      MyJpg.Free;
      MyStream.Free;
      OtherStream.Free;

  except
      MyJpg.Free;
      MyStream.Free;
      OtherStream.Free;

    showmessage('数据库连接失败!!');

  end;
end;

procedure TForm2.EmpSome_Dic;
var
  i,j : integer;
begin
  try
    for i := 0 to CDSpanel.ControlCount -1 do
    begin
      if CDSPanel.Controls[i].ClassType = TEdit then
        begin

          Tedit(CDSPanel.Controls[i]).Text := '';
          Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TCombobox then
        begin
          Tcombobox(CDSPanel.Controls[i]).Text := '';
           Inc(j) ;
        end
        else if  CDSPanel.Controls[i].ClassType = TMemo then
        begin
           TMemo(CDSPanel.Controls[i]).Text := '';
           Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TDateTimePicker then
        begin
           TDateTimePicker(CDSPanel.Controls[i]).DateTime := Now;
           Inc(j) ;
        end
        else if CDSPanel.Controls[i].ClassType = TImage then
        begin
           TImage(CDSPanel.Controls[i]).Picture.LoadFromFile(Form1.LocalPath + 'temp.jpg');
        end;

    end;
  except

  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  MPGPath : string;
begin
  try
    MPGPath := trim(Edit3.Text);
    if MPGpath <> '' then
    begin
      if FileExists(MPGPath) then
      begin
        Form4.MediaPlayer1.Close;
        Form4.MediaPlayer1.FileName := MPGPath;
        Form4.MediaPlayer1.Open;

      end
      else
        showmessage('录象文件不存在!') ;

    end
    else
    begin
      Form4.MediaPlayer1.Close;
    end;
    Form4.Caption := '道口录像';
    Form4.ShowModal;
  except
    showmessage('录象文件不存在或文件发生错误!!');
  end;
end;
//添加
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
  try
    if OperaType = 'DKbaseOP' then //道口基本信息
    begin
      if Application.MessageBox('确认添加吗?','提示',MB_YESNO) <> 6 then
        exit;
      with DModule1.Tab_Insert do
      begin
        Close;
        TableName := DataName;
        Open;
        Append;
        Edit;
        Insert_DKbase(DataName) ;
        Post;
        Close;
      end;

      Brow_Dic(DataName,Form1.TagNow);

    end
    else
      showmessage('无此功能!');
  except

  end;
end;

procedure TForm2.Insert_DKbase(Datastr: string);
var
  i , j: integer;
  MyJpg : TjpegImage;
  MyStream : TmemoryStream;
  OtherStream : TStringStream;
  Sizeofstream : integer;
begin
  try

    MyJpg := Tjpegimage.Create;
    Mystream := TmemoryStream.Create;
    OtherStream := TstringStream.Create('');
    with DModule1.Tab_Insert do
    begin
      j := 0;

      fields[1].AsInteger := Form1.TagNow;
      for i := 0 to CDSpanel.ControlCount -1 do
      begin
        if CDSPanel.Controls[i].ClassType = TEdit then
          begin
             // showmessage('j='+inttostr(j)+ '  edit ' +inttostr(i));
              Fields[j+2].AsString := trim(Tedit(CDSPanel.Controls[i]).Text);
            Inc(j) ;
          end
          else if CDSPanel.Controls[i].ClassType = TCombobox then
          begin
              Fields[j+2].AsString := Tcombobox(CDSPanel.Controls[i]).Text;
             Inc(j) ;
          end
          else if  CDSPanel.Controls[i].ClassType = TMemo then
          begin
           //  showmessage('j='+inttostr(j)+ '  Memo ' +inttostr(i));
             fields[j+2].AsString := TMemo(CDSPanel.Controls[i]).Text;
             Inc(j) ;
          end
          else if CDSPanel.Controls[i].ClassType = TDateTimePicker then
          begin
             fields[j+2].AsDateTime := TDateTimePicker(CDSPanel.Controls[i]).DateTime;
             Inc(j) ;
          end
          else if CDSPanel.Controls[i].ClassType = TImage then
          begin
           // showmessage('j='+inttostr(j)+ '  image ' +inttostr(i));
            TImage(CDSPanel.Controls[i]).Picture.Graphic.SaveToStream(Mystream);
            Sizeofstream := Mystream.Size;
            Mystream.Position := 0;
            OtherStream.CopyFrom(Mystream,Sizeofstream);
            fields[j+2].AsString := OtherStream.DataString;
            Inc(j);

          end;
      end;
      MyJpg.Free;
      MyStream.Free;
      OtherStream.Free;

    end;

  except

    MyJpg.Free;
      MyStream.Free;
      OtherStream.Free;
      showmessage('添加操作失败!');
      DModule1.ADOConnection1.RollbackTrans;
  end;
end;

procedure TForm2.Image1DblClick(Sender: TObject);
begin
  try
    Form1.Timer1.Enabled := false;
    if OpenPictureDialog1.Execute then
      Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    Form1.Timer1.Enabled := True;
  except
    showmessage('打开图片失败!');
    Form1.Timer1.Enabled := True;
  end;
end;

procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
  try
    if OperaType = 'DKbaseOP' then //道口基本信息
    begin
      if Application.MessageBox('确认修改吗?','提示',MB_YESNO) <> 6 then
        exit;
      with DModule1.Tab_Insert do
      begin
        Close;
        TableName := DataName;
        Open;

        Edit;
        Locate('ID',OldID,[]);
        edit;
        Insert_DKbase(DataName);
        Post;
        Close;
      end;

      Brow_Dic(DataName,Form1.TagNow);
      DModule1.Qry_Brow.Locate('ID',OldID,[]);
    end
    else
      showmessage('无此功能');
  except

  end;
end;

procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
  try
    if Application.MessageBox('确认删除吗?','提示',MB_YESNO) <> 6 then
      exit;

      with DModule1.Tab_Insert do
      begin
        Close;
        TableName := DataName;
        Open;
        Edit;
        Locate('ID',OldID,[]);
        Edit;
        Delete;
        Close;
        EmpSome_Dic;
        Brow_Dic(DataName,Form1.TagNow);
       // Qry_Brow.Locate('ID',OldID,[]);
      end;
  except
    showmessage('修改失败!');
    DModule1.ADOConnection1.RollbackTrans;
  end;
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
form2.close;
end;

end.

⌨️ 快捷键说明

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