Borland Delphi form(DFM.rfh):
Class: Resource, Status: Complete, Last change: 06.03.2008 10:10:30
type
TFileHdr struc pas
bFF: byte
w10: word
ResName: pchar
w1030: word
ImageSize: ulong
ends: assert[@.bFF=0xFF,@.w10=10,@.w1030=0x1030,@.ImageSize=FileSize-@:Size]
data
0 TFileHdr FHdr
FHdr:Size array[4] of char Sign
assert (Sign='TPF0')and FHdr:Assert;
type
TValueType enum byte (vaNull, vaList, vaInt8, vaInt16, vaInt32, vaExtended,
vaString, vaIdent, vaFalse, vaTrue, vaBinary, vaSet, vaLString,
vaNil, vaCollection, vaSingle, vaCurrency, vaDate, vaWString,
vaInt64, vaUTF8String)
TExtended array[10] of Byte
TSingle array[4] of Byte
TCurrency array[8] of Byte
TDateTime array[8] of Byte
TLStr struc pas
L: ulong
S: array[@.L]of Char
ends:displ=(@.S)
TWStr struc pas
L: ulong
S: array[@.L]of WChar
ends:displ=(@.S)
include utf-8.rfi
type
TUtf8Str struc pas
L: ulong
S: TUtf8Array(@.L)
ends:displ=(@.S)
TInt64 struc pas
Lo: ulong
Hi: ulong
ends:displ=(HEX(@.Hi),HEX(@.Lo,8))
TValList forward
TCollList forward
TBinValRec struc pas
Count: ulong
D: raw[@.Count]
ends
TSetTbl array of str ?@[0]=0!Byte;
TValue struc pas
T: TValueType
D: case @.T of
vaList: TValList
vaInt8: byte
vaInt16: word
vaInt32: ulong
vaExtended: TExtended
vaString: str
vaLString: TLStr
vaIdent: str
vaBinary: TBinValRec
vaSet: TSetTbl
vaCollection: TCollList
vaSingle: TSingle
vaCurrency: TCurrency
vaDate: TDateTime
vaWString: TWStr
vaInt64: TInt64
vaUTF8String: TUtf8Str//TLStr
endc
ends
TValList array of TValue ?@.T=TValueType.vaNull;
TPropRec struc pas
Name: str
V: TValue
ends
TPropList array of TPropRec ?@.Name[0]=0!byte;
TIntVal struc pas
T: TValueType
V: case @.T of
vaInt8: byte
vaInt16: word
vaInt32: ulong
endc
ends: assert[(@.T=TValueType.vaInt8)or(@.T=TValueType.vaInt16)
or(@.T=TValueType.vaInt32)]
TStopByte enum byte (S=0):assert[@=0]
TCollRec struc pas
D: try
V: TIntVal
Z: TStopByte
E: void
endt
ListT: TValueType
Props: TPropList
ends: assert[@.ListT=TValueType.vaList]
TCollList array of TCollRec ?(@.D.Z=0)exc 0!byte;
type bit
TFilerFlags set 4 of (ffInherited,ffChildPos)
TFilerPrefixFlags struc pas
F: TFilerFlags
Rest: num+(4)
ends
type
TPrefixRec struc
TFilerPrefixFlags F
case (@.F.F and 0x2) of
0x2: TValue
endc ChildPos
ends:assert[@.F.Rest=0xF]
type
TObjectRec forward
TObjectTbl array of (try
Z: TStopByte
O: TObjectRec
endt) ?(@.Z=0) exc 0;
TObjectRec struc pas
Prefix: try
P: TPrefixRec
E: void
endt
ClassName: str
ObjectName: str
PropList: TPropList
ObjList: TObjectTbl
ends
data
FHdr:Size+4 TObjectRec RootObj
descr ('Delphi (All versions) Form File Format.',NL,
'Info Source: <Delphi>/source/vcl/classes.pas',NL)
Other specifications.
FlexT home page,
Author`s home page.