Stringgrid drukowanie

sablik

Witam to mój pierwszy tekst więc jeśli ktoś uważa że coś trzeba poprawić to zapraszam.

Przykład dotyczy drukowania Stringgrida
do uses dopisz Printers

//*******************************************************
// Drukowanie
//*******************************************************
procedure TForm1.Button4Click(Sender: TObject);
var
  r: TRect;
  i: Integer;
  s: string;
  pozycja : integer;

begin
     Printer.Canvas.Font.Size:=czcionka;
  
     Printer.BeginDoc; 
     Canvas.Brush.Style := bsClear;
     kolumna:= (Printer.Pagewidth - 340)div 6; // obliczam szerokość kolumny

// tu wpisuje pr\ykładowy nagłówek
     Printer.Canvas.TextOut(200,500,'  '+ DateToStr(Date)+'         ' +TimeToStr(GetTime)+
   '                Razem worków = '+ edit2.text +'        Razem sztuk = '+ edit3.text  );


 //Tutaj rysuję kratki 
  with Printer do
  begin
   pozycja:=890 ;
   for i := 0 to dl_tabeli do
     begin  //wiersze
     Canvas.MoveTo(200, pozycja); // ustaw kursor we wlasciwym miejscu
     Canvas.LineTo(Printer.Pagewidth - 200,pozycja ); // rysuj linie
     pozycja:= 1220 + (i * (czcionka + wiersz)) ;
   end;

   for i := 0 to 7 do
   begin  //kolumny
     Canvas.MoveTo(i*kolumna+180,890); // ustaw kursor we wlasciwym miejscu
     Canvas.LineTo(i*kolumna+180,Printer.PageHeight - 200); // rysuj linie
   end;


  end;



// dla większego komfortu utworzyłem dodatkowe zmienne do pozycjonowania wydruku , oraz liter

   for i := 0 to dl_tabeli do // pierwsza kolumna
   begin
     s :=  StringGrid5.cells[0,i]  ;
     Printer.Canvas.TextOut(p_kolumny,1000 +(i * (czcionka + wiersz)+p_wiersza),s );
   end;


   for i := 0 to dl_tabeli do // druga kolumna
   begin
     s :=  StringGrid5.cells[1,i]  ;
     Printer.Canvas.TextOut(kolumna + p_kolumny,1000 +(i * (czcionka + wiersz)+ p_wiersza),s );
   end;

   for i := 0 to dl_tabeli do
   begin
     s :=  StringGrid5.cells[2,i]  ;
     Printer.Canvas.TextOut(2*kolumna+p_kolumny,1000 +(i * (czcionka + wiersz)+p_wiersza),s );
   end;

   for i := 0 to dl_tabeli do
     begin
     s :=  StringGrid5.cells[3,i]  ;
     Printer.Canvas.TextOut(3*kolumna+p_kolumny,1000 +(i * (czcionka + wiersz)+p_wiersza),s );
   end;

   for i := 0 to dl_tabeli do
     begin
     s :=  StringGrid5.cells[4,i]  ;
     Printer.Canvas.TextOut(4*kolumna+p_kolumny,1000 +(i * (czcionka + wiersz)+p_wiersza),s );
   end;

   for i := 0 to dl_tabeli do
     begin
     s :=  StringGrid5.cells[6,i]  ;
     Printer.Canvas.TextOut(5*kolumna+p_kolumny,1000 +(i * (czcionka + wiersz)+p_wiersza),s );
   end;
   Printer.enddoc;
end;

Pozdrawiam A Sablik

FAQ

4 komentarzy

Piersze pytanie... gdzie deklaracja zmiennych: czcionka, kolumna, dl_tabeli .... itp. Ten kod jest wyrwany z pewnej całości. Szkoda, że autor o tym nie pomyślał...

a jak zrobic zeby wydrukowac to na kartce poziomo

Przenniosłem, zmieniłem z kategorii na zwykły artykuł, usunąłem trochę"*" które powodowały rozłażenie się strony.

Prośba do admina pomyliłem dział miało iść do FAQ.
A teraz odmawia mi dostępu przy próbie usuniecia.
pozdr AS