You are not logged in.
Pages: 1
You may have save you some time... all those modifications are not necessary.
Thanks for the feedback!
Thanks, I will have a look. What I had was the "Latest stable version is available directly from in SynPdf.zip"
Marvel
This simple test I collect in this forum fails to compile:
var
lPdf : TPdfDocument;
lPage : TPdfPage;
begin
lPdf := TPdfDocument.Create;
try
lPdf.Info.Author := 'Tester';
lPdf.Info.CreationDate := Now;
lPdf.Info.Creator := 'Tester';
lPdf.DefaultPaperSize := psA4;
lPage := lPDF.AddPage;
lPDF.Canvas.SetFont('Helvetica',10.0,[]);
lPDF.Canvas.SetLeading(lPDF.Canvas.Page.FontSize);
lPDF.Canvas.SetLineWidth(0.1);
lPdf.Canvas.BeginText;
lPdf.Canvas.TextOut( 300, 700, 'This is some text.');
lPdf.Canvas.EndText;
lPdf.SaveToFile(extractfilepath(application.exename)+'test.pdf');
finally
lPdf.Free;
end;
I tracked the issue to 3 problem areas and was able to fix it (at least for the above sample) as follows:
1) In SynCommons.pas move this to the beginning of the Implementation section:
var
SynLogExceptionEnabled: Boolean = false;
type
/// an array to all available per-thread TSynLogFile instances
TSynLogFileIndex = array [0 .. MAX_SYNLOGFAMILY] of integer;
var
/// internal list of created TSynLog instance, one per each log file on disk
// - do not use directly - necessary for inlining TSynLogFamily.SynLog method
SynLogFile: TObjectList = nil;
threadvar
/// each thread can access to its own TSynLogFile
// - TSynLogFile instance is SynLogFile[SynLogFileIndex[TSynLogFamily.Ident]-1]
SynLogFileIndex: TSynLogFileIndex;
/// used internaly by function GetHandleExceptionSynLog
CurrentHandleExceptionSynLog: TSynLog;
{ ************ some fast UTF-8 / Unicode / Ansi conversion routines }
2) In SynCommons.pas, Initialization section replace Assert(SizeOf(TSynTableData) = 16); with
{$ifdef CPU64}
Assert(SizeOf(TSynTableData) = 24);
{$else}
Assert(SizeOf(TSynTableData) = 16);
{$endif}
3) In SynCommons.pas and SynGDIPlus.pas
Remove packed from every instance of 64-bit compilation, for example do as follows:
TVarData {$ifdef CPU64} record {$else} packed record {$endif}
This will make it compile (AND run well) in 64-bit.
Marvel
Pages: 1