首先在uses增加Printers,再准备一个列表框ComboBox1,其属性Visible设为FALSE,然后在打印之前执行下列语句,那么就可以检测到是否存在打印机了:procedure TForm1.ButtonClick(Sender: Tobject);
begin
ComboBox1.Clear;
ComboBox1.Items.Assign(Printer.Printers);
if ComboBox1.Items.CommaText='' then
Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0);
else
Form1.Print;
end;
begin
ComboBox1.Clear;
ComboBox1.Items.Assign(Printer.Printers);
if ComboBox1.Items.CommaText='' then
Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0);
else
Form1.Print;
end;
解决方案 »
- 一次更新多表时,如果防止程序中断,造成数据不统一
- Delphi5调试时能否更改String变量的值
- 请教一个指针小问题!
- 各位帮帮忙
- ADO访问access数据库,"2002/1/1 9:00:00" 在dbgrid中显示的是"2002/1/1"
- ActiveForm
- .gdb 是什么文件,用什么软件打开啊??在线~
- 字符串队列构件在哪里?
- 在写一份英文简历,每个项目下面都要些段很长的项目描述Description,共写八个项目,应该每个描述都不同才好,但不知道该怎么写这种描述
- DELPHI 的动态控件是如何实现的?
- 高手过来,送分100!!!
- 此题难倒我。各位,不知如何能使combobox的Height 与 ItemHeight 不一样
implementation
uses printers;
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
printersetupdialog1.execute; //选择输出的打印机以及其他打印控制选项
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
lines:integer;
prntext:system.text;
//将PRNTEXT声名为一个在SYSTEM程序单元当中定义的文本文件
begin
if printdialog1.execute then
assignprn(prntext); //将PRNTEST分配给打印机
rewrite(prntext); //调用REWRITE函数,为输出打开已分配的文件
printer.canvas.font:=memo1.font;
//把当前MEMO1的字体指定给打印对象的CANVAS的字体属性
for lines:=0 to memo1.lines.count-1 do
writeln(prntext,memo1.lines[lines]);
//把MEMO的内容写到打印机对象
system.close(prntext); //关闭打印文件
end;procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.lines.loadfromfile('c:\dos\os2.txt');
//在FORM建立时读入C:\DOS\OS2.TXT文件
end;
end.
/////////////////image////////////////////////////////////
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if printdialog1.execute then begin
printer.begindoc;
printer.canvas.draw(0,0,image1.picture.graphic);
printer.enddoc;
end;
end;
printdialog1怎么用?能详细点吗?