diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/unit_Editor_ws.pas	Sun Dec 03 21:54:43 2006 +0100
@@ -0,0 +1,408 @@
+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.//#########################################################################################