PDA

View Full Version : سوال: پرینتر جاری



arkia
یک شنبه 10 مرداد 1389, 03:49 صبح
من با این کد لیست پرینتر ها رو تو دلفی در میارم حالا میخوام وقتی کد چاپ نوشتم پرینتری رو که انتخاب کرده ام پرینتر جاری بشه




procedure Tfrm_main.FormShow(Sender: TObject);
var p:TPrinter;
begin

p:=TPrinter.Create;
ComboBox1.Clear;
ComboBox1.Items:=p.Printers;

end;

Felony
یک شنبه 10 مرداد 1389, 07:29 صبح
به وسیله متد PrinterIndex میتونید ایندکس پرینتر مورد نظر برای انجام عملیات رو به برنامه بدید ، اگر این مقدار 0 باشه عملیات چاپ با پرینتر پیش فرض ویندوز انجام میگیره :

P.PrinterIndex:= ComboBox1.ItemIndex;

arkia
دوشنبه 11 مرداد 1389, 00:50 صبح
آقای تاجیک دستت درد نکنه کدت درسته اما نمیدونم چرا تو برنامم جواب نمیده :ناراحت:
با printDialog پرینتر رو انتخاب می کنم چاپگر جاری عوض میشه اما با item index عوض نمیشه نمیدونم چرا؟؟؟



اگر این مقدار 0 باشه عملیات چاپ با پرینتر پیش فرض ویندوز انجام میگیره

:متعجب: یعنی تو لیستی که تو combobox داریم اولیش پیشفرضه؟ مگه لیست رو به ترتیب حروف الفبا نمیچینه؟
اینم کد چاپم :



Printer.BeginDoc;
Printer.Title:='title here';
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.Font.Size:=10;
Printer.Canvas.Font.Name:='font here';
Printer.Canvas.TextOut(left,top+40,frm_datamodule. ADOQuery['tarikh'];
Printer.EndDoc;




اگه براتون مقدوره یه sample با دلفی بزارین برام ممنون

Felony
دوشنبه 11 مرداد 1389, 06:23 صبح
تا جایی که من اطلاع دارم وقتی از متد Printers برای گرفتن لیست پرینترها استفاده میکنید به صورت خودکار اولین گزینه ( ایندکس 0 ) پرینتر پیش فرض رو برمیگردونه ، تو بخش مقالات دلفی هم مقاله در مورد کار با کلاس TPrinter هست که ممکنه به دردتون بخوره .

موفق باشید .