نمایش نتایج 1 تا 6 از 6

نام تاپیک: وقفه در تایمر و کند شدن آن

  1. #1
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    وقفه در تایمر و کند شدن آن

    سلام

    من یه صفحه دارم که شامل 6 انیمیشن gif animation هست که یک تایمر هم دارم که با شروع تایم آن هر کدوم از این عکس ها انتخاب می شن و توضیحاتی در مورد اونها داده می شه

    حجم صفحه هم زیاد نیست . یعنی صفحه دیگه ای دارم که شامل انیمیشن های بیشتری هست و مشکلی نداره

    اما این صفحه با اینکه فقط 6 انیمیشن داره تایمرش جا می مونه ... مثلا هر 2 ثانیه ای یهو جلو می ره و یا چند ثانیه ثابت می مونه

    من از تایمرهای تولباکس ویژوال استدیو 2008 استفاده کردم ...

    مشکل چیه ؟

    آیا لازمه از تردها استفاده کنم؟

    اگه ممکنه توضیح بدین .. ممنون

  2. #2
    کاربر تازه وارد آواتار daniel_0247
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    Kuala Lumpur
    پست
    91

    نقل قول: وقفه در تایمر و کند شدن آن

    سلام
    می تونید از BackGroundWorker ها استفاده کنید .

  3. #3
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: وقفه در تایمر و کند شدن آن

    ممکنه در موردشون بیشتر توضیح بدین

  4. #4
    کاربر تازه وارد آواتار daniel_0247
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    Kuala Lumpur
    پست
    91

    نقل قول: وقفه در تایمر و کند شدن آن

    یه مقاله در مورد BackGroundWorker ها نوشتم ، که امیدوارم کارتون رو راه بندازه !

    دانلود
    آخرین ویرایش به وسیله daniel_0247 : پنج شنبه 16 مهر 1388 در 17:10 عصر

  5. #5
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: وقفه در تایمر و کند شدن آن

    من مقاله رو خوندم ...

    صفحه من به این شکله که 6 انیمیشن در اون قرار داره که با لود صفحه اونها نمایش داده می شن البته توی picturebox گذاشتمشون و با کدنویسی اونها رو لود نمی کنم.

    و یک تایمر دارم ... که شرط هایی رو چک می کنم اگه عدد تایمر شد 10 picturbox1 مشخص بشه مثلا boreder بخوره ...

    اگه تایمر رسید به 20 انیمیشن دوم و ... به همین ترتیب

    حالا این کدها نمی دونم به چه دلیل سرعت تایمر رو می گیره یعنی همونطور که گفتم تایمر یا جا می مونه یا سریع تر از حالت عادی پیش می ره و چون می خوام طبق تایمر روی برنامه صوت بذارم نمی شه از این مورد چشم پوشی کرد

    حالا این کدهای شرطی داخل تایمر رو توی backgroundworker گذاشتم و در رویداد runcomplete نوشتم یه پیغام بده ... اما تا برنامه بالا می آد پیغامو می ده...

    کدشو می ذارم اگه ممکنه بگین کجا باید استفاده کنم این backgroundworker رو.


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Media;
    using System.Collections;
    using System.Threading;



    namespace childfriend
    {
    public partial class jungle : Form
    {
    private int sec = 0, ext=0;
    private Point loc1, loc2, loc3, loc4, loc5, loc6;
    Cat mycat = new Cat();


    public jungle()
    {
    InitializeComponent();
    }

    //don't let close form with ALT+F4
    protected override System.Boolean ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
    {
    if ((msg.Msg == 0x104) && (((int)msg.LParam) == 0x203e0001))
    return true;
    return false;
    }

    private void jungle_Load(object sender, EventArgs e)
    {
    backgroundWorker1.RunWorkerAsync();
    mycat.a = 903;
    mycat.b = 110;
    timer1.Enabled = true;
    pictureBox7.Visible = false;

    // pictureBox1.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (9).png");//kharchang
    // pictureBox2.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (11).png");//panda
    // pictureBox3.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (2).png");//sag
    // pictureBox4.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (4).png");//mahi
    // pictureBox5.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (27).png");//gorbe
    // pictureBox6.Image = Image.FromFile(Application.StartupPath + @"\pic\animalteach\anim (1).png");//gav
    loc1.X = 591;
    loc1.Y = 577;
    pictureBox1.Location = loc1;
    loc2.X = 439;
    loc2.Y = 260;
    pictureBox2.Location = loc2;
    loc3.X = 192;
    loc3.Y = 557;
    pictureBox3.Location = loc3;
    loc4.X = 774;
    loc4.Y = 623;
    pictureBox4.Location = loc4;
    loc5.X = 793;
    loc5.Y = 324;
    pictureBox5.Location = loc5;
    loc6.X = 62;
    loc6.Y = 314;
    pictureBox6.Location = loc6;


    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    sec += 1;
    timer1.Interval = 1000;
    label1.Text = sec.ToString();

    }

    private void transparentpic1_Click(object sender, EventArgs e)
    {
    transparentpic1.Visible = false;
    this.Enabled = false;
    ext = 0;
    timer2.Enabled = true;
    mycat.CatExit();
    sec = 0;
    timer1.Enabled = false;
    }

    private void hotspot1_Click(object sender, EventArgs e)
    {

    }

    private void hotspot2_Click(object sender, EventArgs e)
    {

    }

    private void backgroundWorker1_DoWork_1(object sender, DoWorkEventArgs e)
    {
    if (sec > 10 && sec < 20)//kharchang
    {
    // pictureBox1.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\16.gif");
    // loc1.X = 575;
    // loc1.Y = 567;
    // pictureBox1.Location = loc1;
    // pictureBox1.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 610;
    loc1.Y = 639;
    pictureBox7.Location = loc1;
    string mypath = Application.StartupPath + @"\music\no.wav";
    SoundPlayer simpleSound = new SoundPlayer(mypath);
    simpleSound.Play();

    }
    if (sec > 20 && sec < 30)//panda
    {
    // pictureBox2.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\20.gif");
    // loc2.X = 453;
    // loc2.Y = 225;
    // pictureBox2.Location = loc2;
    // pictureBox2.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 462;
    loc1.Y = 396;
    pictureBox7.Location = loc1;
    }
    if (sec > 30 && sec < 40)//sag
    {
    // pictureBox3.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\6.gif");
    // loc3.X = 165;
    // loc3.Y = 526;
    // pictureBox3.Location = loc3;
    // pictureBox3.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 200;
    loc1.Y = 659;
    pictureBox7.Location = loc1;
    }
    if (sec > 40 && sec < 50)//mahi
    {
    // pictureBox4.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\10.gif");
    // loc4.X = 774;
    // loc4.Y = 623;
    // pictureBox4.Location = loc4;
    // pictureBox4.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 891;
    loc1.Y = 684;
    pictureBox7.Location = loc1;
    }
    if (sec > 50 && sec < 60)//gorbe
    {
    // pictureBox5.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\3.gif");
    // loc5.X = 774;
    // loc5.Y = 291;
    // pictureBox5.Location = loc5;
    // pictureBox5.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 810;
    loc1.Y = 421;
    pictureBox7.Location = loc1;
    }
    if (sec > 60 && sec < 70)//gav
    {
    // pictureBox6.Image = Image.FromFile(Application.StartupPath + @"\pic\animalbig\5.gif");
    // loc6.X = 48;
    // loc6.Y = 272;
    // pictureBox6.Location = loc6;
    // pictureBox6.BorderStyle = BorderStyle.FixedSingle;
    pictureBox7.Visible = true;
    loc1.X = 90;
    loc1.Y = 447;
    pictureBox7.Location = loc1;
    }

    if (sec == 70)
    {
    sec = 0;
    timer1.Enabled = false;
    this.Hide();
    animalquery animq = new animalquery();
    animq.Tag = this;
    animq.ShowDialog();
    }
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
    ext += 1;
    timer2.Interval = 1000;
    backgroundWorker1.RunWorkerAsync();
    if (ext > 2)
    {
    mycat.MyCat.Hide();
    timer2.Enabled = false;
    this.Enabled = true;
    transparentpic1.Visible = true;
    this.Close();
    foreach (Form teaching in Application.OpenForms)
    {
    if (teaching is teach)
    Application.OpenForms["teach"].Show();
    }
    }
    }

    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    MessageBox.Show("complete");
    }
    }
    }


    این کد کل صفحه هست... ممنون می شم اشکالشو بگین

    در ضمن این picturebox7 یه انیمیشن هست که یک فلشه که به عکسی که اون لحظه انتخاب شده اشاره می کنه . به جای همون border که گفتم استفاده می شه... یعنی مشخص می کنه که الان کدوم عکس می خواد معرفی بشه و صوت روی اون پخش بشه... برای همین با تغییر عدد تایمر ، محل این انیمیشن تغییر می کنه.

  6. #6
    کاربر تازه وارد آواتار daniel_0247
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    Kuala Lumpur
    پست
    91

    نقل قول: وقفه در تایمر و کند شدن آن

    سلام
    دوست عزیز شما می تونی برای اینکه عکس یا انیمیشن به ترتیب در BackGroundWorker بیاد
    ابتدا باید آدرس فایل ها رو در آرایه بریزی :
    [
      string[] str = {"url"}


    و بعد در رویداد Do_Work
      for (int i = 0; i < str.Length; i++)
    {
    System.Threading.Thread.Sleep(5000);
    pictureBox1.Image = Image.FromFile(str[i]);


    }


    شما می تونید زمان ترید رو تغییر بدید!

    موفق باشید .
    ___________________

    My Blog

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •