From: Olivier S. <ob...@us...> - 2003-10-26 01:46:16
|
Update of /cvsroot/jvcl/dev/help/tools/DtxEdit In directory sc8-pr-cvs1:/tmp/cvs-serv7952/dev/help/tools/DtxEdit Added Files: DtxEdit.cfg DtxEdit.dof DtxEdit.dpr DtxEdit.res FileItem.pas FileWrapper.pas Main.dfm Main.pas Log Message: New tool to edit Dtx files. Doesn't save yet --- NEW FILE: DtxEdit.cfg --- -$A8 -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L+ -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$YD -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 -LE"c:\prog\delphi6\Projects\Bpl" -LN"c:\prog\delphi6\Projects\Bpl" --- NEW FILE: DtxEdit.dof --- [FileVersion] Version=6.0 [Compiler] A=8 B=0 C=1 D=1 E=0 F=0 G=1 H=1 I=1 J=0 K=0 L=1 M=0 N=1 O=1 P=1 Q=0 R=0 S=0 T=0 U=0 V=1 W=0 X=1 Y=1 Z=1 ShowHints=1 ShowWarnings=1 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [Linker] MapFile=0 OutputObjs=0 ConsoleApp=1 DebugInfo=0 RemoteSymbols=0 MinStackSize=16384 MaxStackSize=1048576 ImageBase=4194304 ExeDescription= [Directories] OutputDir= UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= SearchPath= Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;webdsnap;websnap;soaprtl;dbexpress;dbxcds;indy;dclOffice2k;tdbf_d6r;IcsDel60;ConnectionManagerComponents;DJCL60;JvCoreD6R;JvAppFrmD6R;JvCustomD6R;JvCmpD6R;JvMMD6R;JvStdCtrlsD6R;JvSystemD6R;JvCtrlsD6R Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] RunParams= HostApplication= Launcher= UseLauncher=0 DebugCWD= [Language] ActiveLang= ProjectLang= RootDir=C:\Prog\Delphi6\Bin\ [Version Info] IncludeVerInfo=0 AutoIncBuild=0 MajorVer=1 MinorVer=0 Release=0 Build=0 Debug=0 PreRelease=0 Special=0 Private=0 DLL=0 Locale=1036 CodePage=1252 [Version Info Keys] CompanyName= FileDescription= FileVersion=1.0.0.0 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName= ProductVersion=1.0.0.0 Comments= [Excluded Packages] c:\prog\delphi6\Projects\Bpl\JvTimeFrameworkD6D.bpl=JVCL Time Framework --- NEW FILE: DtxEdit.dpr --- program DtxEdit; uses Forms, Main in 'Main.pas' {frmMain}, FileWrapper in 'FileWrapper.pas', FileItem in 'FileItem.pas'; {$R *.res} begin Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; end. --- NEW FILE: DtxEdit.res --- (This appears to be a binary file; contents omitted.) --- NEW FILE: FileItem.pas --- unit FileItem; interface uses Contnrs, Classes; type TFileItem = class (TObject) private FName: string; FSummary: string; FDescription: string; FReturnValue: string; FAuthor: string; FSeeAlsoAsString: string; FParameters: string; public constructor Create(slist : TStringList; var curLineIndex : Integer); destructor Destroy; override; function GetRawText : string; property Name : string read FName write FName; property Summary : string read FSummary write FSummary; property Author : string read FAuthor write FAuthor; property Description : string read FDescription write FDescription; property ReturnValue : string read FReturnValue write FReturnValue; property SeeAlsoAsString : string read FSeeAlsoAsString write FSeeAlsoAsString; property Parameters : string read FParameters write FParameters; end; TFileItemList = class(TObjectList) private function GetItems(Index: Integer): TFileItem; procedure SetItems(Index: Integer; const Value: TFileItem); public property Items[Index : Integer] : TFileItem read GetItems write SetItems; default; end; implementation uses JclStrings, SysUtils; { TFileItem } constructor TFileItem.Create(slist: TStringList; var curLineIndex: Integer); var curLine : string; curValue : ^string; begin inherited Create; curLine := slist[curLineIndex]; FName := Copy(curLine, 3, Length(curLine)); curValue := nil; repeat curLine := slist[curLineIndex]; if AnsiCompareText(curLine, 'Summary') = 0 then curValue := @FSummary else if AnsiCompareText(curLine, 'Author') = 0 then curValue := @FAuthor else if AnsiCompareText(curLine, 'Description') = 0 then curValue := @FDescription else if AnsiCompareText(curLine, 'Return value') = 0 then curValue := @FReturnValue else if AnsiCompareText(curLine, 'See Also') = 0 then curValue := @FSeeAlsoAsString else if AnsiCompareText(curLine, 'Parameters') = 0 then curValue := @FParameters else if (curValue <> nil) and not StrHasPrefix(curLine, ['----------']) then begin if curValue^ = '' then begin if Copy(curLine, 1, 2) = ' ' then curValue^ := Copy(curLine, 3, Length(curLine)) else curValue^ := curLine; end else begin if Copy(curLine, 1, 2) = ' ' then curValue^ := curValue^ + ' ' + Copy(curLine, 3, Length(curLine)) else curValue^ := curValue^ + #13#10 + curLine; end; end; Inc(curLineIndex) until (curLineIndex >= slist.count) or StrHasPrefix(trim(slist[curLineIndex]), ['@@']); // go back one line Dec(curLineIndex); end; destructor TFileItem.Destroy; begin inherited; end; function TFileItem.GetRawText: string; begin Result := '----------------------------------------------------------------------------------------------------'#13#10; Result := '@@' + FName + #13#10; Result := Result + 'Summary'#13#10; Result := Result + ' ' + WrapText(FSummary, #13#10' ', [' ', #9, '-'], 100) + #13#10; if FAuthor <> '' then begin Result := Result + 'Author'#13#10; Result := Result + ' ' + WrapText(FAuthor, #13#10' ', [' ', #9, '-'], 100) + #13#10; end; if FDescription <> '' then begin Result := Result + 'Description'#13#10; Result := Result + ' ' + WrapText(FDescription, #13#10' ', [' ', #9, '-'], 100) + #13#10; end; if FParameters <> '' then begin Result := Result + 'Parameters'#13#10; Result := Result + ' ' + WrapText(FParameters, #13#10' ', [' ', #9, '-'], 100) + #13#10; end; if FReturnValue <> '' then begin Result := Result + 'Return value'#13#10; Result := Result + ' ' + WrapText(FReturnValue, #13#10' ', [' ', #9, '-'], 100) + #13#10; end; if FSeeAlsoAsString <> '' then begin Result := Result + 'See Also'#13#10; Result := Result + ' ' + WrapText(FSeeAlsoAsString, #13#10' ', [' ', #9, '-'], 100) + #13#10; end; end; { TFileItemList } function TFileItemList.GetItems(Index: Integer): TFileItem; begin Result := TFileItem(inherited Items[Index]); end; procedure TFileItemList.SetItems(Index: Integer; const Value: TFileItem); begin inherited Items[Index] := Value; end; end. --- NEW FILE: FileWrapper.pas --- unit FileWrapper; interface uses FileItem; type TFileWrapper = class private FStatus: string; FPackage: string; FItems: TFileItemList; protected public constructor Create(FileName : string); destructor Destroy; override; property Package : string read FPackage write FPackage; property Status : string read FStatus write FStatus; property Items : TFileItemList read FItems; end; implementation uses Classes, SysUtils, JclStrings; { TFileWrapper } constructor TFileWrapper.Create(FileName: string); var dtx : TFileStream; sstr : TStringStream; slist : TStringList; curLine : string; curLineIndex : Integer; begin inherited Create; FItems := TFileItemList.Create; // read the given file sstr := TStringStream.Create(''); slist := TStringList.Create; try dtx := TFileStream.Create(FileName, fmOpenRead); sstr.CopyFrom(dtx, dtx.Size); dtx.Free; slist.Text := sstr.DataString; finally sstr.Free; end; // now that it's in a string list, it's easier to read // line by line curLineIndex := 0; while curLineIndex < slist.Count do begin curLine := trim(slist[curLineIndex]); if StrHasPrefix(curLine, ['##Package:']) then FPackage := Copy(curLine, Pos(':', curLine)+2, Length(curLine)); if StrHasPrefix(curLine, ['##Status:']) then FStatus := Copy(curLine, Pos(':', curLine)+2, Length(curLine)); if StrHasPrefix(curLine, ['@@']) then // found start of an item FItems.Add(TFileItem.Create(slist, curLineIndex)); Inc(curLineIndex); end; slist.Free; end; destructor TFileWrapper.Destroy; begin FItems.Free; inherited; end; end. --- NEW FILE: Main.dfm --- object frmMain: TfrmMain Left = 192 Top = 107 Width = 800 Height = 600 Caption = 'DtxEdit' Color = clBtnFace Constraints.MinHeight = 300 Constraints.MinWidth = 500 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object jspVertSplitter: TJvSplitter Left = 177 Top = 54 Width = 2 Height = 500 Cursor = crHSplit Beveled = True end object pnlItems: TPanel Left = 0 Top = 54 Width = 177 Height = 500 Align = alLeft BevelOuter = bvNone Constraints.MinWidth = 150 TabOrder = 0 DesignSize = ( 177 500) object jlbItems: TJvListBox Left = 8 Top = 12 Width = 157 Height = 477 Anchors = [akLeft, akTop, akRight, akBottom] ItemHeight = 13 Background.FillMode = bfmTile Background.Visible = False TabOrder = 0 OnClick = jlbItemsClick end end object pnlEdit: TPanel Left = 179 Top = 54 Width = 613 Height = 500 Align = alClient BevelOuter = bvNone Constraints.MinWidth = 200 TabOrder = 1 DesignSize = ( 613 500) object jpcEdit: TJvPageControl Left = 12 Top = 12 Width = 589 Height = 478 ActivePage = tshElements Anchors = [akLeft, akTop, akRight, akBottom] MultiLine = True TabIndex = 0 TabOrder = 0 object tshElements: TTabSheet Caption = 'Elements' Enabled = False object lblSummary: TLabel Left = 8 Top = 20 Width = 100 Height = 13 Alignment = taRightJustify AutoSize = False Caption = 'Summary' end object lblDescription: TLabel Left = 8 Top = 88 Width = 100 Height = 13 Alignment = taRightJustify AutoSize = False Caption = 'Description' end object lblAuthor: TLabel Left = 8 Top = 60 Width = 100 Height = 13 Alignment = taRightJustify AutoSize = False Caption = 'Author' end object memSummary: TMemo Left = 120 Top = 16 Width = 449 Height = 37 TabOrder = 0 OnChange = memSummaryChange end object memDescription: TMemo Left = 120 Top = 84 Width = 449 Height = 105 ScrollBars = ssVertical TabOrder = 1 OnChange = memDescriptionChange end object memAuthor: TMemo Left = 120 Top = 56 Width = 449 Height = 21 TabOrder = 2 OnChange = memAuthorChange end end object tshRaw: TTabSheet Caption = 'Raw text' Enabled = False ImageIndex = 1 DesignSize = ( 581 450) object memRaw: TMemo Left = 12 Top = 12 Width = 557 Height = 426 Anchors = [akLeft, akTop, akRight, akBottom] Lines.Strings = ( '') TabOrder = 0 end end end end object JvStatusBar1: TJvStatusBar Left = 0 Top = 554 Width = 792 Height = 19 Panels = <> SimplePanel = False end object jvcControls: TJvControlBar Left = 0 Top = 0 Width = 792 Height = 54 Align = alTop AutoSize = True BevelEdges = [beBottom] TabOrder = 3 object jtbMain: TJvToolBar Left = 11 Top = 2 Width = 81 Height = 22 Align = alNone ButtonHeight = 21 ButtonWidth = 56 Caption = 'jtbMain' EdgeBorders = [] Flat = True Menu = jmnMain ShowCaptions = True TabOrder = 0 end object pnlControls: TPanel Left = 174 Top = 28 Width = 391 Height = 22 BevelOuter = bvNone DragKind = dkDock DragMode = dmAutomatic TabOrder = 1 object lblStatus: TLabel Left = 200 Top = 4 Width = 30 Height = 13 Caption = 'Status' end object ledPackage: TLabeledEdit Left = 56 Top = 0 Width = 133 Height = 21 EditLabel.Width = 43 EditLabel.Height = 13 EditLabel.Caption = 'Package' LabelPosition = lpLeft LabelSpacing = 8 TabOrder = 0 end object cmbStatus: TComboBox Left = 240 Top = 0 Width = 145 Height = 21 ItemHeight = 13 TabOrder = 1 Items.Strings = ( 'Generated' 'Updating' 'Completed') end end object jtbButtons: TJvToolBar Left = 11 Top = 28 Width = 150 Height = 22 Align = alNone Caption = 'jtbButtons' EdgeBorders = [] Flat = True Images = imlImages ParentShowHint = False ShowHint = True TabOrder = 2 object tbtOpen: TToolButton Left = 0 Top = 0 Action = actOpen end object tbtSave: TToolButton Left = 23 Top = 0 Action = actSave end object tbtExit: TToolButton Left = 46 Top = 0 Action = actExit end object ToolButton6: TToolButton Left = 69 Top = 0 Width = 8 Caption = 'ToolButton6' ImageIndex = 5 Style = tbsSeparator end object tbtNextItem: TToolButton Left = 77 Top = 0 Action = actNextItem end object tbtPrevItem: TToolButton Left = 100 Top = 0 Action = actPrevItem end end end object jmnMain: TJvMainMenu Images = imlImages ImageMargin.Left = 1 ImageMargin.Top = 1 ImageMargin.Right = 1 ImageMargin.Bottom = 1 ImageSize.Height = 0 ImageSize.Width = 0 Style = msOffice Left = 756 Top = 28 object mnuFile: TMenuItem Caption = '&File' object mnuOpen: TMenuItem Action = actOpen end object mnuSave: TMenuItem Action = actSave end object N1: TMenuItem Caption = '-' end object mnuExit: TMenuItem Action = actExit end end object mnuNavigate: TMenuItem Caption = '&Navigate' ImageIndex = 3 object mnuNextItem: TMenuItem Action = actNextItem end object mnuPrevItem: TMenuItem Action = actPrevItem end end end object aclActions: TActionList Images = imlImages Left = 728 Top = 28 object actExit: TAction Category = 'File' Caption = '&Exit' Hint = 'Exit|Exit this program' ImageIndex = 4 ShortCut = 16465 OnExecute = actExitExecute end object actOpen: TAction Category = 'File' Caption = '&Open' ImageIndex = 2 ShortCut = 16463 OnExecute = actOpenExecute end object actSave: TAction Category = 'File' Caption = '&Save' ImageIndex = 3 ShortCut = 16467 OnExecute = actSaveExecute end object actNextItem: TAction Category = 'Navigate' Caption = '&Next item' ImageIndex = 0 end object actPrevItem: TAction Category = 'Navigate' Caption = '&Previous item' ImageIndex = 1 end end object imlImages: TImageList Left = 700 Top = 28 Bitmap = { 494C010105000900040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000003000000001002000000000000030 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000F8F9FA00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00F8F9FA00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000F8F9FA008596DC000F30B5001636 B8001A39B8001A39B7001839BB001739B9001337BD000D35C0000A32C000072F BE00022CC0000026B6007F90D100F8F9FA000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF001138D4001F44D9002A4D DA002F51DA002E51DB002C51DB002951DC00244FDF001C4BE0001547E0000D42 E000053AE0000132D7000026B500FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF001941DE002C50E1003759 E3004464E5007E94ED00E2E8FB00FFFFFF00FFFFFF00DCE4FB007192F100134B E9000A43E8000439E000022BBE00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF002248DF00385AE3004363 E400A2B2F200FFFFFF00BBC8F600728FEE006F8FEF00BACAF800FFFFFF0098B1 F6000E48E900083EE100052EC100FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF002C51E1004261E4008B9E EE00FFFFFF008398EE004669E6004066E7003763E8002C5DE9007294F100FFFF FF006B8DF0000F43E1000B33C100FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF003558E2004B68E500EBEF FC00BBC6F5004E6DE600496AE600FFFFFF00FFFFFF002D5CE8002456E800B6C7 F800DBE3FB001848E0001238C200FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF003F5FE400536FE700FFFF FF008195ED00506DE6004868E500FFFFFF00FFFFFF002C58E6002352E6006587 EE00FFFFFF001F4CDF00183CC000FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF004564E5005A75E800FFFF FF008195ED00506CE6004867E500FFFFFF00FFFFFF002C55E4002450E4006483 EC00FFFFFF00254EDE001D3FBF00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF004F6CE600637DE800EFF1 FD00B7C2F500516CE6004865E400FFFFFF00FFFFFF002C52E200264EE200B0BF F500E0E6FB002A50DC002141BF00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF00536FE7006C85EA0097A9 F100FFFFFF008093ED004C67E5004261E4003A5BE3003054E2006C86EB00FFFF FF00728AEC002D51DC002342BE00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF005E79E8007A91EC007089 EB00A6B5F200FFFFFF00B1BDF4007086EA006B83E900B0BDF400FFFFFF0095A8 F0003053E1002F52DB002342BD00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF006B85EA008DA1EF008097 ED006F88EB0097A8F000EEF0FC00FFFFFF00FFFFFF00E9EDFC00899DEE004162 E4003A5CE3003053DC001E3EBC00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF00778EEC009DAEF1008CA0 EF007990EC007089EB006A83E900657EE900627CE9005D78E8005673E7004E6C E6004162E4002F52DB001939BA00FFFFFF000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000F8F9FA00B2BFF400768DEC006781 EA005B76E8005470E7004F6CE6004A69E6004B69E5004665E5003F60E3003B5D E3003154E2002347D8008A9BDE00F8F9FA000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000F8F9FA00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00F8F9FA00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000E7CEBD00CEB5A500CEB5 AD00CEB5A500CEB5A500CEBDAD00CEB5A500CEBDAD00CEB5A500CEBDAD00CEB5 A500CEB5AD00CEB5A500E7CEC6000000000000000000E7CEBD00CEB5A500CEB5 AD00CEB5A500CEB5A500CEBDAD00CEB5A500CEB5AD00CEBDAD00CEB5A500CEBD AD00CEB5A500CEB5AD00E7CEBD00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000EFD6C600BD8C6300CE946B00D694 6B00DE9C7300D69C7300DE9C6B00D69C7300D6A57300CEA57B00CEA57300CEA5 7300C6A57300BD946B00A57B5A00E7CEBD00EFD6C600BD8C6300CE946B00D694 6B00DE9C7300D69C7300DE9C6B00D69C7300D6A57300CEA57B00CEA57300CEA5 7300C6A57300BD946B00A57B5A00E7CEBD0000000000F7F7F700D6D6D600D6D6 D600C6C6C600D6D6D600C6C6C600D6D6D600C6C6C600D6D6D600C6C6C600D6D6 D600C6C6C600DEDEDE00F7F7F700000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000E7CEBD00E7A57300F7B57B00FFB5 8400FFB58400FFBD8400FFBD8C00FFBD8C00FFC68C00F7CE9400F7CE9400E7CE 9400E7CE9400DEBD8400BD946B00CEB5AD00E7CEBD00E7A57300F7B57B00FFB5 8400FFB58400FFBD8400FFBD8C00FFC68C00FFC68C00F7CE9400F7CE9400E7CE 9400E7CE9400DEBD8400BD946B00CEB5AD00F7F7F700C6C6C6008C8C8C007373 7300737373007373730073737300737373007373730073737300737373007373 7300737373008C8C8C00BDBDBD00F7F7F70000000000ADADAD006B3131008439 390084313100A5A5A500A5A5A500A5A5A5009C9C9C00A5A5A500A5A5A5008421 210084212100843939008439390000000000EFCEB500F7B57B00FFB58400FFC6 8C00FFC68C00FFC68C00FFC68C00FFCE9400FFD69400FFD69C00FFDE9C00F7DE 9C00EFD69400E7CE9400C6A57300CEB5A500EFCEB500F7B57B00FFB58400FFC6 8C00FFC68C00FFC68C00FFC68C00FFCE9400FFCE9400FFD69C00FFDE9C00F7DE 9C00EFD69400E7CE9400C6A57300CEB5A500DEDEDE000873A5000873A5000873 A5000873A5000873A5000873A5000873A5000873A5000873A5000873A5000873 A5000873A500636363008C8C8C00DEDEDE0000000000AD736300C6525200C652 5200843939009C8C8C00B5636300D6A5A500FFFFFF00EFEFEF00000000008421 210084212100C65252008439390000000000EFD6BD00FFB58400FFBD8C00FFC6 8C00FFC69400FFCE8C00FFC69400FFDEBD00FFEFDE00FFDEA500FFDE9C00F7DE 9C00F7DE9C00E7CE9400CEA57B00CEBDAD00EFD6BD00FFB58400FFBD8C00FFC6 8C00FFC69400FFCE8C00FFC69400FFE7BD00FFEFDE00FFDEA500FFDE9C00F7DE 9C00F7DE9C00E7CE9400CEA57B00CEBDAD00189CC600189CC6009CF7FF006BD6 FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6 FF00299CBD000873A50073737300C6C6C60000000000AD736300C6525200C652 520084393900BDA5A500AD393900B57B7B00CEC6C600FFFFFF00EFEFEF008421 210084212100C65252008439390000000000F7D6BD00FFBD8400FFC68C00FFCE 9400FFCE9400FFCE9400FFDEBD00FFF7F700FFFFFF00FFF7E700FFDEA500FFDE 9C00F7DE9C00EFCE9400CEA57B00CEB5A500F7D6BD00FFBD8400FFC68C00FFCE 9400FFCE9400FFCE9400FFCE9400FFE7CE00FFFFFF00FFDEA500FFD69C00FFDE 9C00F7DE9C00EFCE9400CEA57B00CEB5A500189CC600189CC6007BE7F7009CFF FF007BDEFF007BE7FF007BDEFF007BE7FF007BDEFF007BE7FF007BDEFF007BDE FF0042B5DE00187B9C0063636300BDBDBD0000000000AD736300C6525200C652 520084393900D6BDBD00942929009C636300A5A5A500CEC6C600FFFFFF008421 210084212100C65252008439390000000000F7D6BD00FFBD8C00FFCE9400FFCE 9400FFCE9400FFDEBD00FFF7F700FFFFFF00FFFFFF00FFFFFF00FFF7E700FFD6 9C00FFD69C00EFCE9400D6A57B00D6BDAD00F7D6BD00FFBD8C00FFCE9400FFCE 9400FFCE9400FFCE9400FFCE9400FFE7CE00FFFFFF00FFD6A500FFD69400FFD6 9C00FFD69400EFCE9400D6A57B00D6BDAD00189CC60021A5CE0042B5DE009CFF FF0084E7FF0084EFFF0084E7FF0084E7FF0084EFFF0084E7FF0084E7FF0084E7 FF0042BDEF00189CC600636363008C8C8C0000000000AD736300C6525200C652 520084393900D6BDBD00BD848400BDA5A5009C8C8C00A5A5A500CEC6C6008421 210084212100C65252008439390000000000FFD6BD00FFC68C00FFCE9C00FFCE 9400FFD6A500FFEFDE00FFEFDE00FFF7E700FFFFFF00FFEFDE00FFEFDE00FFDE C600F7CE9400FFC68C00D6A57300D6BDAD00FFD6BD00FFC68C00FFCE9400FFD6 9C00FFCE9400FFCE9400FFC69400FFE7CE00FFFFFF00FFCE9400FFCE9400FFCE 9400F7CE9400FFC68C00D6A57B00D6BDAD00189CC60042B5DE00189CC600A5FF FF0094F7FF0094F7FF0094F7FF0094F7FF0094F7FF0094F7FF0094F7FF0094F7 FF0052BDE7005ABDCE000873A5007373730000000000AD736300C6525200C652 5200C6525200C6525200C6525200C6525200C6525200C6525200C6525200C652 5200C6525200C65252008439390000000000FFD6BD00FFCE9400FFD69400FFD6 9400FFCE9400FFCE9400FFC68C00FFE7CE00FFFFFF00FFC69400FFC68C00FFC6 8C00FFC68C00FFBD8C00DEAD7B00D6BDAD00FFD6BD00FFCE9400FFD69400FFD6 9400FFD6A500FFEFD600FFEFDE00FFF7E700FFFFFF00FFEFDE00FFEFDE00FFDE BD00FFBD8C00FFBD8C00DEAD7B00D6BDAD00189CC6006BD6FF00189CC6008CF7 F7009CF7FF009CFFFF009CFFFF009CFFFF009CFFFF009CFFFF009CFFFF009CFF FF005AC6FF0094F7FF00187B9C007373730000000000AD736300C6525200C652 5200B57B7B00B57B7B00B57B7B00B57B7B00B57B7B00B57B7B00B57B7B00B57B 7B00C6525200C65252008439390000000000FFDEC600FFCE9400FFD69C00FFD6 9C00FFCE9400FFCE9400FFC68C00FFE7CE00FFFFFF00FFC69400FFBD8C00FFBD 8C00FFBD8400FFBD8400E7A57B00CEBDAD00FFDEC600FFCE9400FFD69C00FFD6 9C00FFCE9400FFDEBD00FFF7F700FFFFFF00FFFFFF00FFFFFF00FFEFDE00FFC6 9400FFBD8400FFB58400E7A57B00CEBDAD00189CC60084D6FF00189CC6006BBD DE000000000000000000F7F7F700000000000000000000000000000000000000 000084E7FF0000000000187B9C008C8C8C0000000000AD736300C6525200B57B 7B00FFFFFF00EFEFEF00FFFFFF00EFEFEF00FFFFFF00EFEFEF00FFFFFF00EFEF EF00B57B7B00C65252008439390000000000FFDEC600FFD69C00FFDEA500FFDE 9C00FFD69400FFCE9400FFCE9400FFE7CE00FFFFFF00FFC69400FFBD8400FFBD 8C00FFBD8400FFB58400E7A57300D6BDAD00FFDEC600FFD69C00FFDEA500FFDE 9C00FFD69400FFCE9400FFDEBD00FFF7F700FFFFFF00FFEFDE00FFC69400FFBD 8400FFBD8C00FFB58400E7A57300D6BDAD00189CC60084E7FF0052BDE700189C C600189CC600189CC600189CC600189CC600189CC600189CC600189CC600189C C600189CC600189CC600188CB500BDBDBD0000000000AD736300C6525200B57B 7B00EFEFEF00B5B5B500B5B5B500B5B5B500BDBDBD00B5B5B500BDBDBD00FFFF FF00B57B7B00C65252008439390000000000FFDEC600FFDE9C00FFE7A500FFDE A500FFD69400FFD69C00FFCE9400FFDEBD00FFEFDE00FFC69400FFC68C00FFBD 8400FFB58400FFBD8400E7A57300D6BDAD00FFDEC600FFDE9C00FFE7A500FFDE A500FFD69400FFD69C00FFCE9400FFDEBD00FFEFDE00FFC69400FFC68C00FFBD 8400FFB58400FFBD8400E7A57300D6BDAD00189CC6009CF7FF008CF7FF0084EF FF008CF7FF008CF7FF0084EFFF00000000000000000000000000000000000000 0000189CC600187B9C00C6C6C600F7F7F70000000000AD736300C6525200B57B 7B00EFEFEF00FFFFFF00EFEFEF00FFFFFF00EFEFEF00FFFFFF00EFEFEF00FFFF FF00B57B7B00C65252008431310000000000FFDEC600FFE7A500FFF7AD00FFE7 A500FFDEA500FFD69C00FFD69400FFD69C00FFD69400FFCE9400FFC68C00FFC6 8C00FFBD8C00FFBD8400E7A57300CEB5AD00FFDEC600FFE7A500FFF7AD00FFE7 A500FFDEA500FFD69C00FFD69400FFD69C00FFD69400FFCE9400FFC68C00FFC6 8C00FFBD8C00FFBD8400E7A57300CEB5AD00189CC600000000009CFFFF009CFF FF009CFFFF009CFFFF0000000000189CC600189CC600189CC600189CC600189C C600189CC600D6D6D600F7F7F7000000000000000000AD736300C6525200B57B 7B00FFFFFF00ADADAD00B5B5B500B5B5B500B5B5B500B5B5B500BDBDBD00FFFF FF00B57B7B00C65252008439390000000000FFDEC600FFEFAD00FFFFB500FFEF AD00FFE7A500FFDEA500FFDE9C00FFD69C00FFD69C00FFD69C00FFD69400FFCE 9400FFC68C00FFBD8400DE9C7300CEB5A500FFDEC600FFEFAD00FFFFB500FFEF AD00FFE7A500FFDEA500FFDE9C00FFD69C00FFD69C00FFD69C00FFD69400FFCE 9400FFC68C00FFBD8400DE9C7300CEB5A5000000000021A5CE00000000000000 00000000000000000000189CC600C6C6C600F7F7F70000000000000000000000 00000000000000000000000000000000000000000000AD736300C6525200B57B 7B00EFEFEF00FFFFFF00FFFFFF00EFEFEF00FFFFFF00FFFFFF00EFEFEF00FFFF FF00B57B7B00C65252008439390000000000F7EFD600FFDE9C00FFEFAD00FFE7 A500FFDE9C00FFD69C00FFD69C00FFD69400FFCE9400FFCE9400FFCE9400FFC6 8C00FFBD8C00FFB58400CE946B00E7CEC600F7EFD600FFDE9C00FFEFAD00FFE7 A500FFDE9C00FFD69C00FFD69C00FFD69400FFCE9400FFCE9400FFCE9400FFC6 8C00FFBD8C00FFB58400CE946B00E7CEC600000000000000000021A5CE0021A5 CE0021A5CE0021A5CE00DEDEDE00F7F7F7000000000000000000000000000000 00000000000000000000000000000000000000000000AD73630084393900B57B 7B00B5B5B500B5B5B500B5B5B500B5B5B500B5B5B500B5B5B500B5B5B500B5B5 B500B57B7B0084393900ADADAD000000000000000000F7DECE00FFE7C600FFDE C600FFDEBD00FFDEC600FFD6BD00FFDEC600FFD6BD00FFD6BD00F7D6BD00FFD6 BD00F7D6BD00EFD6BD00F7DEC6000000000000000000F7DECE00FFE7C600FFDE C600FFDEBD00FFDEC600FFD6BD00FFDEC600FFD6BD00FFD6BD00F7D6BD00FFD6 BD00F7D6BD00EFD6BD00F7DEC600000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000300000000100010000000000800100000000000000000000 000000000000000000000000FFFFFF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000080010000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000800100000000000080018001FFFFFFFF000000008001FFFF 0000000000008001000000000000802100000000000080010000000000008001 000000000000800100000000000080010000000000008001000000000DF48001 00000000000080010000000001F08001000000004201800100000000BC7F8001 00000000C0FF800180018001FFFFFFFF} end object imlDisabledImages: TImageList Left = 672 Top = 28 end object odlOpen: TOpenDialog Filter = 'Help source file (*.dtx)|*.dtx|All files (*.*)|*.*' FilterIndex = 0 Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing] Left = 644 Top = 28 end end --- NEW FILE: Main.pas --- unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ToolWin, ComCtrls, JvToolBar, Menus, JvMenus, ExtCtrls, StdCtrls, JvListBox, JvCtrls, JvCoolBar, JvSplitter, JvStatusBar, JvComCtrls, JvControlBar, ImgList, ActnList, FileWrapper; type TfrmMain = class(TForm) jlbItems: TJvListBox; pnlItems: TPanel; jmnMain: TJvMainMenu; jtbMain: TJvToolBar; mnuFile: TMenuItem; mnuOpen: TMenuItem; N1: TMenuItem; mnuExit: TMenuItem; mnuSave: TMenuItem; jspVertSplitter: TJvSplitter; pnlEdit: TPanel; JvStatusBar1: TJvStatusBar; jpcEdit: TJvPageControl; tshElements: TTabSheet; tshRaw: TTabSheet; memRaw: TMemo; jvcControls: TJvControlBar; pnlControls: TPanel; ledPackage: TLabeledEdit; mnuNavigate: TMenuItem; mnuNextItem: TMenuItem; mnuPrevItem: TMenuItem; lblStatus: TLabel; cmbStatus: TComboBox; jtbButtons: TJvToolBar; aclActions: TActionList; imlImages: TImageList; actExit: TAction; actOpen: TAction; actSave: TAction; actNextItem: TAction; actPrevItem: TAction; imlDisabledImages: TImageList; tbtNextItem: TToolButton; tbtPrevItem: TToolButton; tbtOpen: TToolButton; tbtSave: TToolButton; tbtExit: TToolButton; ToolButton6: TToolButton; odlOpen: TOpenDialog; lblSummary: TLabel; memSummary: TMemo; memDescription: TMemo; lblDescription: TLabel; lblAuthor: TLabel; memAuthor: TMemo; procedure actExitExecute(Sender: TObject); procedure actOpenExecute(Sender: TObject); procedure actSaveExecute(Sender: TObject); procedure jlbItemsClick(Sender: TObject); procedure memSummaryChange(Sender: TObject); procedure memDescriptionChange(Sender: TObject); procedure memAuthorChange(Sender: TObject); private { Private declarations } FFileWrapper : TFileWrapper; procedure updateItem; public { Public declarations } destructor Destroy; override; end; var frmMain: TfrmMain; implementation uses FileItem; {$R *.dfm} procedure TfrmMain.actExitExecute(Sender: TObject); begin Application.Terminate; end; procedure TfrmMain.actOpenExecute(Sender: TObject); var i : Integer; begin if odlOpen.Execute then begin FFileWrapper.Free; FFileWrapper := TFileWrapper.Create(odlOpen.FileName); cmbStatus.Text := FFileWrapper.Status; ledPackage.Text := FFileWrapper.Package; // update caption Caption := 'DtxEdit - '+odlOpen.FileName; // update item list jlbItems.Items.Clear; for i := 0 to FFileWrapper.Items.Count - 1 do begin jlbItems.Items.Add(FFileWrapper.Items[i].Name); end; // activate pages tshElements.Enabled := True; tshRaw.Enabled := True; end; end; procedure TfrmMain.actSaveExecute(Sender: TObject); begin // end; destructor TfrmMain.Destroy; begin FFileWrapper.Free; inherited; end; procedure TfrmMain.jlbItemsClick(Sender: TObject); begin updateItem; end; procedure TfrmMain.updateItem; var curItem : TFileItem; begin curItem := FFileWrapper.Items[jlbItems.ItemIndex]; // raw text first memRaw.Text := curItem.GetRawText; // then the elements memSummary.Text := curItem.Summary; memDescription.Text := curItem.Description; end; procedure TfrmMain.memSummaryChange(Sender: TObject); begin FFileWrapper.Items[jlbItems.ItemIndex].Summary := memSummary.Text; end; procedure TfrmMain.memDescriptionChange(Sender: TObject); begin FFileWrapper.Items[jlbItems.ItemIndex].Description := memDescription.Text; end; procedure TfrmMain.memAuthorChange(Sender: TObject); begin FFileWrapper.Items[jlbItems.ItemIndex].Author := memAuthor.Text; end; end. |