view unit_Editor_as.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 source

unit unit_Editor_as;

interface//####################################################################################

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ExtDlgs;

type
  Tform_Editor_as = class(TForm)
    gbx_AutorunIcon: TGroupBox;
    btn_BrowseIcon: TButton;
    tbx_IconPath: TEdit;
    img_Icon: TImage;
    gbx_ZielDir: TGroupBox;
    tbx_CDRootPath: TEdit;
    btn_BrowseCDRoot: TButton;
    lbl_1: TLabel;
    lbl_2: TLabel;
    lbl_3: TLabel;
    btn_cancel: TButton;
    btn_apply: TButton;
    btn_restore: TButton;
    img_IconCDAR: TImage;
    GroupBox1: TGroupBox;
    lbl_4: TLabel;
    lbl_5: TLabel;
    tbx_StartsFD: TEdit;
    tbx_Warnings: TMemo;
    OpenDialog1: TOpenPictureDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure btn_BrowseIconClick(Sender: TObject);
    procedure btn_BrowseCDRootClick(Sender: TObject);
    procedure btn_restoreClick(Sender: TObject);
    procedure btn_applyClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
    procedure tbx_StartsFDChange(Sender: TObject);
    procedure tbx_CDRootPathChange(Sender: TObject);
  private
    
  public
    { Public declarations }
  end;

var
  form_Editor_as: Tform_Editor_as;

implementation//###############################################################################
uses unit_Editor, unit_Editor_as_BrowseDir;
{$R *.dfm}//###################################################################################

// forwardings
  procedure Warnings();forward;

//------------------------------------------------------------------------------ form create
procedure Tform_Editor_as.FormCreate(Sender: TObject);
begin
  // set language
    if form_editor.englisch = true then
      begin // English
        form_editor_as.Caption := 'Autorun Settings';
        btn_BrowseIcon.Caption := 'Browse';
        btn_BrowseCDRoot.Caption := 'Browse';
        lbl_1.Caption := 'Autorun-Icon of the CD';
        lbl_2.Caption := 'Directory where the Files will be copied to';
        lbl_3.Caption := '(This Directory represents the Root-Dir of the CD)';
        btn_cancel.Caption := 'Cancel Changes';
        btn_apply.Caption := 'Apply Changes';
        btn_restore.Caption := 'CDAR-Icon';
        lbl_4.Caption := 'Choose the File which will be started by CDAR';
        lbl_5.Caption := '(Insert a Path relative to the CD-Root-Dir!)';
      end
    else
      begin // German
        form_editor_as.Caption := 'Autorun Optionen';
        btn_BrowseIcon.Caption := 'Durchsuchen';
        btn_BrowseCDRoot.Caption := 'Durchsuchen';
        lbl_1.Caption := 'Autorun-Icon der CD';
        lbl_2.Caption := 'Ordner in den die Dateien kopiert werden';
        lbl_3.Caption := '(Entspricht dem CD-Grund-Verzeichnis)';
        btn_cancel.Caption := 'Abbrechen';
        btn_apply.Caption := 'Übernehmen';
        btn_restore.Caption := 'CDAR-Icon';
        lbl_4.Caption := 'Datei, die von CDAR gestartet werden soll';
        lbl_5.Caption := '(Pfad relativ zum CD-Grund-Verzeichnis)';
      end;

  // set standard path in OpenDialog
  opendialog1.InitialDir := extractfilepath(paramstr(0));
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ form show
procedure Tform_Editor_as.FormShow(Sender: TObject);
begin
  // disable drag'n'drop
  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;

  // init
  tbx_IconPath.text := form_Editor.PfadIcon_alt;
  if form_Editor.PfadIcon_alt = '' then
    begin
      img_IconCDAR.show;
      img_icon.Hide;
    end
  else
    begin
      img_IconCDAR.hide;
      img_Icon.Show;
      img_icon.Picture.LoadFromFile(form_Editor.PfadIcon_alt);
    end;
  tbx_CDRootPath.text := form_Editor.CDRoot_alt;
   tbx_StartsFD.Text := form_Editor.StartsFD_alt;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ form close
procedure Tform_Editor_as.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  // enable drag'n'drop
  form_editor.draggingstatus := 0;
  // enable menu
  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;//--------------------------------------------------------------------------

//#############################################################################################

//------------------------------------------------------------------------------ browse icon
procedure Tform_Editor_as.btn_BrowseIconClick(Sender: TObject);
begin
  if opendialog1.Execute then
    begin
      tbx_IconPath.Text := opendialog1.FileName;
      // load picture
      img_Icon.Picture.LoadFromFile(tbx_IconPath.text);
      // show picture
      img_IconCDAR.hide;
      img_Icon.Show;
    end;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ restore icon
procedure Tform_Editor_as.btn_restoreClick(Sender: TObject);
begin
  img_IconCDAR.show;
  img_icon.Hide;
  tbx_IconPath.Text := '';
end;//--------------------------------------------------------------------------

//------------------------------------------------------------------------------ browse CD-root
procedure Tform_Editor_as.btn_BrowseCDRootClick(Sender: TObject);
begin
  application.CreateForm(tform_editor_as_browsedir, form_editor_as_browsedir);
  form_editor_as_browsedir.show;
end;//--------------------------------------------------------------------------

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//------------------------------------------------------------------------------ change CD-root
procedure Tform_Editor_as.tbx_CDRootPathChange(Sender: TObject);
begin
  // format check
  Warnings;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ change startsFD
procedure Tform_Editor_as.tbx_StartsFDChange(Sender: TObject);
begin
  // format check
  Warnings;
end;//--------------------------------------------------------------------------

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//------------------------------------------------------------------------------ apply
procedure Tform_Editor_as.btn_applyClick(Sender: TObject);
begin
  form_Editor.PfadIcon_alt := tbx_IconPath.text;

  if copy(tbx_CDRootPath.text, length(tbx_CDRootpath.text), 1) <> '\' then
    begin
      form_Editor.CDRoot_alt := tbx_CDRootPath.Text + '\';
    end
  else
    begin
      form_Editor.CDRoot_alt := tbx_CDRootPath.Text;
    end;

  form_Editor.StartsFD_alt := tbx_startsFD.text;

  // close
  form_editor_as.Close;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ cancel
procedure Tform_Editor_as.btn_cancelClick(Sender: TObject);
begin
  // close
  form_editor_as.Close;
end;//--------------------------------------------------------------------------

//#############################################################################################

//------------------------------------------------------------------------------ warnings
procedure Warnings();
begin
  with form_Editor_as do
    begin
    tbx_Warnings.lines.clear;

    if copy(tbx_CDRootPath.text, 2, 2) <> ':\' then
      begin
        btn_apply.Enabled := false;
        tbx_Warnings.Show;
        tbx_Warnings.Lines.Add('2nd Path must be ABSOLUTE');
        if pos(':', tbx_StartsFD.text) <> 0 then
          begin
            tbx_Warnings.Lines.Add('3rd Path must be RELATIVE');
          end;
      end
    else
      begin
        if pos(':', tbx_StartsFD.text) <> 0 then
          begin
            btn_apply.Enabled := false;
            tbx_Warnings.Show;
            tbx_Warnings.Lines.Add('3rd Path must be RELATIVE');
          end
        else
          begin
            btn_apply.Enabled := true;
            tbx_Warnings.hide;
          end;
      end;
   tbx_Warnings.Text := copy(tbx_Warnings.text, 1, length(tbx_Warnings.text)-2);
   end;
end;//--------------------------------------------------------------------------

end.//#########################################################################################