Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 8.249 pregleda

Najnovija ↓

Delphi & Stampanje 03.09.2002. u 02:30 · pre 294 meseca #1
Kako da ostampam komponente sa Forme ako je to moguce?
Potpis
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
Re: Delphi & Stampanje 07.09.2002. u 16:56 · pre 294 meseca #3
Pogledaj TWinControl.PaintTo() metodu. Ako ne znas kako da je pozoves, vici.

Rajko
Re: Delphi & Stampanje 05.10.2002. u 15:48 · pre 293 meseca #4
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);
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme