[ Divjak @ 03.09.2002. 01:30 ] @
Kako da ostampam komponente sa Forme ako je to moguce? |
[ Divjak @ 03.09.2002. 01:30 ] @
[ Ilija Studen @ 06.09.2002. 17:31 ] @
Kako da sta? Odstampas izgled forme ili sadrzaj komponente (Memo, Rich Edit, Edit isl)? Budi malo jasniji.
[ Rapaic Rajko @ 07.09.2002. 15:56 ] @
Pogledaj TWinControl.PaintTo() metodu. Ako ne znas kako da je pozoves, vici.
Rajko [ kingrale @ 05.10.2002. 14:48 ] @
Ako zelis da stampas Formu kao Bitmap onda je zadavanje naredbe za stampanje trivijalno.
Form1.Print; No ako zelis da stampas sadrzaj komponente,za linije teksta (to je najcesce), a da nemoras da se peglas sa QReport onda postoji alternativa. U odsjeku za uses dodaj printers, a procedura za stampanje izgleda ovako: procedure TForm1.Stampaj(sl: TStrings); var linija, x, y: integer; sirina, visina, razmak_l, razmak_g: integer; begin if PrintDialog1.Execute then begin Printer.BeginDoc; //Zapocinje stampanje SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Prebacuje skalu na 1/10 mm //Podesavanje slova i pozadine: Printer.Canvas.Font.Name:='Verdana'; Printer.Canvas.Brush.Color:=clWhite; Printer.Canvas.Font.Height:=40; //5 mm //Pronalazenje velicine papira u jedinici 1/10 mm : sirina:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10; visina:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10; razmak_l:=200; //2 cm razmak_g:=200; //2 cm x:=razmak_l; y:=razmak_g*-1; for linija:=0 to linije.Count-1 do begin if -y>(visina-2*razmak_g) then begin //zavrsavamo stampanje prve strane i pripremamo novu za nastavak Printer.EndDoc; Printer.BeginDoc; SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); Printer.Canvas.Font.Name:='Arial'; Printer.Canvas.Brush.Color:=clWhite; Printer.Canvas.Font.Height:=40; //5 mm sirina:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10; visina:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10; razmak_l:=200; razmak_g:=200; x:=razmak_l; y:=razmak_g*-1; end; if y=-razmak_g then begin Printer.Canvas.Font.Style:=[fsbold]; Printer.Canvas.Font.Style:=[]; y:=y-Printer.Canvas.TextHeight(linije[linija]); end; Printer.Canvas.TextOut(x, y, linije[linija]); y:=y-Printer.Canvas.TextHeight(linije[linija]); end; Sada ako postavite na Form1 komponentu Memo1,PrintDialog1 i Button1 i na event OnClick za Button jedan izprogramirate na sljedeci nacin: Stampaj(Memo1.lines); stampac ce vam isprintat sadrzaj memo-boxa. Nezaboraviti dodati u public deklaraciji klase TForm1 sljedecu liniju: procedure Stampaj(sl:Tstrings); Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|