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

نام تاپیک: تغییر موقعیت دکمه ها به صورت رندوم

  1. #1
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    تغییر موقعیت دکمه ها به صورت رندوم

    سلام دوستان من یک ماشین حساب دارم میخوام وقتی برنامه باز میشه موقعیت دکمه ها تغییر کنه

    بهترین مثال کیبورد امنیتی بانک ها هنگام پرداخت آنلاین میباشد که با هر بار باز شدن صفحه موقعیت دکمه ها تغییر میکنه

    https://epayment.bmi.ir/MoneyTransfer



    من میخوام دکمه های ماشین حساب اون هم فقط عدد ها جا به جا بشن

    555.jpg

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    سلام
    علی الحساب، به نظر من باید تکست دکمه ها رو به صورت رندم تغییر بدید و موقع محاسبه هم خاصیت تکست دکمه رو بخونید و ازش استفاده کنید. روی این موضوع فکر کنید تا ببینیم چه راه حلی واسش پیدا میشه.

  3. #3
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    به نظر شما اگر موقعیت عوض بشه بهتر نیست یعنی راحت تر نیست ؟

    چون اگر قرار باشه تکس دکمه ها عوض بشه کد های زیادی باید عوض و جا به جا بشن

                button1.Location = new Point(52, 198);

  4. #4
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    سلام
    یه کلاس درست کنید و این کدها رو قرار بدین :

    public void moveCtrl(Control Control1, Control Control2)        {
    int xC1 = Control1.Location.X;
    int yC1 = Control1.Location.Y;
    int xC2 = Control2.Location.X;
    int yC2 = Control2.Location.Y;
    Control1.Location = new System.Drawing.Point(xC2, yC2);
    Control2.Location = new System.Drawing.Point(xC1, yC1);
    }


    قراره جای باتون ها با هر بار لود شدن فرم عوض بشه (با باتون هایی که بعدا معرفی می کنید)

    و توی رویداد لود_فرم :

    Button[] c = {button1, button2, button3, button4, button5};            Random rn = new Random();
    int rnd = rn.Next(0, c.Length);
    xc.moveCtrl(button1, c[rnd]);


    خط اول میگه که کدوم دکمه ها باید جا بجا بشن ...
    و تو خط آخر میگه کدوم با بقیه جابجا بشه ! که می تونی تعدادش رو مث خط اول بیشتر از یه باتون کنی (تو این حالت فقط باتون1 جاش با یکی از اون چند تا عوض میشه)
    البته کدها رو بعد از فراخوانی کلاس کدهای بالا رو بنویسید ... مثل فراخوانی یه فرم :

    Class1 c1 = new Class1

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    خب، اول یه کلاس داریم که یه Extension هست برای List ، این یه الگوریتم نامرتب سازی (shuffle به طور عامیانه میشه بُر زدن که توی ورق بازی استفاده میشه) یک مجموعه هست. پس کدهای زیر رو توی یه کلاس یا آخر کدهای فرمتون بنویسید:

    static class MyExtensions
    {
    public static void Shuffle<T>(this IList<T> list)
    {
    Random rng = new Random();
    int n = list.Count;
    while (n > 1)
    {
    n--;
    int k = rng.Next(n + 1);
    T value = list[k];
    list[k] = list[n];
    list[n] = value;
    }
    }
    }


    بعد ده تا دکمه برای اعداد 0 تا 9 روی فرم قرار بدید و Name اونها رو از btn0 تا btn9 قرار بدید و در آخر در لود فرم یا در یک دکمه کدهای زیر رو بنویسید:
    List<Button> lst = new List<Button>();
    lst.Add(btn0);
    lst.Add(btn1);
    lst.Add(btn2);
    lst.Add(btn3);
    lst.Add(btn4);
    lst.Add(btn5);
    lst.Add(btn6);
    lst.Add(btn7);
    lst.Add(btn8);
    lst.Add(btn9);

    lst.Shuffle();



    int _number = 0;
    foreach (Button btn in lst)
    {
    btn.Text = _number.ToString();
    _number++;
    }


    روش کار هم به این صورته که اول دکمه ها رو در یک لیست قرار میدیم بعد لیست رو به هم می زنیم تا ترتیبش از دست بره بعد اعداد 0 تا 9 رو به لیست به هم ریخته اختصاص میدیم. حالا می تونید از خاصیت Text باتن ها استفاده کنید.

  6. #6
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    الان کد شما کاملا درست عمل میکنه خیلی هم عالی هست ولی فقط Text دکمه ها رو تغییر میده

    مثلا الان وقتی روی دکمه 3 کلیک میکنم 6 میزنه من نمیخوام کد های اصلی من بهم بخوره

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    شما مثلاً برای دکمه 3 چه کدی نوشتید؟

  8. #8
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    نقل قول نوشته شده توسط Mahmoud Zaad مشاهده تاپیک
    شما مثلاً برای دکمه 3 چه کدی نوشتید؟

    textBox1.Text += "3";

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    نقل قول نوشته شده توسط mohammad2407 مشاهده تاپیک
    textBox1.Text += "3";
    خب عرض کردم شما به جای اون "3" بنویسید btn3.Text برای بقیه دکمه ها هم همین کار رو بکنید. به جای "0" در دکمه 0 بنویسید btn0.Text و ...

  10. #10
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    ایول دمت گرم





    لطف کردی

  11. #11

    نقل قول: تغییر موقعیت دکمه ها به صورت رندوم

    میشه یه آرایه 10 عنصری از نوع اینت داشت و مقادیر تصادفی 0 تا 9 را دورنش گذاشت! حالا خونه صفرم (که یک عددیست از 0 تا 9 )را به دکمه صفر انتساب بدین! بقیه هم بهمین ترتیب...

تاپیک های مشابه

  1. تغییر تصویر دکمه های DBNavigator
    نوشته شده توسط Mohammad_Mnt در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 17 آذر 1384, 22:35 عصر
  2. چگونگی تغییر عنوان دکمه های msgbox از انگلیسی به فارسی
    نوشته شده توسط mahnoosh در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: چهارشنبه 27 مهر 1384, 18:13 عصر
  3. تغییر شکل دکمه ها به مدل xp
    نوشته شده توسط Delphi Skyline در بخش برنامه نویسی در Delphi
    پاسخ: 13
    آخرین پست: سه شنبه 20 بهمن 1383, 12:01 عصر
  4. تغییر موقعیت Mouse
    نوشته شده توسط FirstLine در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: دوشنبه 21 دی 1383, 22:33 عصر
  5. تغییر Caption دکمه های در MessageDlg
    نوشته شده توسط Mahdi_S_T در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 05 مرداد 1383, 11:36 صبح

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

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