unit SUBT; interface uses _FileTypes; type TFile_SUBT = class(TFile) public procedure InitDataFields; override; procedure InitEditor; override; end; implementation uses ConnectionManager, Math, Classes, TypeDefs, _DataTypes, Forms, StdCtrls; procedure TFile_SUBT.InitDataFields; var tempi: Integer; begin inherited; FDataFields := TBlock.Create(Self, nil, 0, 'Base', '', nil); with FDataFields do begin AddField(TFileID, $00, 'FileID', '', nil); AddField(TLevelID, $04, 'LevelID', '', nil); tempi := 16; AddField(TUnused, $08, 'Unused data', '', @tempi); AddField(TRawLink, $18, 'Raw Address', '', nil); tempi := 4; with AddField(TArray, $1C, 'SUBT offsets array', '', @tempi) do begin tempi := 4; AddField(TInt, $00, 'Offset', '', @tempi); end; end; end; procedure TFile_SUBT.InitEditor; var lab: TLabel; begin FEditor := TFrame.Create(nil); lab := TLabel.Create(FEditor); lab.Left := 0; lab.Top := 0; lab.Caption := 'Hello World'; FEditor.InsertControl(lab); end; end.