📄 unit2.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 + -