02. maj 2003 - 14:22
Der er
1 kommentar og
1 løsning
Print af edits
Jeg har en from med en masse edit boxe som skal udfyldes. Hvad går man når man kun skal udskrive indholdet af boxene uden at baggrunden kommer med. Det skal kun være teksten i boxene der kommer ud og det s´kal stå på samme måde.
Med denne procedure kan du udskrive indholdet af Editfelter.
Her udskrives Edit1,Edit2 og Edit3
Husk under uses Printers;
procedure TForm1.Button1Click(Sender: TObject);
var
XPixelsPrTomme, YPixelsPrTomme: Integer;
PixelXFactor,PixelYFactor:real;
const CmPrTomme = 2.54;
begin
XPixelsPrTomme := GetDeviceCaps(printer.Handle, logPixelsX); //afhængig af printerens opløsning
YPixelsPrTomme := GetDeviceCaps(printer.Handle, logPixelsY);
PixelXFactor:=0.1*XPixelsPrTomme/CmPrTomme;
PixelYFactor:=0.1*YPixelsPrTomme/CmPrTomme;
with Printer do
begin
Printer.Orientation := poLandscape;
BeginDoc;
Canvas.Font.Size:=20;
Canvas.Font.Name:='ariel';
Canvas.Font.Color := clBlack;
Canvas.TextOut(Round(30*PixelXFactor),Round(20*PixelYFactor),Edit1.text);
// første tal (her 30 ) er millimetre fra venstre kant på papiret
// andet tal (her 20 ) er millimetre fra øverste kant på papiret
//NB!! Der er en lille variation i afstandene afhængig af printeren, ca 3 – 5 mm
//så er det bare at regne ud hvor på papiret du vil have teksten
Canvas.TextOut(Round(30*PixelXFactor),Round(40*PixelYFactor),Edit2.text);
Canvas.TextOut(Round(30*PixelXFactor),Round(60*PixelYFactor),Edit3.text);
EndDoc;
end;
end;