19. oktober 2004 - 19:38Der er
7 kommentarer og 1 løsning
Udskrift af form
Hejsa
Jeg sidder og kæmper med et problem der går ud på at udskrive en form. Problemet er bare at indholdet der skal udskrives er større end skærmopløsningen. Derfor prøver jeg at ændre størrelsen af formen til mere end skærmens opløsning, men den bliver begrænset. Kan jeg på en eller anden måde undgå denne begrænsning eller få formens print metode til at printe hele indholdet, selv om det "stikker uden for formen"
Håber på lidt hurtig hjælp eftersom jeg skal aflevere det færdige program i morgen
Hvis du bruger Frmxxxxx.Print funktionen, udskrives kun det, som du ser på skærmen. Skal du have hele formen ud, må du ind og rette i skærmens opløsning, så hele formen kan ses på skærmen. Pjotre
Du skal definere printeren i uses: uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Printers; Herefter skal følgende kodes: Printer.Orientation := poLandscape; {A4 liggende} Form1.PrintScale := poPrintToFit; {Scaler så den passer til print} Form1.Print; {Udskriv print} Mvh Pjotre
Det lykkedes ikke at få den til at printe formen, men jeg har tegnet det hele til en bitmap og lagt den på printerens canvas... Kode følger:
procedure TForm3.PrintSeddel(); var Bitmap: TBitmap; OffX, OffY, I: Integer; begin OffX := 45; OffY := 25; BitMap:=TBitmap.Create; BitMap.LoadFromFile(ExtractFilePath(Application.ExeName)+'timeseddel.bmp'); with Printer do begin BeginDoc; for I := 0 to ControlCount -1 do if (Controls[I] is TLabel) then if TLabel(Controls[I]).Name <> '' then begin Bitmap.Canvas.Font := TLabel(Controls[I]).Font; Bitmap.Canvas.TextOut(TLabel(Controls[I]).Left, TLabel(Controls[I]).Top, TLabel(Controls[I]).Caption); TLabel(Controls[I]).Visible := False; end; Canvas.StretchDraw(rect(OffX, OffY, Printer.PageWidth - OffX, Printer.PageHeight - OffY), Image1.Picture.Bitmap); EndDoc; end; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.