تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: Splash Screen in C# - Visual Studio 2008

  1. #1
    پروفشنال Smartie7's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    Far away
    پست ها
    877

    پيش فرض Splash Screen in C# - Visual Studio 2008

    سلام

    دوستان لطف کنید شیوه ی ایجاد یه splash screen ساده با زبان C# رو اینجا بزارید.


    لطفا توضیح بدید Threading چی هست؟
    Last edited by Smartie7; 08-08-2010 at 21:45.

  2. #2
    Banned
    تاريخ عضويت
    Dec 2009
    محل سكونت
    ►► ◘ ◄◄
    پست ها
    1,222

    پيش فرض

    چگونه یک Splash را در C#‎ بسازیم؟

    برای ساخت یک Splash ساده در Windows Forms Application،کافیست مراحل زیر را طی کنید:
    1) ابتدا یک فرم جدید به پروژه بیافزایید.برای راحتی ما نام این فرم جدید را SplashForm می گذاریم.

    2) SplashForm را،هرگونه تمایل دارید طراحی کنید.در طراحی اینگونه فرم ها معمولا فقط از آیکون،تصاویر یا نوشته های ثابت استفاده شده و از کنترل هایی که برای تعامل با کاربر در نظر گرفته شده اند (مانند TextBox ، ComboBox و...) خبری نیست.همچنین معمولا خاصیت هایی زیر را در طراحی (برای زیبایی)،به فرم القا می کنند:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    معمولا در این فرمها ،هیچ Event یا رویدادی هم پیاده سازی نمی شود.

    3) در کلاس Program (در فایل Program.cs) یک متغیر Public Static از نوع SplashForm با نام splash معرفی و با null مقدار دهی کنید.

    4) در تابع Main کلاس Program به جای خط زیر (فرض بر این است که فرم اصلی برنامه با نام Form1 می باشد)

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این خطوط را بنویسید

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در این خطوط ابتدا یک فرم splash ساخته و نمایش می دهید.سپس اقدام به بارگذاری فرم Form1 نموده و در خط چهارم،با دستور Refresh،به فرم splash دستور می دهید که خود را در بالای(جلوتر از) فرم اصلی بار گذاری کند.در نهایت هم در متد Run،فرم اصلی برنامه را برای نمایش مشخص می کنیم.

    5) رویداد Form_Load فرم Form1 را دریافت کرده و در اولین خط آن عبارت

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و در آخرین خط این متد دستور

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    را وارد کنید.
    در این قسمت ،در اولین خط این متد،splash را به روی فرم اصلی آورده و در آخرین خط این متد نیز (پس از انجام عملیات بار گذاری فرم) اقدام به بستن فرم splash می کند.
    در بین این دو خط عملیات بار گذاری برنامه (که معمولا طولانی است) انجام می شود.

    6) تمام!
    Last edited by alidata2010; 08-08-2010 at 21:57.

  3. #3
    پروفشنال Smartie7's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    Far away
    پست ها
    877

    پيش فرض

    این دیگه خیلی ساده بود!



    من خودم خیلی کد واسه splash screen پیدا کردم ولی میخوام یه نفر توضیح بده که مثلا Threading چیه و ...
    خط به خط برنامه رو آنالیز کنه ...

    از دو راه میشه Splash Screen ساخت:
    1) با استفاده از Timer
    2) با استفاده از Theard

    با تایمر که کاری نداره!


    اگه یه نفر لطف کنه این 2 تا خط کد مشخص شده رو توضیح بده ممنون میشم.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by Smartie7; 08-08-2010 at 22:47.

  4. #4
    Banned
    تاريخ عضويت
    Dec 2009
    محل سكونت
    ►► ◘ ◄◄
    پست ها
    1,222

    پيش فرض

    با پروگرس بار هم میشه این یکی جدیده خودم اختراع کردم

  5. #5
    Banned
    تاريخ عضويت
    Dec 2009
    محل سكونت
    ►► ◘ ◄◄
    پست ها
    1,222

    پيش فرض

    اینارو بخون شاید چیزی فهمیدی :

    مقدمه :

    Thread ها ابزاری مفید هستند که به کاربر اجازه می دهند تا اعمالی را به صورت موازی (Parallel) و همزمان انجام دهد. با استفاده از Thread ها، از امکانات MultiTasking در یک برنامه استفاده می کنید. در ضمن می توانید یک قسمت از برنامه را متوقف و یا به جریان بیندازید. در استفاده از Threadها بسیار مراقب باشید چون منابع شما محدود هستند.
    Threadها هنگامی که باید منتظر پاسخ بخشی دیگر از برنامه باشید، بسیار به کار می آیند و شما می توانید در حالی که بخشی از برنامه متوقف است و منتظر پاسخ است بقیه قسمت ها را پیش ببرید که سرعت برنامه های شما را به طرز قابل ملاحظه ای افزایش می دهد..
    در C# کلاسهایی برای استفاده از Thread ها وجود دارندکه در System.Threading قرار دارند. در ادامه یک مورد ساده ی استفاده از Thread شرح داده می شود. امید است که مورد استفاده واقع شود.

    کار با Thread ها :

    در ابتدا باید یک Object از نوع System.Threading.Thread ایجاد کنید. کلاس Thread تنها یک ایجادکننده (Constructor) دارد که یک ThreadStart (که یک Delegate است) می گیرد. برای توابع static می توان مستقیما نام تابع را ارسال کرد. تابع نوشته شده باید هیچ پارامتری نداشته باشد و هیچ مقداری را نیز برنگرداند (یعنی void باشد) به این علت که تابع اصلی این گونه تعریف شده است.
    public static void MyCallbackFunction()
    {
    while (true)
    {
    System.Console.WriteLine(“ Hey!, My Thread Function Running”);
    }
    }


    Thread MyThread = new Thread(new ThreadStart (MyCallbackFunction));
    MyThread.Start();

    بعد از ایجاد Thread می توانید آن را با Start، شروع کنید. Thread را می توانید با Abort بکشید که باعث ایجاد یک ThreadAbortException خواهد شد. با Suspend و Resume هم می توانید Thread را متوقف و یا مجددا به حرکت بیندازید.
    Thread یکی از حالت های زیر را دارد که با ThreadState قابل مشاهده است:
    Thread State Description
    Unstarted Thread is Created within the common language run time but not Started still.
    Running After a Thread calls Start method
    WaitSleepJoin After a Thread calls its wait or Sleep or Join method.
    Suspended Thread Responds to a Suspend method call.
    Stopped The Thread is Stopped, either normally or Aborted.






    اولویت Thread نیز با ThreadPriority تعیین می شود که یکی از حالت های زیر را دارد:
    Lowest, BelowNormal, Normal, AboveNormal, Highest
    که در حالت عادی Normal است.

    مثال های بیشتر برای MultiTreading

    برنامه زیر یک برنامه ی مفید و ساده برای دریافتن مفهوم MultiThread است که به همراه خروجی برنامه آورده می شود:
    using System;
    using System.Threading;
    class Tester
    {
    static void Main( )
    {
    // make an instance of this class
    Tester t = new Tester( );
    // run outside static Main
    t.DoTest( );
    }
    public void DoTest( )
    {
    // create a thread for the Incrementer
    // pass in a ThreadStart delegate
    // with the address of Incrementer
    Thread t1 = new Thread( new ThreadStart(Incrementer) );
    // create a thread for the Decrementer
    // pass in a ThreadStart delegate
    // with the address of Decrementer
    Thread t2 =
    new Thread( new ThreadStart(Decrementer) );
    // start the threads
    t1.Start( );
    t2.Start( );
    }
    // demo function, counts up to 1K
    public void Incrementer( )
    {
    for (int i =0;i<1000;i++)
    {
    Console.WriteLine("Incrementer: {0}", i);
    }
    }
    // demo function, counts down from 1k
    public void Decrementer( )
    {
    for (int i = 1000;i>=0;i--)
    {
    Console.WriteLine("Decrementer: {0}", i);
    }
    }
    }

    Output:
    Incrementer: 102
    Incrementer: 103
    Incrementer: 104
    Incrementer: 105
    Incrementer: 106
    Decrementer: 1000
    Decrementer: 999
    Decrementer: 998
    Decrementer: 997
    پیوند زدن Thread ها و متوقف کردن آنها

    بااستفاده از join می توانید Thread ها را به هم وصل کنید و با Seleep برای لحظاتی چند متوقف کنید. یک نمونه ی ساده در زیر آمده است :
    using System;
    using System.Threading;
    class Tester
    {
    private int counter = 0;
    static void Main( )
    {
    // make an instance of this class
    Tester t = new Tester( );
    // run outside static Main
    t.DoTest( );
    }
    public void DoTest( )
    {
    Thread t1 = new Thread( new ThreadStart(Incrementer) );
    t1.IsBackground=/.\content/fa/kb/thread/true;
    t1.Name = "ThreadOne";
    t1.Start( );
    Console.WriteLine("Started thread {0}",
    t1.Name);
    Thread t2 = new Thread( new ThreadStart(Incrementer) );
    t2.IsBackground=/.\content/fa/kb/thread/true;
    t2.Name = "ThreadTwo";
    t2.Start( );
    Console.WriteLine("Started thread {0}",
    t2.Name);
    t1.Join( );
    t2.Join( );

    // after all threads end, print a message
    Console.WriteLine("All my threads are done.");
    }
    // demo function, counts up to 1K
    public void Incrementer( )
    {
    try
    {
    while (counter < 1000)
    {
    int temp = counter;
    temp++; // increment
    // simulate some work in this method
    Thread.Sleep(1);
    // assign the decremented value
    // and display the results
    counter = temp;
    Console.WriteLine("Thread {0}. Incrementer: {1}",Thread.CurrentThread.Name,counter);
    }
    }
    catch (ThreadInterruptedException)
    {
    Console.WriteLine("Thread {0} interrupted! Cleaning up...",Thread.CurrentThread.Name);
    }
    finally
    {
    Console.WriteLine("Thread {0} Exiting. ",Thread.CurrentThread.Name);
    }
    }
    }


    Output:
    Started thread ThreadOne
    Started thread ThreadTwo
    Thread ThreadOne. Incrementer: 1
    Thread ThreadOne. Incrementer: 2
    Thread ThreadOne. Incrementer: 3
    Thread ThreadTwo. Incrementer: 3
    Thread ThreadTwo. Incrementer: 4
    Thread ThreadOne. Incrementer: 4
    Thread ThreadTwo. Incrementer: 5
    Thread ThreadOne. Incrementer: 5
    Thread ThreadTwo. Incrementer: 6
    Thread ThreadOne. Incrementer: 6
    استفاده از InterLock

    یکی دیگر از امکاناتی که در اختیار دارید، امکان InterLock است که براساس آن می توانید برای برنامه های در حال اجرا Lock تعریف کنید. برای این کار C# تابعی به نام InterLock در اختیار شما قرار می دهد که شامل دو تابع Increment و Decrement است.
    نمونه ی ساده ای از نحوه استفاده و خروجی تابع در زیر آمده است:
    public void Incrementer( )
    {
    try
    {
    while (counter < 1000)
    {
    Interlocked.Increment(ref counter);
    // simulate some work in this method
    Thread.Sleep(1);
    // assign the decremented value
    // and display the results
    Console.WriteLine("Thread {0}. Incrementer: {1}", Thread.CurrentThread.Name,counter);
    }
    }
    }

    Output (excerpts):
    Started thread ThreadOne
    Started thread ThreadTwo
    Thread ThreadOne. Incrementer: 1
    Thread ThreadTwo. Incrementer: 2
    Thread ThreadOne. Incrementer: 3
    Thread ThreadTwo. Incrementer: 4
    Thread ThreadOne. Incrementer: 5
    Thread ThreadTwo. Incrementer: 6
    Thread ThreadOne. Incrementer: 7
    Thread ThreadTwo. Incrementer: 8
    Thread ThreadOne. Incrementer: 9
    Thread ThreadTwo. Incrementer: 10
    Thread ThreadOne. Incrementer: 11
    Thread ThreadTwo. Incrementer: 12
    Thread ThreadOne. Incrementer: 13
    Thread ThreadTwo. Incrementer: 14
    Thread ThreadOne. Incrementer: 15
    Thread ThreadTwo. Incrementer: 16
    Thread ThreadOne. Incrementer: 17
    Thread ThreadTwo. Incrementer: 18
    Thread ThreadOne. Incrementer: 19
    Thread ThreadTwo. Incrementer: 20

  6. این کاربر از alidata2010 بخاطر این مطلب مفید تشکر کرده است


  7. #6
    پروفشنال Smartie7's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    Far away
    پست ها
    877

    پيش فرض

    با پروگرس بار هم میشه این یکی جدیده خودم اختراع کردم
    آره، میشه تو splash screen از progressbar هم استفاده کرد .
    دیشب که اینو نوشتی من خودم درگیرش بودم اومدم بگم ولی کانکشنم مشکل پیدا کرد.

    اون مقاله خوب بود درباره ی thread ها ولی کم بود.

  8. #7
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2011
    پست ها
    1

    پيش فرض

    آره، میشه تو splash screen از progressbar هم استفاده کرد .
    دیشب که اینو نوشتی من خودم درگیرش بودم اومدم بگم ولی کانکشنم مشکل پیدا کرد.

    اون مقاله خوب بود درباره ی thread ها ولی کم بود.

    سلام دوست عزیز
    امکانش هست که توضیح بدی چطوری از progress bar برای نشان دادن splash می شه استفاده کر؟

    با تشکر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •