view unit_Editor_ws.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_ws;

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

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

type
  Tform_Editor_ws = class(TForm)
    btn_cancel: TButton;
    btn_Apply: TButton;
    gbx_BilderLaden: TGroupBox;
    btn_bp: TButton;
    lbl_1: TLabel;
    tbx_BackgroundPath: TEdit;
    tbx_EnterPath: TEdit;
    btn_ep: TButton;
    lbl_2: TLabel;
    gbx_EnterPos: TGroupBox;
    hsb_EnterXPos: TScrollBar;
    tbx_XPos: TEdit;
    lbl_3: TLabel;
    tbx_YPos: TEdit;
    lbl_4: TLabel;
    vsb_EnterYPos: TScrollBar;
    gbx_ShowTill: TGroupBox;
    rbtn_DoShow: TRadioButton;
    rbtn_NotShow: TRadioButton;
    pan_ShowTill: TPanel;
    rbtn_TillClick: TRadioButton;
    rbtn_TillTime: TRadioButton;
    cobx_Delay: TComboBox;
    lbl_5: TLabel;
    lbl_6: TLabel;
    OpenDialog1: TOpenPictureDialog;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure hsb_EnterXPosChange(Sender: TObject);
    procedure vsb_EnterYPosChange(Sender: TObject);
    procedure rbtn_NotShowClick(Sender: TObject);
    procedure rbtn_DoShowClick(Sender: TObject);
    procedure btn_bpClick(Sender: TObject);
    procedure btn_epClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btn_ApplyClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
    procedure rbtn_TillTimeClick(Sender: TObject);
    procedure rbtn_TillClickClick(Sender: TObject);
    procedure tbx_BackgroundPathChange(Sender: TObject);
    procedure tbx_EnterPathChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  form_Editor_ws: Tform_Editor_ws;

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

//------------------------------------------------------------------------------ form create
procedure Tform_Editor_ws.FormCreate(Sender: TObject);
begin
  // set language
    if form_editor.englisch = true then
      begin // English
        form_Editor_ws.Caption := 'Welcome-Screen Settings';
        btn_cancel.Caption := 'Cancel Changes';
        btn_Apply.Caption := 'Apply Changes';
        btn_bp.Caption := 'Browse';
        btn_ep.Caption := 'Browse';
        lbl_1.Caption := 'Background-Picture:  (600x450 px)';
        lbl_2.caption := 'Enter-Picture:  (150x40 px recommended)';
        lbl_5.Caption := '... of the Enter-Picture';
        lbl_6.Caption := '(You can move by Drag n Drop too)';
        rbtn_DoShow.Caption := 'Show Welcome-Screen ...';
        rbtn_NotShow.Caption := 'Do not show Welcome-Screen';
        rbtn_TillClick.Caption := '... till click';
        rbtn_TillTime.Caption := '...                seconds';
      end
    else
      begin // German
        form_Editor_ws.Caption := 'Begrüßungsbild Optionen';
        btn_cancel.Caption := 'Abbrechen';
        btn_Apply.Caption := 'Übernehmen';
        btn_bp.Caption := 'Durchsuchen';
        btn_ep.Caption := 'Durchsuchen';
        lbl_1.Caption := 'Hintergrundbild:  (600x450 px)';
        lbl_2.caption := 'Enterbild:  (150x40 px empfohlen)';
        lbl_5.Caption := '... des Enterbilds';
        lbl_6.Caption := '(Drag n Drop ist auch möglich)';             
        rbtn_DoShow.Caption := 'Begrüßungsbild anzeigen ...';
        rbtn_NotShow.Caption := 'Kein Begrüßungsbild anzeigen';
        rbtn_TillClick.Caption := '... bis Klick';
        rbtn_TillTime.Caption := '...                Sekunden';
      end;

  // set standard path
  opendialog1.InitialDir := extractfilepath(paramstr(0));
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ form show
procedure Tform_Editor_ws.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
    // set picture path
      tbx_BackgroundPath.text := form_Editor.PfadHG_alt;
      tbx_EnterPath.text := form_Editor.PfadEnter_alt;
    // set 'img_button'-positon
      tbx_XPos.text := inttostr(form_Editor.xEnter_alt);
      tbx_YPos.text := inttostr(form_Editor.yEnter_alt);
    // kind of welcome action
      if form_Editor.Welcomekind_alt = 'none' then
        begin
          rbtn_notshow.checked := true;

          rbtn_tillclick.Enabled := false;
          rbtn_tilltime.Enabled := false;
        end
      else
        begin
          if form_Editor.Welcomekind_alt = 'click' then
            begin
              rbtn_tillClick.checked := true;
              rbtn_doshow.Checked := true;
            end
          else
            begin
              rbtn_tilltime.Checked := true;
              rbtn_doshow.Checked := true;              
            end;
        end;
    // delay
    cobx_delay.ItemIndex := form_Editor.Delay_alt;

  // set scrollbar values
    hsb_enterXpos.Max := form_editor.img_Background.Width - form_editor.img_button.Width;
    hsb_enterXpos.Position := form_editor.img_button.Left;
    vsb_enterYpos.Max := form_editor.img_Background.height - form_editor.img_button.height;
    vsb_enterYpos.Position := form_editor.img_button.top;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ form close
procedure Tform_Editor_ws.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  // reenable drag'n'drop
    form_editor.draggingstatus := 0;
  // reenable 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;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ change x-position
procedure Tform_Editor_ws.hsb_EnterXPosChange(Sender: TObject);
begin
  tbx_xpos.Text := inttostr(hsb_enterXpos.Position);
  form_editor.img_button.Left := hsb_enterXpos.position;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ change y-position
procedure Tform_Editor_ws.vsb_EnterYPosChange(Sender: TObject);
begin
  tbx_ypos.Text := inttostr(vsb_enterYpos.Position);
  form_editor.img_button.top := vsb_enterYpos.position;
end;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ NotShow
procedure Tform_Editor_ws.rbtn_NotShowClick(Sender: TObject);
begin
  //
    rbtn_tillclick.Enabled := false;
    rbtn_tilltime.Enabled := false;
    cobx_Delay.enabled := false;

    tbx_BackgroundPath.Enabled := false;
    btn_bp.Enabled := false;
    tbx_EnterPath.Enabled := false;
    btn_ep.Enabled := false;
    hsb_EnterXPos.Enabled := false;
    vsb_EnterYPos.Enabled := false;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ Show
procedure Tform_Editor_ws.rbtn_DoShowClick(Sender: TObject);
begin
  //
    rbtn_tillclick.Enabled := true;
    rbtn_tilltime.Enabled := true;
    if rbtn_tilltime.Checked = true then
      begin
        cobx_Delay.Enabled := true;   // time

        tbx_BackgroundPath.Enabled := true;
        btn_bp.Enabled := true;
        tbx_EnterPath.Enabled := false;
        btn_ep.Enabled := false;
        hsb_EnterXPos.Enabled := false;
        vsb_EnterYPos.Enabled := false;
      end
    else
      begin
        cobx_Delay.enabled := false;   // click

        tbx_BackgroundPath.Enabled := true;
        btn_bp.Enabled := true;
        tbx_EnterPath.Enabled := true;
        btn_ep.Enabled := true;
        hsb_EnterXPos.Enabled := true;
        vsb_EnterYPos.Enabled := true;
      end;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ TillClick
procedure Tform_Editor_ws.rbtn_TillClickClick(Sender: TObject);
begin
  cobx_Delay.Enabled := false;

  tbx_BackgroundPath.Enabled := true;
  btn_bp.Enabled := true;
  tbx_EnterPath.Enabled := true;
  btn_ep.Enabled := true;
  hsb_EnterXPos.Enabled := true;
  vsb_EnterYPos.Enabled := true;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ TillIime
procedure Tform_Editor_ws.rbtn_TillTimeClick(Sender: TObject);
begin
  cobx_Delay.Enabled := true;

  tbx_BackgroundPath.Enabled := true;
  btn_bp.Enabled := true;
  tbx_EnterPath.Enabled := false;
  btn_ep.Enabled := false;
  hsb_EnterXPos.Enabled := false;
  vsb_EnterYPos.Enabled := false;
end;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ Back-Pic
procedure Tform_Editor_ws.btn_bpClick(Sender: TObject);
begin
  // Browse Background-Picture
    if opendialog1.Execute then
      begin
          tbx_backgroundpath.Text := opendialog1.FileName;
        // load picture
          form_editor.img_Background.Picture.LoadFromFile(tbx_backgroundpath.text);
      end;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ Enter-Pic
procedure Tform_Editor_ws.btn_epClick(Sender: TObject);
begin
  // Browse Enter-Picture
    if opendialog1.Execute then
      begin
          tbx_enterpath.Text := opendialog1.FileName;
        // load picture
          form_editor.img_button.Picture.LoadFromFile(tbx_enterpath.text);
        // if enter-button gets to large
          if form_editor.img_button.Width > form_editor.img_Background.Width then
            begin
              form_editor.img_button.Picture := nil;
              tbx_enterpath.Text := '';
              form_editor.img_button.Width := 0;
              form_editor.img_button.Height := 0;
            end;
          if form_editor.img_button.height > form_editor.img_Background.height then
            begin
              form_editor.img_button.Picture := nil;
              tbx_enterpath.Text := '';
              form_editor.img_button.Width := 0;
              form_editor.img_button.Height := 0;              
            end;
        // config scrollbars
          hsb_enterXpos.Max := form_editor.img_Background.Width - form_editor.img_button.Width;
          hsb_enterXpos.Position := form_editor.img_button.Left;
          vsb_enterYpos.Max := form_editor.img_Background.height - form_editor.img_button.height;
          vsb_enterYpos.Position := form_editor.img_button.top;
        // if enter-button is fullscreen, then dont use a background-pic
          if form_editor.img_button.Width = form_editor.img_Background.Width then
            begin
              if form_editor.img_button.Height = form_editor.img_Background.Height then
                begin
                  tbx_BackgroundPath.Enabled := false;
                  btn_bp.Enabled := false;
                end
              else
                begin
                  tbx_BackgroundPath.Enabled := true;
                  btn_bp.Enabled := true;
                end;
            end;
      end;
end;//--------------------------------------------------------------------------

//------------------------------------------------------------------------------ no pic
procedure Tform_Editor_ws.tbx_BackgroundPathChange(Sender: TObject);
begin
  if tbx_BackgroundPath.Text = '' then
    begin
      form_editor.img_Background.Picture := nil;
    end;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ no pic
procedure Tform_Editor_ws.tbx_EnterPathChange(Sender: TObject);
begin
  if tbx_EnterPath.Text = '' then
    begin
      form_editor.img_Button.Picture := nil;
      tbx_BackgroundPath.Enabled := true;
      btn_bp.Enabled := true;
    end;
end;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ apply
procedure Tform_Editor_ws.btn_ApplyClick(Sender: TObject);
begin
  // set new data to '*_neu'
    form_Editor.pfadHG_neu := tbx_backgroundpath.text;
    form_Editor.pfadEnter_neu := tbx_Enterpath.text;
    form_Editor.xEnter_neu := strtoint(tbx_xpos.text);
    form_Editor.yEnter_neu := strtoint(tbx_ypos.text);
    form_Editor.Delay_neu := cobx_Delay.ItemIndex;
    // kind of welcome action
      if rbtn_notshow.checked then
        begin
          form_Editor.Welcomekind_neu := 'none';
        end
      else
        begin
          if rbtn_tillClick.checked then
            begin
              form_Editor.Welcomekind_neu := 'click';
            end
          else
            begin
              form_Editor.Welcomekind_neu := 'time';
            end;
        end;

  // '*_neu' to '*_alt'
    with form_Editor do
    begin
      PfadHG_alt := PfadHG_neu;
      PfadEnter_alt := PfadEnter_neu;
      xEnter_alt := xEnter_neu;
      yEnter_alt := yEnter_neu;
      WelcomeKind_alt := WelcomeKind_neu;
      Delay_alt := Delay_neu;
    end;

  // delay
    form_Editor.Delay := cobx_Delay.text;


  // close
    form_editor_ws.Close;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ cancel
procedure Tform_Editor_ws.btn_cancelClick(Sender: TObject);
begin
  // restore old settings
    // background-pic
      if form_Editor.PfadHG_alt = '' then
        begin
          form_Editor.img_background.Picture := nil;
        end
      else
        begin
          form_editor.img_Background.Picture.LoadFromFile(form_Editor.PfadHG_alt);
        end;
    // enter-pic
      if form_Editor.PfadEnter_alt = '' then
        begin
          form_Editor.img_button.Picture := nil;
        end
      else
        begin
          form_editor.img_button.Picture.LoadFromFile(form_Editor.PfadEnter_alt);
        end;
    // button-pos
      form_editor.img_button.Left := form_Editor.xEnter_alt;
      form_editor.img_button.top := form_Editor.yEnter_alt;

  // close
    form_editor_ws.Close;
end;//--------------------------------------------------------------------------

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