Delphi中怎样用代码添加控件 10
比如我运行的时候,在Form1中单击按钮,就会在Form2中添加一个Label控件,应该怎么写?如果用EXCEL的话,那么请问一下,怎么打印我查询的某几条记录呢?...
比如我运行的时候,在Form1中单击按钮,就会在Form2中添加一个Label控件,应该怎么写?
如果用EXCEL的话,那么请问一下,怎么打印我查询的某几条记录呢? 展开
如果用EXCEL的话,那么请问一下,怎么打印我查询的某几条记录呢? 展开
4个回答
展开全部
A和B表通过什么字段关连呢?公司名?这个知道了才好写语句
Delphi好象有几个控件可以操纵EXCEL的,当然用OLE自动化也可以,以下是找到的一些控件的使用例子,熟悉后应该能实现你的功能了:
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
打开Excel
ExcelApplication1.Connect;
显示当前窗口:
ExcelApplication1.Visible[0]:=True;
更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
打开已存在的工作簿:
ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
给单元格赋值:
ExcelApplication1.Cells[1,4].Value := '第一行第四列';
拷贝整个工作表:
ExcelApplication1.ActiveSheet.Used.Range.Copy;
拷贝指定区域:
ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
从A1位置开始粘贴:
ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
从文件尾部开始粘贴:
ExcelApplication1.ActiveSheet.Range.PasteSpecial;
插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
删除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
工作表保存:
if not ExcelApplication1.ActiveWorkBook.Saved then
ExcelApplication1.ActiveSheet.PrintPreview;
工作表另存为:
ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );
放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved := True;
关闭工作簿:
ExcelApplication1.WorkBooks.Close;
退出 Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
Delphi好象有几个控件可以操纵EXCEL的,当然用OLE自动化也可以,以下是找到的一些控件的使用例子,熟悉后应该能实现你的功能了:
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
打开Excel
ExcelApplication1.Connect;
显示当前窗口:
ExcelApplication1.Visible[0]:=True;
更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
打开已存在的工作簿:
ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
给单元格赋值:
ExcelApplication1.Cells[1,4].Value := '第一行第四列';
拷贝整个工作表:
ExcelApplication1.ActiveSheet.Used.Range.Copy;
拷贝指定区域:
ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
从A1位置开始粘贴:
ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
从文件尾部开始粘贴:
ExcelApplication1.ActiveSheet.Range.PasteSpecial;
插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
删除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
工作表保存:
if not ExcelApplication1.ActiveWorkBook.Saved then
ExcelApplication1.ActiveSheet.PrintPreview;
工作表另存为:
ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );
放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved := True;
关闭工作簿:
ExcelApplication1.WorkBooks.Close;
退出 Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
展开全部
Tform1.btn1click(sender:Tobject);
var
label1:TLabel;
begin
label1:=TLabel.create(Form2);
with label1 do begin
left:=32;
top:=32;
caption:='例子';
name:='label1';
end;
end;
var
label1:TLabel;
begin
label1:=TLabel.create(Form2);
with label1 do begin
left:=32;
top:=32;
caption:='例子';
name:='label1';
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form2中写个方法:
procedure CreateLabel ;
var
label:TLabel;
begin
label:=TLabel.create(self);
label.left:=10;
label.top:=10;
label.caption:='label';
end;
然后在Form1中引入Form2的单元
button下写Forms.CreateLabel;
procedure CreateLabel ;
var
label:TLabel;
begin
label:=TLabel.create(self);
label.left:=10;
label.top:=10;
label.caption:='label';
end;
然后在Form1中引入Form2的单元
button下写Forms.CreateLabel;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有一个简单办法:先隐藏控件,在单击的时候显示即可。
例如:先设置他的visible属性为False.
在按钮里添加如下代码:label1.Visible := True;
例如:先设置他的visible属性为False.
在按钮里添加如下代码:label1.Visible := True;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询