ايران ويج

نسخه‌ی کامل: ایجاد onMouseLeave برای کامپوننت های فاقد آن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
من یه مشکل با بعضی از کامپوننت های دلفی دارم چون فاقد رویدادهای مهم
onMouseEnter و onMouseLeave هستند.
بهترین کامپوننتی که می تونم مثال بزنم TshockWaveFlash هستش.
کد زیر رو به دست آوردم و خوب کار می کنه ولی هر کاری می کنم نمی تونم TshockWaveFlash رو در قسمت تعریف کلاس به درستی تعریف کنم.
این کد رو کامپوننت هایی که به شکل :
TForm1 = class(TForm تعریف می شن خوب جواب میده
ولی برای اون دسته از کامپوننت هایی که به شکل :
ShockwaveFlash1 : TshockWaveFlash هستند ، عمل نمی کنه


کد php:
unit Unit1;
 
interface
 
uses
  Windows
Messages{This unit Most Be Used}, SysUtilsVariantsClassesGraphicsControlsForms,
  
Dialogs;
 
type
  TForm1 
= class(TForm)
  private
    
Procedure WMMOUSELEAVE(Var MSG:TMessage);message{Windows Send This Message To The WinControlWM_MOUSELEAVE;
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;
 
var
  
Form1TForm1;
 
implementation
 
{$R *.dfm}
 
TForm1 }
 
procedure TForm1.WMMOUSELEAVE(var MSGTMessage);
begin
  
{Your Code Most Be Here}
  
ShowMessage('Hello');
end;
 
end


ممنون میشم اگه کمک کنید
این کامپوننت تنها برای نمایش فایلهای فلش با اشتفاده از اکتیو ایکس فلش هست و فوکوس نمیگیره که شما این رویدادها رو بهش اضافه کنید
شما برای چی میخواهید این رویدادها رو بهش اضافه کنید؟
با رویداد FSCommand که کدی رو میتونین از فلش بفرستین و تو دلفی دریافت کنین کارتون راه نمی افته؟
کامپوننت f-in-box بهترین کامپوننت کار با فلش تو دلفی هست ممکنه این کامپوننت کارتونو راه بندازه
سلام مجدد
من این کامپوننت f-in-box رو قبلا dll اون رو تو سی شارپ امتحانش کردم و خیلی ردیف بود
کامپوننت کرک شده اون رو تا به حال واسه دلفی سرچ نکرده بودم
آیا کرک شدش ، واسه دلفی ورژن XE به بالا وجود داره؟ از کجا می تونم دانلودش کنم؟
در مورد دستور FSCommand می دونم میشه ارتباط بر قرار کرد، ولی تو فلش مگه دستوری هست که مثلا تشخیص بده
موس از محیط swf خارج یا واردش شده؟
اما سوال اول شما///شما برای چی میخواهید این رویدادها رو بهش اضافه کنید؟/// برای تشخیص ورود و خروج نشانگر موس از محیط SWF در داخل دلفی (البته از panel و ... نمی خوام برای قرار دادن فایل فلش داخلش استفاده کنم)
این لینک میتونه به شما کمک کنه
http://www.delphiflash.com/using-tshockwaveflash/2
شما میتونین از قابلیت mouse move خود فورم استفاده کنید و چک کنید ببینید توی اون محدوده ای که قرار داره ایا کنترل flash player وجود داره یانه
ولی این لینک یه کامپوننت پولی هستش
از قابلیت mouse move ، تا جایی که فایل فلش به فرم فیت نشده میشه استفاده کرد
ولی وقتی فلش رو به فرم فیت کردیم(alClient)، دیگه تمام رویدادهای فرم از کار می افته
خود shockWaveFlash هم که قربونش برم رویداد درست درمونی نداره
شما میخواهید وقتی موس از محدوده خارج شد متوجه بشید با کد نویسی و اضافه کردن این 2 رویداد به فلش نمیتونید این کارو بکنید
میتونین از یک timer و توابع apiاستفاده کنید

کد:
procedure TForm1.tmr1Timer(Sender: TObject);
var
win:THandle;
sam:array[0..256]of Char;
pt:TPoint;
begin
GetCursorPos(pt);
win:=WindowFromPoint(pt);
GetClassName(win,@sam,256);
Caption:=sam;
end;
این کد میاد اسم کلاسی رو که موس روش هست رو تو محیط ویندوز به شما میده
شما به برنامه میگین اگه نام کلاس فلان بود این کار انجام بشه اگه بنود کار دیگه
هر چند جز توابع api هست ولی فکر کنم کارم را بندازه
از اینکه این کد رو گذاشتید ممنونم