?? unit4.~pas
字號:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, DBGrids, ComCtrls, DB, ADODB;
type
TForm4 = class(TForm)
Edit1: TEdit;
OpenDialog1: TOpenDialog;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOCommand1: TADOCommand;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
Button3: TButton;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
uses shlobj,activex;
procedure TForm4.BitBtn1Click(Sender: TObject);
var
Info: TBrowseInfo;
Dir: array[0..260] of char;
ItemId: PItemIDList;
begin
edit1.Text:='';
with Info do begin
hwndOwner := self.Handle;
pidlRoot := nil;
pszDisplayName := nil;
lpszTitle := '請選擇文件夾';
ulFlags := 0;
lpfn := nil;
lParam := 0;
iImage := 0;
end;
ItemId := SHBrowseForFolder(info);
if ItemId <> nil then
begin
SHGetPathFromIDList(ItemId, @Dir);
edit1.Text:=Dir;
end;
bitbtn2.Enabled:=true;
end;
procedure TForm4.BitBtn2Click(Sender: TObject);
var
sr: TSearchRec;
FileAttrs: Integer;
s:string;
i,j:integer;
begin
with dbGrid1 do
begin
if FindFirst(edit1.Text+'\*.*', faAnyFile , sr) = 0 then
begin
adoquery1.First;
repeat
j:=0;
if sr.Size<>0 then
begin
for i:=1 to length(sr.Name) do
begin
if sr.Name[i] in ['0'..'9'] then
begin
j:=i;
s:=s+sr.Name[i];
end;
if(j<>i) and (length(s)<9)then
s:='';
end;
if length(s)>8then
begin
s:=copy(s,1,9);
adocommand1.CommandText:='update 作業表 set 交作業=1 where 學號='''+s+'''';
adocommand1.Execute;
s:='';
end;
end;
until FindNext(sr) <> 0;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.學號,a.姓名, b.交作業 from 學生信息表 a,作業表 b');
adoquery1.SQL.Add('where b.學號 =a.學號');
adoquery1.Open;
dbgrid1.Columns[0].Width:=100;
dbgrid1.Columns[1].Width:=100;
dbgrid1.Columns[2].Width:=100;
FindClose(sr);
end;
end;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
adoquery1.First;
while not adoquery1.Eof do
begin
adocommand1.CommandText:='update 作業表 set 交作業=0';
adocommand1.Execute;
adoquery1.Next;
end;
label3.Width:=300
end;
procedure TForm4.DataSource1DataChange(Sender: TObject; Field: TField);
begin
label2.Caption:=inttostr(ADOQuery1.RecordCount);
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.學號,a.姓名, b.交作業 from 學生信息表 a,作業表 b');
adoquery1.SQL.Add('where ( a.學號=b.學號)and(b.交作業=0)');
adoquery1.Open;
dbgrid1.Columns[0].Width:=100;
dbgrid1.Columns[1].Width:=100;
bitbtn2.Enabled:=false;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select b.學號,a.姓名, b.交作業 from 學生信息表 a,作業表 b');
adoquery1.SQL.Add('where a.學號=b.學號 and b.交作業=1');
adoquery1.Open;
dbgrid1.Columns[0].Width:=100;
dbgrid1.Columns[1].Width:=100;
dbgrid1.Columns[2].Width:=100;
bitbtn2.Enabled:=false;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
close;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -