AuthorMessage
Meka][Meka
Unstopable
Posts: 700

regardless of cpu, here is some starting code for making a app fader, might come in handy for someone
delphi7 version:
Code:
Code:

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;
type
  TTMainFRM = class(TForm)
    Timer: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
  private
    { Private declarations }
    bAdd : Boolean;
  public
    { Public declarations }
  end;
var
  TMainFRM: TTMainFRM;
implementation
{$R *.dfm}
procedure TTMainFRM.FormCreate(Sender: TObject);
begin
  Self.AlphaBlend := True;
  bAdd := False;
  Timer.Interval := 100;
  Timer.Enabled := True;
end;
procedure TTMainFRM.TimerTimer(Sender: TObject);
begin
  if bAdd = False then begin
    Self.AlphaBlendValue := Self.AlphaBlendValue - 1;
    if Self.AlphaBlendValue < 1 then bAdd := True;
  end else begin
    Self.AlphaBlendValue := Self.AlphaBlendValue + 1;
    if Self.AlphaBlendValue > 254 then bAdd := False;
  end;
end;
end.

-/Meka][Meka
Meka][Meka
Unstopable
Posts: 700

ok sitting bored, so i thought i wud rewrite this, and make it much much much better and nicer, and smoother
Code:

unit Unit1;
interface
uses
  SysUtils, Classes, Forms;
type
  TFadeThread = class(TThread)
  private
    bAdd: Boolean;
  protected
    procedure Execute; override; 
  end;
  TMainFRM = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    Fader: TFadeThread;
  public
    { Public declarations }
  end;
const
  FadeSpeed : Integer = 2;
var
  MainFRM: TMainFRM;
implementation
{$R *.dfm}
procedure TFadeThread.Execute;
begin
  FreeOnTerminate:=True; //free thread when terminated :)
  bAdd := False; //not fading in, but out :)
  while True do begin
    //lets chill for 800ms
    sleep(800);
    if bAdd = False then begin
      MainFRM.AlphaBlendValue := MainFRM.AlphaBlendValue - FadeSpeed;
      if MainFRM.AlphaBlendValue < 1 then bAdd := True;
    end else begin
      MainFRM.AlphaBlendValue := MainFRM.AlphaBlendValue + FadeSpeed;
      if MainFRM.AlphaBlendValue > 254 then bAdd := False;
    end;
    //lets chill for 800ms just to keep cpu lower
    sleep(800);
  end;
end;
procedure TMainFRM.FormCreate(Sender: TObject);
begin
  Self.AlphaBlend := True; //set blending enabled
  Fader := TFadeThread.Create(False);
end;
procedure TMainFRM.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Fader.Terminate;
end;
end.

njoy