This should be easier, maybe this should be default in lazarus.exe :
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, Buttons,windows;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
dir : string;
f:text;
implementation
{ TForm1 }
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
dir := GetCurrentDir;
assignfile(f,'environmentoptions.xml');
rewrite(f);
writeln(f,'<?xml version="1.0"?>');
writeln(f,'<CONFIG>');
writeln(f,' <EnvironmentOptions>');
writeln(f,' <Version Value="102"/>');
writeln(f,' <LazarusDirectory Value="'+dir+'">');
writeln(f,' </LazarusDirectory>');
writeln(f,' <CompilerFilename Value="'+dir+'\fpc\2.2.2\bin\i386-win32\\fpc.exe">');
writeln(f,' </CompilerFilename>');
writeln(f,' <FPCSourceDirectory Value="'+dir+'\fpc\2.2.2\source">');
writeln(f,' </FPCSourceDirectory>');
writeln(f,' <MakeFilename Value="'+dir+'\fpc\2.2.2\bin\i386-win32\\make.exe">');
writeln(f,' </MakeFilename>');
writeln(f,' <TestBuildDirectory Value="'+dir+'\Temp\">');
writeln(f,' </TestBuildDirectory>');
writeln(f,' <Debugger Class="TGDBMIDebugger"/>');
writeln(f,' <DebuggerFilename Value="'+dir+'\mingw\bin\gdb.exe">');
writeln(f,' </DebuggerFilename>');
writeln(f,' <Desktop>');
writeln(f,' <MainIDE>');
writeln(f,' <WindowPlacement Value="RestoreWindowGeometry"/>');
writeln(f,' <CustomPosition Width="720" Height="69"/>');
writeln(f,' <WindowState Value="Normal"/>');
writeln(f,' <DockMode Value="Default"/>');
writeln(f,' <Visible Value="True"/>');
writeln(f,' </MainIDE>');
writeln(f,' </Desktop>');
writeln(f,' </EnvironmentOptions>');
writeln(f,'</CONFIG>');
closefile(f);
WinExec('lazarus.exe',1);
Close;
end;
initialization
{$I main.lrs}
end.