Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Delphi & Stampanje

[es] :: Pascal / Delphi / Kylix :: Delphi & Stampanje

[ Pregleda: 5759 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Divjak
Vladimir Divjak
Student

Član broj: 4783
Poruke: 535
*.zrenjanin.beotel.net



+1 Profil

icon Delphi & Stampanje03.09.2002. u 01:30 - pre 233 meseci
Kako da ostampam komponente sa Forme ako je to moguce?
And don't be mad at me for crying for humanity,
call it pretensions but I got good intentions,
to keep my sanity, I'm hoping, fuck, there's gotta be
an answer to their strategies and their evil inventions... ~Looptroop
 
Odgovor na temu

Ilija Studen
Novi Sad

Član broj: 3864
Poruke: 859
*.verat.net

Sajt: www.activecollab.com


+1 Profil

icon Re: Delphi & Stampanje06.09.2002. u 17:31 - pre 232 meseci
Kako da sta? Odstampas izgled forme ili sadrzaj komponente (Memo, Rich Edit, Edit isl)? Budi malo jasniji.
http://www.activecollab.com - Alat za upravljanje projektima
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 801
*.beg.sezampro.yu



+62 Profil

icon Re: Delphi & Stampanje07.09.2002. u 15:56 - pre 232 meseci
Pogledaj TWinControl.PaintTo() metodu. Ako ne znas kako da je pozoves, vici.

Rajko
 
Odgovor na temu

kingrale
Adnan Ralic
Sarajevo

Član broj: 5620
Poruke: 16
*.as.bu.bih.net.ba.

Sajt: www.delphi.co.ba


Profil

icon Re: Delphi & Stampanje05.10.2002. u 14:48 - pre 232 meseci
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);
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Delphi & Stampanje

[ Pregleda: 5759 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.