📄 delphi学习心得.txt
字号:
(一) 从数据库中向listbox控件添加数据
procedure tdelprm.listallbooks;
//定义一个添加到listbox的函数
var a:tquery;
begin
q:=tquery.create(nil);
q.databasename:=dbname;
q.sql.add('select * from book_info');
q.open;
listview1.items.clear;
while not q.eof do
begin
caption:=q.fieldbyname('bookid').asstring;
subitems.add(q.fieldbyname('bookname').asstring);
subitems.add(q.fieldbyname('author').asstring);
subitems.add(q.fieldbyname('publish').asstring);
end;
q.next;
end;
q.close;
q.free;
end;//delphi自带的结束行
(二) 把数据库中相应的列名输入到combobox控件
可以在窗体的onshow事件中输入
table1.databasename:=dbname;
table1.tablename:='book_info.db';
table1.open;
combobox1.items.clear;
while not table1.eof do
begin
commbobox1.items.add(table1.fieldbyname('bookid').asstring);
table1.next;
end;
table1.first; //定位到第一条记录
commbobox1.itemindex:=0; //和table1中记录同步
在关闭窗体时,也关闭数据库连接,table1.close;
关键一点是:commbobox1的onchange事件,当用户选择列表框中的图书编号时,程序要
要定位到相应的记录,代码如下:
with table1 do
begin
setkey;
fieldbyname('bookid').asstring:=combobox1.items[combobox1.itemindex];
gotokey;
end;
(三) 向打印的窗体传值
form_print.query1.parambyname('qname').asstring:=edit_jy.text;
form_print.query1.open; //激活报表上的查询
form_print.qrp.preview; //报表预览
(四) 转出为Execel表
procedure toutfrm.writeexecel(adsdata:Ttable;fname:string);
var
execelapp:Texecelapplication; //用来连接Excel应用程序
execalwkbook:Texecelworkbook; //工作簿
execelwksheet:Texecelworksheet; //数据表
i,j:integet;
begin
try
excelapp:=Texecelapplication.create(Application); //创建excel应用
excelwkbook:=Texecelworkbook.create(application); //创建工作簿
excelwksheet:=Texecelworksheet.create(application); //创建数据表
excelapp.connect; //连接excel应用程序
Except
messagedlg('Excel没有安装!',mterror,[mbyes],0);
abort;
end;
//建立应用\工作簿\数据表之间的联系
excelapp.workboks.add(Emptyparam,0);
excelwkbook.connectto(excelapp.workbooks[1]);
excelwksheet.connectto(excelwkbook.worksheets[1],as_worksheet);
adsdata.first;
mainfrm.teble1.disablecontrols;//暂时断开数据库连接
for j:=0 to adsdata.fields.count -1 do begin//写入字段名
begin
excelwksheet.cells.item[i,j+1]:=adsdata.fields[j].asstring;
excelwksheet.cells.item[i,j+1].font.size:=10;
end;
adsdata.next;
end;
excelwksheet.columns.autofit; //列自适应
excelwksheet.savaas(fname);
mainfrm.table1.enablecontrols;
excelapp.disconnect;
excelapp.quit;
excelapp.free;
excelwkbook.free;
excelwksheet.free;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -