لجعل إحدى الطابعات طابعة افتراضية نستعمل الخطوات التالية
1- الكود الخاص بقراءة اسماء الطابعات المثبتة :
2- الكود الخاص بعرض الطابعة الافتراضية والطوابع المثبتة :
3- الكود الخاص بتعيين الطابعة الافتراضية :
4- عرض اسم الطابعة على الفورم :
5- الكود الخاص بتطبيق طابعة افتراضية :
- نقرأ جميع الطابعات المثبتة على الجهاز
- نستعمل عنصر combobox لتخزين اسماء الطابعات
- نقوم بعرض اسم الطابعة الافتراضية على الفورم
- نستعمل زر لتبديل الطابعة الافتراضية
1- الكود الخاص بقراءة اسماء الطابعات المثبتة :
function GetDefaultPrinter : string;
var
ResStr : array[0..255] of char;
begin
GetProfileString('Windows','device','',ResStr,255);
Result:=StrPas(ResStr);
end;
2- الكود الخاص بعرض الطابعة الافتراضية والطوابع المثبتة :
procedure TForm2.FormCreate(Sender: TObject);
begin
Combobox1.Items.AddStrings(Printer.Printers);
Combobox1.ItemIndex= Combobox1.Items.IndexOf(GETDEFAULTPRINTER);
end;
3- الكود الخاص بتعيين الطابعة الافتراضية :
procedure SetDefaultPrinter(NewDefPrinter : string);
var
ResStr : array[0..255] of char;
begin
StrPCopy(ResStr,NewdefPrinter);
WriteProfileString ('windows', 'device', ResStr);
StrCopy (ResStr, 'windows');
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@ResStr));
end;
4- عرض اسم الطابعة على الفورم :
procedure TForm2.FormPaint(Sender: TObject);
begin
canvas.TextOut( width div 2, height div 4,' الطابعة الافتراضية هي: ' +combobox1.Text);
end;
5- الكود الخاص بتطبيق طابعة افتراضية :
procedure TForm2.Button1Click(Sender: TObject);
begin
SetDefaultPrinter(Combobox1.Text);
repaint;
end;