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