meillo@0: unit unit_Editor_CreateAR; meillo@0: meillo@0: interface//#################################################################################### meillo@0: meillo@0: uses meillo@0: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, meillo@0: Dialogs, StdCtrls, Grids, ValEdit, ShellApi; meillo@0: meillo@0: type meillo@0: Tform_editor_CreateAR = class(TForm) meillo@0: btn_Finish: TButton; meillo@0: btn_Back: TButton; meillo@0: FinalSettings: TValueListEditor; meillo@0: procedure FormCreate(Sender: TObject); meillo@0: procedure FormShow(Sender: TObject); meillo@0: procedure FormClose(Sender: TObject; var Action: TCloseAction); meillo@0: procedure btn_BackClick(Sender: TObject); meillo@0: procedure btn_FinishClick(Sender: TObject); meillo@0: private meillo@0: { Private declarations } meillo@0: public meillo@0: { Public declarations } meillo@0: end; meillo@0: meillo@0: var meillo@0: form_editor_CreateAR: Tform_editor_CreateAR; meillo@0: meillo@0: implementation//############################################################################### meillo@0: uses unit_Editor, unit_Editor_tutorial, unit_Start; meillo@0: {$R *.dfm}//################################################################################### meillo@0: {$I-} meillo@0: meillo@0: //------------------------------------------------------------------------------ form create meillo@0: procedure Tform_editor_CreateAR.FormCreate(Sender: TObject); meillo@0: begin meillo@0: // meillo@0: form_Editor_CreateAR.Caption := 'Create your CD-Autorunner'; meillo@0: btn_Finish.Caption := 'Finish'; meillo@0: btn_Back.Caption := 'Back'; meillo@0: FinalSettings.TitleCaptions.Strings[0] := ' Settings'; meillo@0: FinalSettings.TitleCaptions.Strings[1] := ' Value'; meillo@0: FinalSettings.Keys[1] := 'Background-Picture'; meillo@0: FinalSettings.Keys[2] := 'Enter-Picture'; meillo@0: FinalSettings.Keys[3] := 'Autorun-Icon'; meillo@0: FinalSettings.Keys[4] := 'CD-Root-Dir'; meillo@0: FinalSettings.Keys[6] := 'Enter X-Position'; meillo@0: FinalSettings.Keys[7] := 'Enter Y-Position'; meillo@0: FinalSettings.Keys[8] := 'Welcome-Kind'; meillo@0: FinalSettings.Keys[9] := 'Delay'; meillo@0: FinalSettings.Keys[10] := 'Starts File/Dir'; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: //------------------------------------------------------------------------------ form show meillo@0: procedure Tform_editor_CreateAR.FormShow(Sender: TObject); meillo@0: begin meillo@0: // disable drag'n'drop of 'img_button' meillo@0: form_editor.draggingstatus := 3; meillo@0: // disable menu meillo@0: form_editor.mnu_Tutorial.enabled := false; meillo@0: form_editor.mnu_WelcomeScreen.Enabled := false; meillo@0: form_editor.mnu_Autorun.Enabled := false; meillo@0: form_editor.mnu_CreateAR.enabled := false; meillo@0: form_editor.mnu_Sprache.enabled := false; meillo@0: meillo@0: // show final settings meillo@0: finalsettings.Values['Background-Picture'] := form_Editor.PfadHG_alt; meillo@0: finalsettings.Values['Enter-Picture'] := form_Editor.PfadEnter_alt; meillo@0: finalsettings.values['Autorun-Icon'] := form_Editor.PfadIcon_alt; meillo@0: finalsettings.Values['CD-Root-Dir'] := form_Editor.CDRoot_alt; meillo@0: meillo@0: finalsettings.Values['Enter X-Position'] := inttostr(form_Editor.xEnter_alt); meillo@0: finalsettings.Values['Enter Y-Position'] := inttostr(form_Editor.yEnter_alt); meillo@0: finalsettings.Values['Welcome-Kind'] := form_Editor.WelcomeKind_alt; meillo@0: finalsettings.Values['Delay'] := form_Editor.delay; meillo@0: finalsettings.Values['Starts File/Dir'] := form_Editor.StartsFD_alt; meillo@0: meillo@0: // disable everything not needed meillo@0: if form_Editor.WelcomeKind_alt = 'none' then meillo@0: begin meillo@0: finalsettings.Values['Background-Picture'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Enter-Picture'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Enter X-Position'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Enter Y-Position'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Delay'] := '< not used / nicht genutzt >'; meillo@0: end meillo@0: else meillo@0: begin meillo@0: if form_Editor.WelcomeKind_alt = 'time' then meillo@0: begin meillo@0: finalsettings.Values['Enter-Picture'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Enter X-Position'] := '< not used / nicht genutzt >'; meillo@0: finalsettings.Values['Enter Y-Position'] := '< not used / nicht genutzt >'; meillo@0: if form_Editor.PfadHG_alt = '' then meillo@0: begin meillo@0: finalsettings.Values['Background-Picture'] := '#### missing / fehlt ####'; meillo@0: btn_finish.Enabled := false; meillo@0: end; meillo@0: end meillo@0: else // klick meillo@0: begin meillo@0: finalsettings.Values['Delay'] := '< not used / nicht genutzt >'; meillo@0: if form_Editor.PfadHG_alt = '' then meillo@0: begin meillo@0: // if the 'enter'-picture is full size, then dont use the 'background'-picture meillo@0: if (form_editor.img_button.Width = form_editor.img_Background.Width) and meillo@0: (form_editor.img_button.Height = form_editor.img_Background.Height) then meillo@0: begin meillo@0: finalsettings.Values['Background-Picture'] := '< not used / nicht genutzt >'; meillo@0: end meillo@0: else meillo@0: begin meillo@0: finalsettings.Values['Background-Picture'] := '#### missing / fehlt ####'; meillo@0: btn_finish.Enabled := false; meillo@0: end; meillo@0: end; meillo@0: if form_Editor.PfadEnter_alt = '' then meillo@0: begin meillo@0: finalsettings.Values['Enter-Picture'] := '#### missing / fehlt ####'; meillo@0: btn_finish.Enabled := false; meillo@0: end; meillo@0: end; meillo@0: end; meillo@0: meillo@0: // meillo@0: if form_Editor.pfadIcon_alt = '' then meillo@0: begin meillo@0: finalsettings.values['Autorun-Icon'] := '(The banana / Die Banane)'; meillo@0: end; meillo@0: meillo@0: // meillo@0: if form_Editor.StartsFD_alt = '' then meillo@0: begin meillo@0: finalsettings.Values['Starts File/Dir'] := '(CD-Root-Dir / CD-Wurzelverzeichnis)'; meillo@0: end; meillo@0: // meillo@0: if form_Editor.StartsFD_alt = '-' then meillo@0: begin meillo@0: if form_Editor.WelcomeKind_alt = 'none' then meillo@0: begin meillo@0: finalsettings.Values['Starts File/Dir'] := '#### CDAR does not do anything! / CDAR macht gar nichts! ####'; meillo@0: btn_finish.Enabled := false; meillo@0: end meillo@0: else meillo@0: begin meillo@0: finalsettings.Values['Starts File/Dir'] := '(Just shows Welcome-Screen / Zeigt nur ein Willkommensbild)'; meillo@0: end; meillo@0: end; meillo@0: meillo@0: // use German if set so meillo@0: if form_editor.englisch = false then meillo@0: begin meillo@0: form_Editor_CreateAR.Caption := 'Autorunner erstellen'; meillo@0: btn_Finish.Caption := 'Fertigstellen'; meillo@0: btn_Back.caption := 'Zurück'; meillo@0: FinalSettings.TitleCaptions.Strings[0] := ' Einstellung'; meillo@0: FinalSettings.TitleCaptions.Strings[1] := ' Wert'; meillo@0: FinalSettings.Keys[1] := 'Hintergrundbild'; meillo@0: FinalSettings.Keys[2] := 'Enterbild'; meillo@0: FinalSettings.Keys[3] := 'Autorun-Icon'; meillo@0: FinalSettings.Keys[4] := 'CD-Grundverzeichnis'; meillo@0: FinalSettings.Keys[6] := 'Enter X-Position'; meillo@0: FinalSettings.Keys[7] := 'Enter Y-Position'; meillo@0: FinalSettings.Keys[8] := 'Willkommensart'; meillo@0: FinalSettings.Keys[9] := 'Zeitverzögerung'; meillo@0: FinalSettings.Keys[10] := 'Startet Datei/Verz.'; meillo@0: end; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: //------------------------------------------------------------------------------ Form Close meillo@0: procedure Tform_editor_CreateAR.FormClose(Sender: TObject; meillo@0: var Action: TCloseAction); meillo@0: begin meillo@0: // enable drag'n'drop of 'img_button' again meillo@0: form_editor.draggingstatus := 0; meillo@0: // enable menu again meillo@0: form_editor.mnu_Tutorial.enabled := true; meillo@0: form_editor.mnu_WelcomeScreen.Enabled := true; meillo@0: form_editor.mnu_Autorun.Enabled := true; meillo@0: form_editor.mnu_CreateAR.enabled := true; meillo@0: form_editor.mnu_Sprache.enabled := true; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: meillo@0: //############################################################################################# meillo@0: meillo@0: //------------------------------------------------------------------------------ Click Back meillo@0: procedure Tform_editor_CreateAR.btn_BackClick(Sender: TObject); meillo@0: begin meillo@0: // close CreateAR meillo@0: form_editor_createar.Close; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: //------------------------------------------------------------------------------ Click Finish meillo@0: procedure Tform_editor_CreateAR.btn_FinishClick(Sender: TObject); meillo@0: var f : textfile; meillo@0: i : integer; meillo@0: CDRoot1 : string; meillo@0: CDRoot2 : string; meillo@0: begin meillo@0: // create 'CDRoot' directory if not exists meillo@0: cdRoot1 := form_Editor.CDRoot_alt; meillo@0: meillo@0: if DirectoryExists(CDRoot1) = false then meillo@0: begin meillo@0: for i := 5 to length(CDRoot1) do meillo@0: begin meillo@0: if copy(CDRoot1, i, 1) = '\' then meillo@0: begin meillo@0: CDRoot2 := copy(CDRoot1, 1, i); meillo@0: if DirectoryExists(CDRoot2) = false then meillo@0: begin meillo@0: mkdir(cdroot2); meillo@0: end; meillo@0: end; meillo@0: end; meillo@0: end; meillo@0: meillo@0: meillo@0: // create Autorun.inf meillo@0: try meillo@0: AssignFile(f, form_Editor.CDRoot_alt + 'Autorun.inf'); meillo@0: ReWrite(f); meillo@0: Writeln(f, '[Autorun]'); meillo@0: Writeln(f, 'Open= "_CDAR\cdar.exe welcome"'); meillo@0: if finalsettings.Cells[1,3] = '(The banana / Die Banane)' then meillo@0: begin meillo@0: Writeln(f, 'Icon= "_CDAR\cdar.exe"'); meillo@0: end meillo@0: else meillo@0: begin meillo@0: Writeln(f, 'Icon= "_CDAR\Autorun.ico"'); meillo@0: end; meillo@0: CloseFile(f); meillo@0: except meillo@0: showmessage('"Autorun.inf" konnte nicht erstellt werden'+ #10 meillo@0: +'Vermutlich ist der Pfad zum CD-Wurzelverzeichnis ungültig'+ #10 meillo@0: + #10 meillo@0: +'"Autorun.inf" could not be created'+ #10 meillo@0: +'probably the path to the CD root directory is corrupt'); meillo@0: end; meillo@0: meillo@0: // create directory '_CDAR' if not exists meillo@0: if DirectoryExists(CDRoot1 + '_CDAR') = false then meillo@0: begin meillo@0: mkdir(form_Editor.CDRoot_alt + '_CDAR\'); meillo@0: end; meillo@0: meillo@0: // create 'cdar.ini' meillo@0: try meillo@0: AssignFile(f, form_Editor.CDRoot_alt + '_CDAR\cdar.ini'); meillo@0: ReWrite(f); meillo@0: Writeln(f, form_Editor.WelcomeKind_alt); meillo@0: Writeln(f, form_Editor.Delay); meillo@0: Writeln(f, inttostr(form_Editor.xEnter_alt)); meillo@0: Writeln(f, inttostr(form_Editor.yEnter_alt)); meillo@0: Writeln(f, '..\' + form_Editor.StartsFD_alt); meillo@0: CloseFile(f); meillo@0: except meillo@0: showmessage('"cdar.ini" konnte nicht erstellt werden'+ #10 meillo@0: +'Vermutlich ist der Pfad zum CD-Wurzelverzeichnis ungültig'+ #10 meillo@0: + #10 meillo@0: +'"cdar.ini" could not be created'+ #10 meillo@0: +'probably the path to the CD root directory is corrupt'); meillo@0: end; meillo@0: meillo@0: // create 'cdar.bat' meillo@0: try meillo@0: AssignFile(f, 'C:\cdar.bat'); meillo@0: ReWrite(f); meillo@0: Writeln(f, 'Rem This File was built by CD-Autorunner'); meillo@0: Writeln(f, 'Rem It is not needed anymore you can delete it'); meillo@0: Writeln(f, 'Rem'); meillo@0: Writeln(f, 'Rem Diese Datei wurde von CD-Autorunner erzeugt'); meillo@0: Writeln(f, 'Rem Sie wird nicht mehr gebraucht und kann geloescht werden'); meillo@0: Writeln(f, 'Rem ###############################################'); meillo@0: Writeln(f, 'Rem'); meillo@0: Writeln(f, 'Rem'); meillo@0: // copy 'Autorun.ico' if necessary meillo@0: if finalsettings.Cells[1,3] <> '(The banana / Die Banane)' then meillo@0: begin meillo@0: Writeln(f, 'Copy %1 %2'); meillo@0: end; meillo@0: // copy 'background'-picture if necessary meillo@0: if finalsettings.Cells[1,1] <> '< not used / nicht genutzt >' then meillo@0: begin meillo@0: Writeln(f, 'Copy %3 %4'); meillo@0: end; meillo@0: // copy 'enter'-picture if necessary meillo@0: if finalsettings.Cells[1,2] <> '< not used / nicht genutzt >' then meillo@0: begin meillo@0: Writeln(f, 'Copy %5 %6'); meillo@0: end; meillo@0: // copy 'cdar.exe' meillo@0: Writeln(f, 'Copy %7 %8'); meillo@0: // self destruction meillo@0: Writeln(f, 'del "C:\cdar.bat"'); meillo@0: // exit script meillo@0: Writeln(f, 'exit'); meillo@0: // close file meillo@0: CloseFile(f); meillo@0: except meillo@0: showmessage('"cdar.bat" konnte nicht erstellt werden'+ #10#10 meillo@0: +'"cdar.bat" could not be created'); meillo@0: end; meillo@0: meillo@0: try meillo@0: ShellExecute(application.Handle, 'open', pchar('C:\cdar.bat'), meillo@0: pchar('"' meillo@0: + form_Editor.PfadIcon_alt + '" "' + form_Editor.CDRoot_alt + '_CDAR\Autorun.ico" "' meillo@0: + form_Editor.PfadHG_alt + '" "' + form_Editor.CDRoot_alt + '_CDAR\Welcome.jpg" "' meillo@0: + form_Editor.PfadEnter_alt + '" "' + form_Editor.CDRoot_alt + '_CDAR\Enter.jpg" "' meillo@0: + paramstr(0) + '" "' + form_Editor.CDRoot_alt + '_CDAR\cdar.exe"' meillo@0: ), nil, sw_shownormal); meillo@0: except meillo@0: showmessage('"cdar.bat" konnte nicht ausgeführt werden'+ #10#10 meillo@0: +'was not able to run "cdar.bat"'); meillo@0: end; meillo@0: meillo@0: // return to 'form_Editor' meillo@0: form_editor_createar.Close; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: meillo@0: end.//#########################################################################################