我沒有編程背景,這是我的第一槍。我寫了一個應該在結果表上打印的Delphi程序。我在一個研究所工作,我們必須每兩個月建立數百個結果表。這很難做到,不同的筆跡也是一個重要的問題。我有這樣的代碼:如何在正確的座標處打印文本字段?
if PrintDialog.Execute() then
begin
with MyPrinter do
begin
MyPrinter.BeginDoc();//Start Printing
//Prints First Name
MyPrinter.Canvas.TextOut(FirstNameX,FirstNameY,EditFirstName.Text);
//Prints Last Name
MyPrinter.Canvas.TextOut(LastNameX,LastNameY,EditLastName.Text);
//Prints Level
MyPrinter.Canvas.TextOut(LevelX,LevelY,EditLevel.Text);
//Prints Date
MyPrinter.Canvas.TextOut(DateX,DateY,MEditDate.Text);
//Prints Student Number
MyPrinter.Canvas.TextOut(StdNumX,StdNumY,EditStdnumber.Text);
....
MyPrinter.EndDoc();//End Printing
end;
end;
我無法獲得正確的座標以正確打印。我錯過了什麼嗎?我怎樣才能設置正確的座標?您知道TPrinter使用像素來獲得座標,但紙張的尺寸以英寸或釐米爲單位。 我真的很困惑。我感謝任何幫助。
由於您沒有編程背景......一些提示。不錯,但由於您明確使用MyPrinter對象,所以使用「with..do」構造是多餘的。擺脫... ..因爲他們只是讓生活變得艱難,模糊你的意圖,並混淆Code Insight。使用一致的2字符縮進。 – 2010-05-11 23:18:46
「使用一致的2字符縮進。」 甚至更好:使用代碼格式化程序,因此您不必手動執行。 – dummzeuch 2010-05-12 09:21:54