2 ضمیمه
	
	
		کامپوننت Animation Caption
	
	
		با سلام خدمت دوستان 
میرم سر اصل مطلب ؛ خیلی وقت بود که می خواستم یه کامپوننت بنویسم اما خوب با ساختار کامپوننت نویسی آشنا نبود تا اینکه تو سایت یه PDF در این رابطه پیدا کردم شروع به مطالعه کردم و حدود 20 صفحه را تا حالا خوندم (خیلی اهل مطالعه نیستم) تا بالاخره دیشب یهو به فکرم افتاد و این کامپوننت رو نوشتم .
کامپوننت Animation Caption که کار خیلی ساده ای رو انجام میده و متن برنامه شما رو به حرکت در میاره .
از دوستان تقاضا می کنم که کامپوننت رو دانلود کنن و عیب ها رو به من بگن زیرا اولین کار من در کامپوننت نویسی هست و حتما  نقص های زیادی داره  .
با تشکر
دانلود به همراه سورس و Sample.exe
در دلفی 7 و 2009 تست شده
نسخه جدید در پست شماره 6 برابر با تاریخ 1389/01/15
	 
	
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		دوستان این هم سورس کامل 
لطفا اگه مشکلی می بینید خواهشا  عرض کنید 
unit AVF_AnimationCaption;
interface
uses
  SysUtils, Classes, ExtCtrls, Forms, Controls ,StrUtils ,Dialogs;
  type
    TRightToLeftMode=(LeftMode,RightMode);
type
  TAnimationCaption = class(TComponent)
  private
    FAnmationString,tempStr:string;
    FActive:Boolean;
    ObjectTimer:TTimer;
    FForm:TCustomForm;
    FInterval:Integer;
    StrFirstCaption:string;
    FSpace:Byte;
    FRightToLeft:TRightToLeftMode;
    { Private declarations }
     procedure RunAnimation(Sender:TObject);
  protected
    procedure FSetAnimationText(const Value:string);
    procedure SetActive(const Value:Boolean);
    procedure SetInterval(const Value:Integer);
    procedure SetSpace(const Value:byte);
    procedure SetRightToLeftMode(const value:TRightToLeftMode);
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner:TComponent );override;
    destructor Destroy;override;
  published
    property AnimationText:string read FAnmationString write FSetAnimationText;
    property Active:Boolean read FActive write SetActive default True;
    property Interval:Integer read FInterval write SetInterval default 200;
    property Space:Byte read FSpace write SetSpace default 3;
    property RightToLeftMode:TRightToLeftMode read FRightToLeft write SetRightToLeftMode default LeftMode;
    { Published declarations }
  end;
{$R AVF_AnimationCaption.res}
procedure Register;
implementation
procedure Register;
begin
  RegisterComponents('AVF', [TAnimationCaption]);
end;
{ TComponent1 }
constructor TAnimationCaption.Create(AOwner: TComponent);
begin
  inherited;
  if (not Assigned(FForm)) then
    FForm:=GetParentForm(TControl(AOwner));
  FInterval:=200;
  FSpace:=3;
  FAnmationString:=FForm.Caption;
  StrFirstCaption:=FForm.Caption;
  ObjectTimer:=TTimer.Create(Self);
  ObjectTimer.OnTimer:=RunAnimation;
  ObjectTimer.Interval:=FInterval;
  tempStr:=FAnmationString+DupeString(' ',3);
  FActive:=True;
end;
destructor TAnimationCaption.Destroy;
begin
  if (FActive) then FActive:=False;
  FreeAndNil(ObjectTimer);
  if not (csDestroying in FForm.ComponentState) then
    FForm.Caption:=StrFirstCaption;
  inherited;
end;
procedure TAnimationCaption.FSetAnimationText(const Value: string);
begin
  FAnmationString:=Value;
  tempStr:=FAnmationString+DupeString(' ',FSpace);
end;
procedure TAnimationCaption.RunAnimation(Sender: TObject);
  var
  s:string;
begin
  if (not FActive) then Exit;
  if (FRightToLeft=LeftMode) then
  begin
    s:=LeftStr(tempStr,1);
    tempStr:=MidStr(tempStr,2,Length(tempStr)-1)+s;
  end
  else
  begin
    s:=RightStr(tempStr,1);
    tempStr:=s+MidStr(tempStr,1,Length(tempStr)-1);
  end;
  FForm.Caption:=tempStr;
end;
procedure TAnimationCaption.SetActive(const Value:Boolean);
begin
  FActive:=Value;
  ObjectTimer.Enabled:=FActive;
end;
procedure TAnimationCaption.SetInterval(const Value: Integer);
begin
  FInterval:=Value;
  ObjectTimer.Interval:=FInterval;
end;
procedure TAnimationCaption.SetRightToLeftMode(const value: TRightToLeftMode);
begin
  FRightToLeft:=value;
end;
procedure TAnimationCaption.SetSpace(const Value: byte);
begin
  if (Value<2) then
    FSpace:=2
  else
    FSpace:=Value;
  tempStr:=FAnmationString+DupeString(' ',FSpace);
end;
.end
	 
	
	
		2 ضمیمه
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		دوستان نسخه جدید رو امروز براتون قرار دادم
به دلیل ویروسی بودن فایل Sample-Exe.rar ، این فایل پاک شد .
شما سورس را به همراه Sample-Source.rar دانلود کنید و سپس پروژ را کامپایل کنید و هیچ مشکلی به وجود نخواهد آمد
با تشکر از دوست عزیز hossein.kh که ویروسی بودن فایل Sample-Exe.rar را اطلاع دادند.
	 
	
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		با سلام  :لبخندساده:
فایل Sample-Exe.rar حاوی ویروس Induc.A است !
	 
	
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		
	نقل قول:
	
		
		
			
				نوشته شده توسط 
hossein.kh
				 
			با سلام  :لبخندساده:
فایل Sample-Exe.rar حاوی ویروس Induc.A است !
			
		
	 
 دوست عزیز سپاس گذارم .
بله سیستم من آلوده هست (البته یک هفته پش با Nod ویروس کشی کردم) 
البته من فایل رو به VirusTotal سپردم و این هم نتیجه.
به هر حال دوستان عذر می خوام فایل Sample-Exe.rar را فعلا حذف میکنم .
	 
	
	
		3 ضمیمه
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		دوستان سلام نسخه جدید کامپوننت را امروز برایتان قرار دادم.
تغییراتی که در این نسخه صورت گرفته (اتصال به TLabel برای نمایش دوگانه) و یک افکت جدید .
لطفا دوستان دانلود کنند و نظر بدهند من می خواهم در آیند با توابع GDI-PLUS این کامپوننت  رو جذابتر کنم.
فایل Sample-Exe.rar بدون هیچ ویروس قرار داده شده. 
با تشکر.
	 
	
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		سلام AliReza Vafakhah عزیز
من کامپوننت شما رو تست کردم مشکل اساسی این کامپوننت نشون دادن حروف فارسی است ممنون می شم حل کنید این مشکلو و دیگری نرم نبودن نمایش حروف (یعنی خیلی نرم نمایش نمی ده خشک خشکه)
بازم از تلاشت ممنون
	 
	
	
	
		نقل قول: کامپوننت Animation Caption
	
	
		این کامپوننت  اگر به کپشن فرمها وصل نباشه بهتره و اگر بشه در یک لیست از بالا به پایین باشه قشنگتره یه چیزی مثل پایان فیلم های سینمایی که اسامی بازیگرها نوشته میشه