this is my code iam using to create VTDB record with font. I am using some procedures not defined, but you can imagine what they do.
Code:
procedure SaveFontExtraData(PCount,StChar,EnChar:Integer;Widths,Heights:Array of Integer;out Data:Pointer;out DataSize:Integer);
var
Write:Pointer;
I:Integer;
begin
DataSize:=(3+4+(PCount)*2)*sizeof(Integer);
GetMem(Data,DataSize);
Write:=Data;
AddInt(Write,PCount);
AddInt(Write,StChar);
AddInt(Write,EnChar);
// skip 16 reserved bytes
for i:=0 to 3 do
AddInt(Write,0);
for I:= 0 to PCount - 1 do
begin
AddInt(Write, Widths[I]);
AddInt(Write, Heights[I]);
end;
end;
procedure CreateVTDFont(stchar,endchar:Integer;Widths,Heights:Array of Integer;Img:TAGFImage;out Data:Pointer;out DataSize:Integer);
var
Write,wdata,idata:Pointer;
wdatasize,idatasize:Integer;
begin
SaveFontExtraData(endchar-stchar,stchar,endchar,widths,heights,wdata,Wdatasize);
CheckError(Img.GetAGFData(iData,iDataSize));
DataSize:=IDataSize+WDataSize+4;
getmem(Data,DataSize);
Write:=Data;
AddInt(Write,SIG_FNT2);
move(wData^,Write^,wDataSize);
inc(integer(Write),wDataSize);
move(iData^,Write^,iDataSize);
end;
good luck
Bookmarks