Yazıcı çıktısını sayma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
eseNuri
Üye
Mesajlar: 23
Kayıt: 03 Nis 2007 12:12

Yazıcı çıktısını sayma

Mesaj gönderen eseNuri »

arkadaşlar yazdığımız bir programda yazıcıdan aldığımız çıktı sayısını saydırmamız gerekiyor.


İşlem şu: Formda sağ üst tarafta bir Label olacak ve yazıcıdan her çıktı alındığında bu Label'ın değerini 1 artıracağız. Çıktıya sayfa numarası verme yani.



Yardımcı olursanız sevinirim (:
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Form'u mu çıktı alıyorsun, yoksa bir rapor mu var? Yoksa word gibi bir programdan çıktı alıyorsun da printer'dan çıkan sayfaların sayısını mı öğreneceksin?
Sencer
Üye
Mesajlar: 32
Kayıt: 01 Nis 2007 05:30

Mesaj gönderen Sencer »

şöle yaparsın print butunlarına bi donkisyon yazarsın bir text de yada db de kaç tane print ettiğini tutarsın ve ona +1 ekletirsin yada 3.parti programın destekliyosa kaç sayfa kopya alınğını çekip onu eklersin
eseNuri
Üye
Mesajlar: 23
Kayıt: 03 Nis 2007 12:12

Mesaj gönderen eseNuri »

formun çıktısını alıyorum evet


bu arada sencer senin dediğinden bişi anlamadım
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Sencer'in dediği şey senin istediğin cevaplardan birisi. Daha açık anlatmak gerekirse, bir çok yoldan birisi ve bence en basiti şu. Bir şekilde PrintDialog ile bilgileri aldın ve :

Kod: Tümünü seç

   Printer.Title := 'Sayfa Numarası denemesi';
   Printer.Copies := 1;
   Printer.BeginDoc;  
ile printer'ı harekete geçirebildin. EndDoc'a gelinceye kadar da bir döngü ile sayfa numarasını saydırman lazım:

Kod: Tümünü seç

    SayfaNo := PrintDialog.FromPage; //Sayfa kaçtan başlıyor.
   while Printer.Printing and (not Printer.Aborted) do
   begin
     //Burada bir kaç işlem ile sayfayı printer'ın canvasına atıyoruz.
     //...
     
     //Eğer thread kullanmamış isek, formda donma olmaması için:
     Application.ProcessMessages;
 

     // Sayfa Numarasını yazdıralım ;)
     Printer.Canvas.TextOut(150,  25, 'S ' + IntToStr(SayfaNo));
 
     // Sayfa Numarasını artıralım
     Inc(SayfaNo);
 
     // Eğer sayfa yenilenmiş ise printer'da yeni bir sayfa açıyoruz.
     if (SayfaNo <= PrintDialog.ToPage) and (not Printer.Aborted) then
        Printer.NewPage;
   end;
 
   // Yazdırma sonu
   Printer.EndDoc;
vesselam.
eseNuri
Üye
Mesajlar: 23
Kayıt: 03 Nis 2007 12:12

Mesaj gönderen eseNuri »

teşekkürler dostlarım ben olayımı başka türden mantıksal olarak çözdüm
Cevapla