Settingt tab stops in this way is something only an EDIT class control can understand (the EM_ in the message constant name indicates: EDIT [control] MESSAGE).
The Handle of the printer is not even a Window Handle, it's a Device Context Handle. To output text that respects tab stops to an arbitrary device context, I'd investigate TabbedTextOut(): http://msdn.microsoft.com/en-us/library/dd145129(VS.85).aspx From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On Behalf Of Marshland Engineering Sent: Tuesday, 8 December 2009 2:01 p.m. To: delphi@delphi.org.nz Subject: [DUG] Setting tabs on a printer I can't send a tab setting to the printer The routine works with a memo but fPrn.Handle gives and error. Something to do with fPrn and system.text procedure TfMain.puExpListClick(Sender: TObject); var fPrn: system.text; TabArray : array[0..4] of integer; begin TabArray[0] := 350;// div DialogUnitsX; //Tab Positions TabArray[1] := 380; //div DialogUnitsX; begin with Printer.Canvas do begin PrinterSetupDialog1.execute; Font.Name := 'Courier New'; Font.size := 14; AssignPrn(fPrn); Rewrite(fPrn); SendMessage(fPrn,EM_SETTABSTOPS,2,LongInt(@TabArray)) ; // This line does not work SendMessage(fPrn.Handle,EM_SETTABSTOPS,2,LongInt(@TabArray)) ; //This gives an error. // SendMessage(memo.Handle,EM_SETTABSTOPS,2,LongInt(@TabArray)) ; //This works on the memo. end; end dm.tblExpJob.First; begin // Heading with Printer.Canvas do begin Font.size := 12; WriteLn(fPrn,#10+#10); WriteLn(fPrn,' '+dm.tblData['Desc']+#13+#10); Font.Size := 10; end; end etc WriteLn(fPrn,' '+dm.tblExpJob.FieldByName('Date').AsString +' '+dm.tblExpJob.FieldByName('Desc').AsString +' '+#9+dm.tblExpJob.FieldByName('Person').AsString) // Trying to format the Person on TAB CloseFile(fPrn);
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe