Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder PrinterSetupDialog ve PrintDialog Nesneleri


PrinterSetupDialog ve PrintDialog Nesneleri

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu program PrintDialog ve PrinterSetupDialog nesnelerinin kullanımından söz edilmiş ve örnek bir uygulama yapılmıştır. PrinterSetupDialog nesnesi yazıcı ayarlarının yapıldığı nesnedir. Bu kısımda seçilecek yazıcı, sayfa düzeni, sayfa boyutu gibi benzeri ayarlar yapılır. PrinterDialog nesnesinde ise yazma işlemi sırasında yapılacak ayarlar belirlenir. Örneğin kaç adet maksimum sayfa yazılabilir, en az kaç sayfa yazdırılacak, yazma işlemi nereden başlayacak gibi ayarların yapıldığı yerdir. Bu programda yazma işleminde sonraki sayfaların yazılabilmesi için bir algoritma kullanılmıştır. Buradaki algoritmada Memo nesnesi içerisinde bulunan yazının font büyüklüğü önemlidir, buradaki default değerine göre bir sayfada 81 satır yazdırabilir. Font büyüklüğünün ayarlanabilir şekilde değiştirildiğini düşünürsek algoritmada da uygun matematik hesabı ile  daha genel bir yazdırma işlemi sağlanabilir.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt 

Program Kodu:

Unit1.cpp

  1.  
  2.  
  3. //---------------------------------------------------------------------------
  4.  
  5. #include <vcl.h>
  6. #pragma hdrstop
  7.  
  8. #include "Unit1.h"
  9. #include "Printers.hpp"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm1 *Form1;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21. void __fastcall TForm1::Button1Click(TObject *Sender)
  22. {
  23. if(PrinterSetupDialog1->Execute())
  24. ;       
  25. }
  26. //---------------------------------------------------------------------------
  27.  
  28. void __fastcall TForm1::Button2Click(TObject *Sender)
  29. {
  30.  
  31.   int tur=0;
  32.   TPrinter *Prntr = Printer();
  33.   Prntr->Title="C++ BUİLDER İLE YAZDIRMA";
  34.   //TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200);
  35.   int toplamsatir=Memo1->Lines->Count;
  36.  
  37.   while(toplamsatir>0)
  38.   {
  39.   Prntr->BeginDoc();
  40.   for( int i=81*tur; i<(tur+1)*81;i++)
  41.   {
  42.   Prntr->Canvas->TextOut(300,300 + ((i-(81*tur))*Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])),Memo1->Lines->Strings[i]);
  43.   }
  44.   Prntr->EndDoc();
  45.   toplamsatir-=80;
  46.   tur++;
  47.   }
  48.  
  49. }
  50. //---------------------------------------------------------------------------
  51. void __fastcall TForm1::FormCreate(TObject *Sender)
  52. {
  53. PrintDialog1->FromPage=1;
  54. PrintDialog1->MinPage=1;
  55. PrintDialog1->MaxPage=2500;
  56. PrintDialog1->ToPage=PrintDialog1->MaxPage;
  57. }
  58. //---------------------------------------------------------------------------
  59.  
  60.  
  61.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!