واضح آرشیو وب فارسی:سایت ریسک: نمایش فلش در Vb و رویداد کلیک MSJS 17 ارديبهشت 1387, 03:48با سلام من میخاستم یه فایل Swf فلش رو تو وی بی نشون بدم و اون رو مانند یک دکمه بکنم که با کلیک بر روی ان کاری رو انجام بده مثلا یه فورم دیگه رو اجرا کنه .. ( اگه بشه کار هم کرد که با راست کلیک منوی فلش پلیر نشون داده نشده دیگه ..) the_king 17 ارديبهشت 1387, 19:56اول بهتره در مورد اساس و پایه ترفندی که معرفی می کنم یک توضیح مختصری بدم : وقتی شما یک کنترل غیر فعال (یعنی کنترلی که مشخصه Enabled اش False باشه) داشته باشید، کلیک کردن روی اون هیچ رخدادی در کنترل را فعال نمی کند، در عوض طوری رفتار میشه که انگار کنترل مذکور نیست، یعنی کلیک روی لایه زیرین اون انجام میشه. مثلا من یک کنترل دکمه Command 1 را روی فرم قرار می دهم و مشخصه Enabled اش را False می کنم. حالا در هنگام اجرای برنامه وقتی روی کنترل Command 1 کلیک می کنم، رخداد Form_Click فراخوانی می شه، انگار که روی فرم کلیک کرده باشم. حالا اگه در لایه زیرین اون دکمه Command 1 یک کنترل فعال (مشخصه Enabled برابر با True) داشته باشیم، رخداد کلیک مربوط به کنترل زیرین فراخوانی می شه. این ترفندی است که ما در مورد کنترل Flash شما بکار خواهیم برد، اما ابتدا به یک ترفند دیگر می پردازیم : اگه مشخصه های کنترل ShockwaveFlash را ببینید، متوجه خواهید شد که اصلا مشخصه ای با عنوان Enabled ندارد. پس ما چگونه آنرا غیر فعال کنیم؟ راه حل ساده است : یک کنترل PictureBox را روی فرم قرار دهید. اندازه کنترل را برابر با سایز کنترل ShockwaveFlash تان تنظیم کنید. مشخصه BorderStyle اش را None نمایید. مشخصه Enabled اش را Flase نمایید. حالا کنترل ShockwaveFlash را در درون PictureBox رسم کنید و یا کنترل فلش فعلی را Cut کنید و هنگامی که PictureBox فعال است، Paste کنید. اگر این عمل را درست انجام داده باشید، اکنون کنترل Flash شما جزئی از PictureBox شده است و اگر PictureBox را جابجا کنید، کنترل ShockwaveFlash هم جابجا می شود. با انجام این مراحل و ترکیب دو کنترل، شما باعث غیر فعال شدن ShockwaveFlash شده اید، چون اکنون ShockwaveFlash عضوی از کنترل PictureBox شده است و خصوصیت غیر فعال بودن آنرا به ارث می برد. حالا قسمت اول مشکل حل شده است. اکنون کنترل ShockwaveFlash نسبت به کلیک کردن واکنشی نشان نخواهد داد. در قسمت دوم، یک کنترل Label را در یک قسمت خالی از فرم بسازید. این کنترل را درست در اندازه کنترل ShockwaveFlash تان تنظیم کنید. حالا کنترل Label را روی ShockwaveFlash قرار دهید، جالب است چون نمی توانید. در واقع کنترل Label همواره در پشت سر PictureBox قرار خواهد گرفت و دیده نخواهد شد. چرا؟ چون کنترل های Label جزو گروهی از کنترل ها هستند که پنجره مستقلی ندارند. کنترلی که پنجره ای نداشته باشد نمی تواند روی یک کنترلی را که پنجره دارد بپوشاند. خب، مشکل حل شد. حالا هر فعالیت ماوس روی کنترل فلش شما باعث فعال شدن رخداد های Label می شود، یعنی رخدادهای : Private Sub Label1_Click() End Sub Private Sub Label1_DblClick() End Sub Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2753]