台州电大陈元的数据库应用程序设计离线作业

更新时间:2024-05-01 06:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江大学远程教育学院 《数据库应用程序设计》课程作业

姓名: 年级:

陈 元 2013年秋

学 号: 学习中心:

713124014001 台州电大

—————————————————————————————

作业 第一章

1.5 如何保存Delphi的项目?尝试自己动手创建一个项目,并保存。

答:执行File|Save All菜单命令或单击工具栏中的Save All按钮便可保存,在保存时可以对工程文件和单元文件进行改名,但后缀名不能改。保存文件之后,单击工具中的Run按钮或按F9键,系统将开始编译、连接、运行该工程。

1.7 尝试设计如图1-10所示的窗体。(图见教材P15页图1-10)

图1-10

答:设计界面:

运行界面:

第二章

2.8设计如图2-5所示的界面。单击“按钮1”或“按钮2”时在标签上显示用户所执行的操作。单击“开启/停用按钮”可控制“按钮1”和“按钮2”是否可用,单击“退出系统”按钮时,结束程序的运行。 答:设计界面:

运行界面:

代码: unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Button1: TButton; Button2: TButton; ctlButton: TButton; exitButton: TButton; showLabel: TLabel;

procedure Button1Click(Sender: TObject);//按钮1 procedure Button2Click(Sender: TObject);//按钮2

procedure ctlButtonClick(Sender: TObject);//开启停用按钮 procedure exitButtonClick(Sender: TObject);//退出按钮 private

{ Private declarations } public

{ Public declarations } end; var

Form1: TForm1;

ctlStatus:integer = 0; //控制按钮1和2的开启和关闭,0表示当前为开启,1表示关闭 implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin

form1.showLabel.Caption := '您点击了按钮1'; end;

procedure TForm1.Button2Click(Sender: TObject); begin

form1.showLabel.Caption := '您点击了按钮2'; end;

procedure TForm1.exitButtonClick(Sender: TObject); begin

form1.Close; end;

procedure TForm1.ctlButtonClick(Sender: TObject); begin

if ctlStatus = 0 then begin

form1.Button1.Enabled := false; form1.Button2.Enabled := false; ctlStatus := 1; end else begin

form1.Button1.Enabled := true; form1.Button2.Enabled := true; ctlStatus := 0; end; end; end.

2.9 设计如图2-6所示的界面。当单击按钮时,可控制文本框中字体的颜色。

图2-5 答:设计界面

图2-6

运行界面:

代码:(按钮快捷键的设置方法为在字母前加&,如&R,&G,&B) unit test;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit;

btnRed: TButton; btnGreen: TButton; btnBlue: TButton;

procedure btnRedClick(Sender: TObject); procedure btnGreenClick(Sender: TObject); procedure btnBlueClick(Sender: TObject);

private

{ Private declarations } public

{ Public declarations }

end; var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnRedClick(Sender: TObject); begin

form1.Edit1.Font.Color := clred; end;

procedure TForm1.btnGreenClick(Sender: TObject); begin

form1.Edit1.Font.Color := clgreen; end;

procedure TForm1.btnBlueClick(Sender: TObject); begin

form1.Edit1.Font.Color := clblue; end; End.

第三章

3.8 下列实数中哪些是合法的,哪些是不合法的?不合法的请说明理由。 (A)0.25E+02 (B).25+2 (C)25E+2 (D)34.5 (E).123 (F)-3E-4 答:(A)合法,即为25

(B)不合法,小数点前必须有数字,如表示为0.25+2 (C)合法,即为2500 (D)合法,即为34.5 (E)不合法,同(2) (F)合法,即为-0.0003

3.12 数学式子sin30写成Delphi表达式是下列哪个?

(A)Sin30 (B)Sin(30) (C)SIN(30) (D)Sin(30*Pi/180) 答:D,使用正切函数时需要把角度转化为弧度表示。

第四章

4.7 利用3个数字编辑框分别输入小时、分、秒,换算共有多少秒,然后使用标签输出。 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin; type

TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel;

SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; SpinEdit3: TSpinEdit; Label4: TLabel;

procedure SpinEdit1Change(Sender: TObject); procedure SpinEdit2Change(Sender: TObject); procedure SpinEdit3Change(Sender: TObject);

private

{ Private declarations }

procedure CalculateTimeToSencond(timeKind:String; time:integer); public

{ Public declarations } end; var

Form1: TForm1; hour: integer = 0; minute: integer = 0; second: integer = 0; tot:integer = 0; implementation

{$R *.dfm}

procedure TForm1.CalculateTimeToSencond(timeKind:String; time:integer); begin

if timeKind = 'hh' then hour := time

else if timeKind = 'mi' then minute := time

else if timeKind = 'ss' then second := time;

tot := hour * 60 * 60 + minute * 60 + second;

form1.Label4.Caption := '总共为' + IntToStr(tot) + '秒'; end;

procedure TForm1.SpinEdit1Change(Sender: TObject); begin

Form1.CalculateTimeToSencond('hh', StrToInt(Form1.SpinEdit1.Text)); end;

procedure TForm1.SpinEdit2Change(Sender: TObject); begin

Form1.CalculateTimeToSencond('mi', StrToInt(Form1.SpinEdit2.Text)); end;

procedure TForm1.SpinEdit3Change(Sender: TObject); begin

Form1.CalculateTimeToSencond('ss', StrToInt(Form1.SpinEdit3.Text)); end; end.

4.8 在编辑框中输入一个实数,利用备注框输出该实数及其平方和平方根。 答:设计界面:

运行界面:

代码: unit Unit1; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Memo1: TMemo; Label2: TLabel;

procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var

Form1: TForm1;

num1 : Real; //原实数 num2 : Real; //实数平方 num3 : Real; //实数平方根 implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject); begin

if form1.Edit1.Text <> '' then begin

num1 := StrToFloat(form1.Edit1.Text); num2 := Sqr(num1); num3 := Sqrt(num1);

form1.Memo1.Lines.Clear;

form1.Memo1.Lines.Add('实数为 : ' + FloatToStr(num1)); form1.Memo1.Lines.Add('平方为 : ' + FloatToStr(num2)); form1.Memo1.Lines.Add('平方根为 : ' + FloatToStr(num3)); end; end; End.

第五章

5.11 任意给定3个实数,按照从大到小的顺序依次输出这3个数。 答:设计界面:

运行界面:

代码:unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) num1Edit: TEdit; Label1: TLabel; Label2: TLabel; resultLabel: TLabel; num2Edit: TEdit; num3Edit: TEdit;

procedure num1EditChange(Sender: TObject);

procedure num2EditChange(Sender: TObject); procedure num3EditChange(Sender: TObject); private

{ Private declarations }

procedure CompareNumber(); public

{ Public declarations } end; var

Form1: TForm1;

num1 : Real; //数字1 num2 : Real; //数字2 num3 : Real; //数字3

compnum : Real; //比较时转换2数 outStr : String; //输出结果; implementation

{$R *.dfm}

procedure TForm1.CompareNumber(); begin

if (trim(form1.num1Edit.Text) <> '') And (trim(form1.num3Edit.Text) <> '') then begin

num1 := StrToFloat(form1.num1Edit.Text); num2 := StrToFloat(form1.num2Edit.Text); num3 := StrToFloat(form1.num3Edit.Text);

if num2 > num1 then begin

compnum := num1; num1 := num2; num2 := compnum; end;

if num3 > num1 then begin

compnum := num1; num1 := num3; num3 := compnum; end;

if num3 > num2 then

(trim(form1.num2Edit.Text) <> '') And begin

compnum := num2; num2 := num3; num3 := compnum; end;

outStr := FloatToStr(num1) + ',' + FloatToStr(num2) + ',' + FloatToStr(num3);

form1.resultLabel.Caption := outStr; end; end;

procedure TForm1.num1EditChange(Sender: TObject); begin

form1.CompareNumber; end;

procedure TForm1.num2EditChange(Sender: TObject); begin

form1.CompareNumber; end;

procedure TForm1.num3EditChange(Sender: TObject); begin

form1.CompareNumber; end; end.

5.13 假设工资的增幅标准为:若基本工资大于等于1000元,增加工资20%;若小于1000元大于等于800元,则增加工资15%;若小于800元,则增加工资10%。请根据用户在文本框中输入的基本工资,计算出增加后的工资。 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; resultLabel: TLabel;

procedure Edit1Change(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var

Form1: TForm1; salary: Real; outSalary: Real; implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject); begin

salary := StrToFloat(form1.Edit1.Text);

if (salary >= 1000) then

outSalary := salary * (1 + 0.2)

else if (salary < 1000) And (salary >= 800) then outSalary := salary * (1 + 0.15) else if (salary < 800) then

outSalary := salary * (1 + 0.1);

form1.resultLabel.Caption := FloatToStr(outSalary); end; End.

第六章

6.5 设s=1X2X3X…Xn,求s不大于20000时最大的n。 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; resultLabel: TLabel;

procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

number, n, tot: Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); begin

tot := 1; n := 0;

number := StrToInt(form1.Edit1.Text); While tot <= number do begin

n := n + 1; tot := tot * n; end;

form1.resultLabel.Caption := IntToStr(n-1); end; end.

6.10 在标签上输出100~200之间的所有的奇数,其中3的倍数除外。 答:设计界面:

运行界面:

代码:

unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) resultLabel: TLabel;

procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var

Form1: TForm1; number, i: Integer; outStr: String;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); begin

for i:= 100 to 200 do begin

if i mod 2 <> 0 then if i mod 3 <> 0 then

outStr := outStr + ' ' + IntToStr(i);

form1.resultLabel.Caption := outStr; end; end; end.

第七章

7.4 求1~200这200个数的和,当和大于10000时结束计算。(要求使用转向语句) 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel;

procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var

Form1: TForm1; sum, n : integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

sum := 0; n := 0;

repeat

n := n + 1;

sum := sum + n;

if (sum > 10000) then break; until n >= 200;

form1.Label1.Caption := '总和为' + IntToStr(sum); end; end.

第八章

8.8 编写函数,输出100~500之间所有能同时被3和13整除的数。 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

Function checkNum(num:integer):boolean; public

{ Public declarations } end; var

Form1: TForm1;

implementation

{$R *.dfm}

Function TForm1.checkNum(num:integer):boolean; var n :boolean; begin

if (num mod 3 = 0) And (num mod 13 = 0) then n := true else

n := false;

result := n; end;

procedure TForm1.FormCreate(Sender: TObject); var i : integer; var out : string; begin

for i := 100 to 500 do begin

if checkNum(i) then

out := out + ' ' + IntToStr(i); end;

form1.Label1.Caption := out; end; end. 第九章

9.2 打开对话框组件和打开图片对话框组件有什么异同点? 答:两者都会打开一个对话框用于选择电脑本地上的文件; 不同的是前者可以选择全部类型的文件,而后者只可以选择图片类型的文件,并且可以预览图片。

第十章

10.7 菜单命令项与工具栏按钮的单击事件中的代码是否可以关联?如何关联? 答:可以关联,将工具栏按钮ToolButton的Style属性设置为tbsDropDown,然后在MenuItem属性中选择对应的菜单项即可。

第十一章

11.4 调用子窗体的close方法时是否可关闭该子窗体?若不能,需要怎么做?

答:调用close方法只能最小化窗口,如果要真正关闭,需要调用free方法,早子窗体的OnClose事件中使用代码Action :=CaFree;把Action动作参数设定为CaFree。

第十二章

12.3 使用红色的画笔在窗体中绘制一个半径为5的圆,并且用黄色来填充圆的内部。 答:设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type

TForm1 = class(TForm)

procedure FormPaint(Sender: TObject); private

{ Private declarations }

public

{ Public declarations } end; var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject); var r, x, y:integer; begin r := 5; x := 80; y := 50;

Canvas.Pen.Color := clred; Canvas.Pen.Width :=1;

Canvas.Brush.Color := clyellow; Canvas.Ellipse(x, y, x+r*2, y+r*2); end; end.

第十三章

13.3 打开一个文本文件有几种方法?区别是什么? 答:有3种打开文件的方法:

(1) 对于文本文件,Reset过程以只读方式打开一个文件,并将文件的指针移动到文件开

头。对于类型文件和无类型文件,Reset过程以可读写方式打开文件。

(2) Rewrite过程以写的方式创建并打开一个新文件,若该文件已经存在,此操作将使文

件被覆盖。对于一个已打开的文件,则先关闭文件,并重新创建一个新文件覆盖原有文件,文件指针设置到开头处。

(3) Append过程打开一个已存在的文本文件,并以追加的方式在文件末尾添加文本。

第十四章

14.4 使用Database DeskTop设计如表14-5所示的数据表,并创建简单的应用程序完成数据的浏览和编辑功能。

表14-5 数据表字段设置说明

字段名 Id Name Price Count 字符型 字符型 数值型 短整型 类型 4 20 长度 说明 产品编号 产品名称 产品单价 产品库存量

答:设计界面:

(数据库设计)

运行界面:

14.6 使用数据库软件(如Sql Server2000)创建如表14-6所示的数据表,并开发一个学生档案管理系统,完成学生基本信息的添加、删除、修改等。同时,可以按照学生的学号、姓名等进行数据的查询。最后,将学生的基本信息以报表的方式输出。 表14-6 数据表字段设置说明 字段名 Id Name Sex Birthday Address 字符型 字符型 字符型 日期型 字符型 类型 8 8 2 4 50 长度 学号 姓名 性别 出生日期 家庭住址 说明 答:(1)使用的数据库软件为Sql Server 2008 R2,依据题目设计的数据表结构为

表名为Students

(2)本系统包含5个Form,分别为FormMain主界面,FormTable信息录入查询界面,FormReport学生信息报表界面,FormHelp系统帮助界面,FormAbout系统关于界面 (3)各Form详细内容: A:FormMain 设计界面:

运行界面:

代码: unit Unit2;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Unit3, Unit1, Unit4, Unit5; type

TMainForm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; Label1: TLabel; Label2: TLabel; Label3: TLabel;

procedure N8Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N2Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure N4Click(Sender: TObject); procedure N7Click(Sender: TObject); private

procedure closeApp; public

{ Public declarations } end; var

MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.N8Click(Sender: TObject); begin

formAbout.Show; end;

procedure TMainForm.N5Click(Sender: TObject); begin

closeApp; end;

procedure TMainForm.N2Click(Sender: TObject); var child:TFormTable; begin

child := TFormTable.Create(Application); child.Show; end;

procedure TMainForm.closeApp; begin

if messagedlg('您确定要退出本系统了吗?',mtconfirmation,[mbyes,mbno],0) = mryes then Application.Terminate end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin

if messagedlg('您确定要退出本系统了吗?',mtconfirmation,[mbyes,mbno],0) = mryes then

CanClose := true else

CanClose := false; end;

procedure TMainForm.N4Click(Sender: TObject); var child:TFormReport; begin

child := TFormReport.Create(Application); child.Show; end;

procedure TMainForm.N7Click(Sender: TObject); begin

formHelp.Show; end; end.

B:FormTable 设计界面:

运行界面:

代码: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, ComCtrls, StdCtrls, ToolWin, ImgList; type

TFormTable = class(TForm)

ADOConnection1: TADOConnection; DataSource1: TDataSource; DBGrid1: TDBGrid; ToolBar1: TToolBar; TBAdd: TToolButton; Editname: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel;

Editaddress: TEdit; Label4: TLabel; Editid: TEdit; Label5: TLabel; Label6: TLabel;

ComboBoxsex: TComboBox; DateBirthday: TDateTimePicker; TBUpdate: TToolButton; TBDelete: TToolButton; TBSelect: TToolButton; TBCommit: TToolButton; LabelMode: TLabel;

ToolButton6: TToolButton; Label8: TLabel;

ADOQuery1: TADOQuery; DataSource2: TDataSource; ADOTable1: TADOTable; ImageList1: TImageList;

procedure TBAddClick(Sender: TObject); procedure TBUpdateClick(Sender: TObject); procedure TBDeleteClick(Sender: TObject); procedure TBSelectClick(Sender: TObject); procedure FormPaint(Sender: TObject); procedure TBCommitClick(Sender: TObject); procedure DBGrid1DblClick(Sender: TObject); private

public

{ Public declarations } end; var

FormTable: TFormTable;

TBStatus : integer; //模式类型,0-查询,1-新增,2-修改,3-删除

SelMode : integer; //第一次按查询按钮进入查询模式--1,再按一次执行查询--2,其他情况下为--0

implementation

{$R *.dfm}

procedure TFormTable.TBAddClick(Sender: TObject); var maxid : integer; var date : string; begin

TBStatus := 1;

Editid.Enabled := false; Editname.Enabled := true; Comboboxsex.Enabled := true; DateBirthday.Enabled := true; Editaddress.Enabled := true; Editid.Text := ''; Editname.Text := ''; SelMode := 0;

LabelMode.Caption := '新增模式'; DBGrid1.DataSource := DataSource1;

date := FormatDateTime('yymm', now); With FormTable.ADOQuery1 do begin

ADOQuery1.Close; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select max(substring(Id,6,3)) maxid from Students where substring(Id,2,4)=' + date); ADOQuery1.Open;

if (ADOQuery1.RecordCount = 0) then Editid.Text := 'S' + date + '001' else

begin if (ADOQuery1.FieldByName('maxid').Text = '') or (ADOQuery1.FieldByName('maxid').Text = 'NULL') then Editid.Text := 'S' + date + '001' else begin

maxid := StrToInt(ADOQuery1.FieldByName('maxid').Text); maxid := maxid + 1;

Editid.Text := 'S' + date + StringOfChar('0', 3-length(IntToStr(maxid))) + IntToStr(maxid); end;

end; end; end;

procedure TFormTable.TBUpdateClick(Sender: TObject); begin

TBStatus := 2;

Editid.Enabled := false; Editname.Enabled := true;

Comboboxsex.Enabled := true; DateBirthday.Enabled := true; Editaddress.Enabled := true; Editid.Text := ''; Editname.Text := ''; SelMode := 0;

LabelMode.Caption := '修改模式'; DBGrid1.DataSource := DataSource1; end;

procedure TFormTable.TBDeleteClick(Sender: TObject); begin

TBStatus := 3;

Editid.Enabled := false; Editname.Enabled := false; Comboboxsex.Enabled := false; DateBirthday.Enabled := false; Editaddress.Enabled := false; Editid.Text := ''; Editname.Text := ''; SelMode := 0;

LabelMode.Caption := '删除模式'; DBGrid1.DataSource := DataSource1; end;

procedure TFormTable.TBSelectClick(Sender: TObject); var id,ename,address:string; begin

if SelMode = 0 then begin

TBStatus := 0;

Editid.Enabled := true; Editname.Enabled := true; Comboboxsex.Enabled := true; DateBirthday.Enabled := true; Editaddress.Enabled := true; Editid.Text := ''; Editname.Text := ''; SelMode := 1;

LabelMode.Caption := '查询模式'; DBGrid1.DataSource := DataSource2; end

else if SelMode = 1 then begin

if Editid.Text = '' then id := 'null' else

id := ''''+Editid.Text+'''';

if Editname.Text = '' then ename := 'null' else

ename := ''''+Editname.Text+'''';

if Editaddress.Text = '' then address := 'null' else

address := ''''+Editaddress.Text+'''';

with ADOQuery1 do begin

ADOQuery1.Close; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select Id, Name, Sex, Birthday, Address from Students' + ' where Id = isnull('+id+',Id)'+

' and Name = isnull('+ename+',Name)'+ ' and Sex = '+''''+Comboboxsex.Text+''''+

' and Birthday = '+''''+DateToStr(DateBirthday.Date)+''''+ ' and Address = isnull('+address+',Address)'); ADOQuery1.Open;

end; end; end;

procedure TFormTable.FormPaint(Sender: TObject); begin

//默认为查询模式,此模式下学号可以输入,其他模式下不可以输入 TBStatus := 0;

Editid.Enabled := true; Editid.Text := ''; SelMode := 1;

DBGrid1.DataSource := DataSource2; end;

procedure TFormTable.TBCommitClick(Sender: TObject);

本文来源:https://www.bwwdw.com/article/54qg.html

Top