view unit_Welcome.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_Welcome;

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

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

type
  Tform_Welcome = class(TForm)
    img_Background: TImage;
    img_Enter: TImage;
    timer_delay: TTimer;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure img_EnterClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure timer_delayTimer(Sender: TObject);
  private

  public
    Zielpfad : string;
  end;

var
  form_Welcome: Tform_Welcome;

implementation//###############################################################################
uses unit_Start, modul_allgemein;
{$R *.dfm}//###################################################################################

// Forwardings
  procedure ClickEnter(const x_enter:string; const y_enter:string; const zielpfad:string); forward;
  procedure Time(const delay :string; const zielpfad:string); forward;
  procedure None(const zielpfad:string); forward;

//------------------------------------------------------------------------------ Form create
procedure Tform_Welcome.FormCreate(Sender: TObject);
  var txtfile : textfile;
      showscreentill : string;
      delay : string;
      x_enter : string;
      y_enter : string;
      //Zielpfad : string;
  begin
    // Form immer im Vordergrund
      SetWindowPos(handle, HWND_TopMost, left, top, width, height, SWP_ShowWindow);

    //Daten aus ini laden
      assignfile (txtfile, fktcmd(0) + ini);
      reset (txtfile);
        readln (txtfile, showscreentill);
        readln (txtfile, delay);
        readln (txtfile, x_enter);
        readln (txtfile, y_enter);
        readln (txtfile, zielpfad);
      closefile (txtfile);
    //Fallunterscheidung
      if showscreentill = 'click' then
          begin
            clickenter(x_enter, y_enter, zielpfad);
          end
        else if showscreentill = 'time' then
          begin
            time(delay,zielpfad);
          end
        else if showscreentill = 'none' then
          begin
            none(zielpfad);
          end;
end;//--------------------------------------------------------------------------
//------------------------------------------------------------------------------ Form close
procedure Tform_Welcome.FormClose(Sender: TObject;                 
  var Action: TCloseAction);
begin
  // ShellExec trotzdem ausführen
    shellexec(zielpfad);
end;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ Klick Enter
procedure Tform_Welcome.img_EnterClick(Sender: TObject);
begin
  shellexec(zielpfad);
end;//--------------------------------------------------------------------------

//------------------------------------------------------------------------------ Delay vorbei
procedure Tform_Welcome.timer_delayTimer(Sender: TObject);                       
begin
  shellexec(Zielpfad);
end;//--------------------------------------------------------------------------

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

//------------------------------------------------------------------------------ Klick ini
procedure ClickEnter(const x_enter:string; const y_enter:string; const zielpfad:string);
begin
  form_welcome.img_Enter.Picture.LoadFromFile(fktcmd(0) + enter);
  // Nur wenn das Enter-Bild <> 600x450 dann HG-Bild
    if form_welcome.img_enter.Width <> form_welcome.img_Background.Width then
      begin
        if form_welcome.img_enter.Height <> form_welcome.img_Background.Height then
          begin
            form_welcome.img_Background.picture.loadfromfile(fktcmd(0) + welcome);
          end
      end;
  form_welcome.img_Enter.Left := strtoint(x_enter);
  form_welcome.img_Enter.top := strtoint(y_enter);
end;//--------------------------------------------------------------------------

//------------------------------------------------------------------------------ Time ini
procedure Time(const delay :string; const zielpfad:string);
begin
  form_welcome.img_Background.picture.loadfromfile(fktcmd(0) + welcome);
  form_welcome.img_Enter.Enabled := false;
  form_welcome.timer_delay.Interval := strtoint(delay) * 1000;
  form_welcome.timer_delay.Enabled := true;
end;//--------------------------------------------------------------------------

//------------------------------------------------------------------------------ Direktaufruf
procedure None(const zielpfad:string);
begin
  shellexec(zielpfad);
end;//--------------------------------------------------------------------------

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