DSDfmParser
1.0.0
オブジェクトとそのプロパティを変更することにより、Delphi DFMファイルを解析および保存します。
src -directoryのファイルDS.DfmParser.pasを含めるだけです。
uses DS.DfmParser; var
DfmFile: TDfmFile;
PanelObject: TDfmObject;
PanelCaption: String;
DfmText: String;
begin
DfmFile := TDfmFile.Create;
// Load file
DfmFile.LoadFromFile( ' MyDfmFile.dfm ' );
// Get object (visual element)
DfmObject := DfmFile.GetObject( ' Panel1 ' );
Writeln(DfmObject. Name ); // Panel1
Writeln(DfmObject.ClassName_); // TPanel
// Get properties
PanelCaption := PanelObject.GetProperty( ' Caption ' );
Writeln(PanelCaption); // 'Panel1'
// Set property
PanelObject.SetProperty( ' Caption ' , ' '' MyPanel '' ' )
// Delete property
PanelObject.DeleteProperty( ' Caption ' );
// Save file
DfmFile.Save( ' MyModifiedDfmFile.dfm ' );
// or get the context as string
DfmText := DfmFile.GetDfm;
Writeln(DfmText); // object Form1: TForm1...
DfmFile.Free;
end ;パーサーはDFMのみを解析しますが、コンテンツではありません。たとえば、文字列は、Delphi( 'Caption1' )でそれを書く方法のようにフォーマットされます。
値もマルチラインにすることができます。デルファイは一般に値の線をインデントしますが、そうでない場合は違いを生むべきではありません。 Delphiでフォームを保存した後、インデントを自動的に修正する必要があります。
例のプロジェクトは、 example -directoryに記載されています。