Programowanie w języku Delphi » FAQ

Stringgrid drukowanie

  • 2006-04-01 19:54
  • 4 komentarze
  • 1144 odsłony
  • Oceń ten tekst jako pierwszy
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

4 komentarze

Dionizy 2007-10-17 15:21

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ł...

gawcyk 2007-05-24 18:47

a jak zrobic zeby wydrukowac to na kartce poziomo

Ktos 2006-04-01 19:55

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

sablik 2006-04-01 19:11

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