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