Mercurial > cdar
view unit_Editor_CreateAR.pas @ 2:104f349dcfcc default tip
Added tag cdar-2.3 for changeset 87b91371db05b8cabe2dc3e2d2dc3ba830ab463b
author | "Meillo r e t u r n s <meillo@marmaro.de>" |
---|---|
date | Sun, 03 Dec 2006 21:56:41 +0100 |
parents | ef71164288c1 |
children |
line wrap: on
line source
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.//#########################################################################################