📄 showdatafrm.pas
字号:
{##########################################
旁注入侵专用程序 3.0升级版
----------------------------------------
模块:数据库浏览 - 显示详细记录
描述:双击后显示详细的数据记录
作者:2005.3.20日下午 明小子
##########################################}
unit ShowDataFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, ExtCtrls, ComCtrls, Buttons;
type
TShowDataForm = class(TForm)
SpeedButton1: TSpeedButton;
Label1: TLabel;
ListView1: TListView;
Panel1: TPanel;
btFirst: TSpeedButton;
btPrior: TSpeedButton;
btNext: TSpeedButton;
btLast: TSpeedButton;
btClose: TSpeedButton;
btSave: TSpeedButton;
Edit1: TEdit;
DBMemo1: TDBMemo;
StatusBar1: TStatusBar;
procedure btFirstClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure btLastClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btPriorClick(Sender: TObject);
procedure btNextClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure btSaveClick(Sender: TObject);
procedure btSelectALLClick(Sender: TObject);
procedure btCopyClick(Sender: TObject);
procedure BTClearClick(Sender: TObject);
procedure DBMemo1Change(Sender: TObject);
procedure ListView1Click(Sender: TObject);
private
procedure ShowQueryData;
public
{ Public declarations }
end;
var
ShowDataForm: TShowDataForm;
implementation
uses MainUnit;
{$R *.dfm}
procedure TShowDataForm.ShowQueryData;
var
i: integer;
begin
try
listview1.Items.Clear; //先清空数据
except
end;
for i := 0 to MainForm.ADOQuery1.FieldCount - 1 do
begin
with listview1.Items.Add do
begin
caption := MainForm.dbgrid1.Columns[i].FieldName; //得到表名
subitems.Text := MainForm.DBGrid1.Columns.Grid.Fields[i].AsString; //得到记录
end;
end;
Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
if MainForm.ADOQuery1.RecordCount = 1 then
begin
btFirst.Enabled := False;
btPrior.Enabled := False;
btNext.Enabled := False;
btLast.Enabled := False;
end
else
begin
btFirst.Enabled := True;
btPrior.Enabled := True;
btNext.Enabled := True;
btLast.Enabled := True;
end;
if DBMemo1.Modified then //如果修改了内容,那么激活保存按钮
btSave.Enabled := True
else btSave.Enabled := False;
end;
procedure ShowQuery;
var
i: integer;
begin
for i := 0 to MainForm.ADOQuery1.FieldCount - 1 do
begin
with ShowDataForm.ListView1.Items.Add do
begin
Caption := MainForm.DBGrid1.Columns[i].FieldName; //得到表名
Subitems.Text := MainForm.ADOQuery1.Fields[i].AsString;
end;
end;
end;
procedure TShowDataForm.btFirstClick(Sender: TObject);
begin
try
ListView1.Items.Clear; //先清空数据
except
end;
DBMemo1.Clear; //清空内容
MainForm.ADOQuery1.First;
ShowQuery; //显示查询到的数据
btPrior.Enabled := False;
btFirst.Enabled := False;
btNext.Enabled := True;
btLast.Enabled := True;
Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
end;
procedure TShowDataForm.SpeedButton1Click(Sender: TObject);
begin
try
Mainform.ADOQuery1.RecNo := strtoint(Edit1.text);
Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
try
ListView1.Items.Clear;
except
end;
DBMemo1.Clear;
ShowQuery;
except
end;
end;
procedure TShowDataForm.btLastClick(Sender: TObject);
begin
try
ListView1.Items.Clear;
except
end;
DBMemo1.Clear;
MainForm.ADOQuery1.Last;
ShowQuery;
btNext.Enabled := False;
btLast.Enabled := False;
btPrior.Enabled := True;
btFirst.Enabled := True;
Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
end;
procedure TShowDataForm.FormCreate(Sender: TObject);
begin
ShowDataForm.FormStyle := fsStayOnTop; //窗体置顶
end;
procedure TShowDataForm.FormShow(Sender: TObject);
begin
ShowQueryData;
DBMemo1.Clear;
end;
procedure NewData;
begin
with ShowDataForm do
begin
if MainForm.ADOQuery1.Eof then //判断是否到了最下面
begin
btNext.Enabled := False;
btLast.Enabled := False;
end;
btPrior.Enabled := True;
btFirst.Enabled := True;
Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
end;
end;
procedure TShowDataForm.btPriorClick(Sender: TObject);
begin
ListView1.Clear;
DBMemo1.Clear;
MainForm.ADOQuery1.Prior;
ShowQuery;
NewData;
end;
procedure TShowDataForm.btNextClick(Sender: TObject);
begin
ListView1.Clear; //先清空数据
DBMemo1.Clear; //清空内容
MainForm.ADOQuery1.Next;
ShowQuery; //显示查询到的数据
NewData;
end;
procedure TShowDataForm.btCloseClick(Sender: TObject);
begin
Close; //退出程序
end;
procedure TShowDataForm.btSaveClick(Sender: TObject);
begin
try
MainForm.ADOQuery1.Post;
except
end;
try
ShowQueryData;
except
end;
ListView1.ItemIndex := ListView1.ItemIndex;
StatusBar1.Panels[0].Text := '提示:修改的数据已成功保存到数据库!';
end;
procedure TShowDataForm.btSelectALLClick(Sender: TObject);
begin
DBMemo1.SetFocus;
DBMemo1.SelectAll;
end;
procedure TShowDataForm.btCopyClick(Sender: TObject);
begin
DBMemo1.SelectAll;
DBMemo1.CopyToClipboard;
end;
procedure TShowDataForm.BTClearClick(Sender: TObject);
begin
DBMemo1.PasteFromClipboard;
end;
procedure TShowDataForm.DBMemo1Change(Sender: TObject);
begin
BtSave.Enabled := True;
end;
procedure TShowDataForm.ListView1Click(Sender: TObject);
begin
try
DBMemo1.DataField := ListView1.Items[0].Caption;
DBMemo1.DataField := ListView1.Items[ListView1.Itemindex].Caption;
except
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -