صفحه 3 از 4 نخستنخست 1234 آخرینآخرین
نمایش نتایج: از شماره 21 تا 30 , از مجموع 32

موضوع: فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

  1. #21
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

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

    کد:
    NowPlayingColor = {}
    NowPlayingColor[1] = 64510
    NowPlayingColor[2] = 65275
    NowPlayingColor[3] = 65269
    NowPlayingColor[4] = 65263
    NowPlayingColor[5] = 65257
    NowPlayingColor[6] = 65251
    NowPlayingColor[7] = 65245
    NowPlayingColor[8] = 65239
    NowPlayingColor[9] = 65233
    NowPlayingColor[10] = 65227
    NowPlayingColor[11] = 65221
    NowPlayingColor[12] = 65215
    NowPlayingColor[13] = 65209
    NowPlayingColor[14] = 65203
    NowPlayingColor[15] = 65197
    NowPlayingColor[16] = 65191
    NowPlayingColor[17] = 65185
    NowPlayingColor[18] = 65179
    NowPlayingColor[19] = 65173
    NowPlayingColor[20] = 65167
    NowPlayingColor[21] = 65161
    NowPlayingColor[22] = 65155
    NowPlayingColor[23] = 65149
    NowPlayingColor[24] = 65143
    NowPlayingColor[25] = 65137
    NowPlayingColor[26] = 65131
    NowPlayingColor[27] = 65125
    NowPlayingColor[28] = 65119
    NowPlayingColor[29] = 65113
    NowPlayingColor[30] = 65107
    NowPlayingColor[31] = 65101
    NowPlayingColor[32] = 65095
    NowPlayingColor[33] = 65089
    NowPlayingColor[34] = 65083
    NowPlayingColor[35] = 65077
    NowPlayingColor[36] = 65071
    NowPlayingColor[37] = 65065
    NowPlayingColor[38] = 65059
    NowPlayingColor[39] = 65053
    NowPlayingColor[40] = 65047
    NowPlayingColor[41] = 65041
    NowPlayingColor[42] = 65035
    NowPlayingColor[43] = 65029
    NowPlayingColor[44] = 65024
    NowPlayingColor[45] = 785920
    NowPlayingColor[46] = 1179136
    NowPlayingColor[47] = 1572352
    NowPlayingColor[48] = 1965568
    NowPlayingColor[49] = 2358784
    NowPlayingColor[50] = 2752000
    NowPlayingColor[51] = 3145216
    NowPlayingColor[52] = 3538432
    NowPlayingColor[53] = 3931648
    NowPlayingColor[54] = 4324864
    NowPlayingColor[55] = 4718080
    NowPlayingColor[56] = 5111296
    NowPlayingColor[57] = 5504512
    NowPlayingColor[58] = 5897728
    NowPlayingColor[59] = 6290944
    NowPlayingColor[60] = 6684160
    NowPlayingColor[61] = 7077376
    NowPlayingColor[62] = 7470592
    NowPlayingColor[63] = 7863808
    NowPlayingColor[64] = 8257024
    NowPlayingColor[65] = 8650240
    NowPlayingColor[66] = 9043456
    NowPlayingColor[67] = 9436672
    NowPlayingColor[68] = 9829888
    NowPlayingColor[69] = 10223104
    NowPlayingColor[70] = 10616320
    NowPlayingColor[71] = 11009536
    NowPlayingColor[72] = 11402752
    NowPlayingColor[73] = 11795968
    NowPlayingColor[74] = 12189184
    NowPlayingColor[75] = 12582400
    NowPlayingColor[76] = 12975616
    NowPlayingColor[77] = 13368832
    NowPlayingColor[78] = 13762048
    NowPlayingColor[79] = 14155264
    NowPlayingColor[80] = 14548480
    NowPlayingColor[81] = 14941696
    NowPlayingColor[82] = 15334912
    NowPlayingColor[83] = 15728128
    NowPlayingColor[84] = 16121344
    NowPlayingColor[85] = 16514560
    NowPlayingColor[86] = 16710400
    NowPlayingColor[87] = 16708864
    NowPlayingColor[88] = 16707328
    NowPlayingColor[89] = 16705792
    NowPlayingColor[90] = 16704256
    NowPlayingColor[91] = 16702720
    NowPlayingColor[92] = 16701184
    NowPlayingColor[93] = 16699648
    NowPlayingColor[94] = 16698112
    NowPlayingColor[95] = 16696576
    NowPlayingColor[96] = 16695040
    NowPlayingColor[97] = 16693504
    NowPlayingColor[98] = 16691968
    NowPlayingColor[99] = 16690432
    NowPlayingColor[100] = 16688896
    NowPlayingColor[101] = 16687360
    NowPlayingColor[102] = 16685824
    NowPlayingColor[103] = 16684288
    NowPlayingColor[104] = 16682752
    NowPlayingColor[105] = 16681216
    NowPlayingColor[106] = 16679680
    NowPlayingColor[107] = 16678144
    NowPlayingColor[108] = 16676608
    NowPlayingColor[109] = 16675072
    NowPlayingColor[110] = 16673536
    NowPlayingColor[111] = 16672000
    NowPlayingColor[112] = 16670464
    NowPlayingColor[113] = 16668928
    NowPlayingColor[114] = 16667392
    NowPlayingColor[115] = 16665856
    NowPlayingColor[116] = 16664320
    NowPlayingColor[117] = 16662784
    NowPlayingColor[118] = 16661248
    NowPlayingColor[119] = 16659712
    NowPlayingColor[120] = 16658176
    NowPlayingColor[121] = 16656640
    NowPlayingColor[122] = 16655104
    NowPlayingColor[123] = 16653568
    NowPlayingColor[124] = 16652032
    NowPlayingColor[125] = 16650496
    NowPlayingColor[126] = 16648960
    NowPlayingColor[127] = 16647424
    NowPlayingColor[128] = 16646144
    NowPlayingColor[129] = 16646149
    NowPlayingColor[130] = 16646155
    NowPlayingColor[131] = 16646161
    NowPlayingColor[132] = 16646167
    NowPlayingColor[133] = 16646173
    NowPlayingColor[134] = 16646179
    NowPlayingColor[135] = 16646185
    NowPlayingColor[136] = 16646191
    NowPlayingColor[137] = 16646197
    NowPlayingColor[138] = 16646203
    NowPlayingColor[139] = 16646209
    NowPlayingColor[140] = 16646215
    NowPlayingColor[141] = 16646221
    NowPlayingColor[142] = 16646227
    NowPlayingColor[143] = 16646233
    NowPlayingColor[144] = 16646239
    NowPlayingColor[145] = 16646245
    NowPlayingColor[146] = 16646251
    NowPlayingColor[147] = 16646257
    NowPlayingColor[148] = 16646263
    NowPlayingColor[149] = 16646269
    NowPlayingColor[150] = 16646275
    NowPlayingColor[151] = 16646281
    NowPlayingColor[152] = 16646287
    NowPlayingColor[153] = 16646293
    NowPlayingColor[154] = 16646299
    NowPlayingColor[155] = 16646323
    NowPlayingColor[156] = 16646305
    NowPlayingColor[157] = 16646311
    NowPlayingColor[158] = 16646317
    NowPlayingColor[159] = 16646323
    NowPlayingColor[160] = 16646329
    NowPlayingColor[161] = 16646335
    NowPlayingColor[162] = 16646341
    NowPlayingColor[163] = 16646347
    NowPlayingColor[164] = 16646353
    NowPlayingColor[165] = 16646359
    NowPlayingColor[166] = 16646365
    NowPlayingColor[167] = 16646371
    NowPlayingColor[168] = 16646377
    NowPlayingColor[169] = 16646383
    NowPlayingColor[170] = 16646389
    NowPlayingColor[171] = 16646395
    NowPlayingColor[172] = 16056574

  2. #22
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    درست کردن (کد نویسی) دیالوگ دستی با پنجره ی DialogEX :

    خوب اساتیدا ، از اونجایی که شما فیلمو دیدین ینی ندیدین ، و جواب سئوال بالای منو هم دادین ینی ندادین و منم خیلی ازتون تشکر میکنم ینی بازم میکنم پس بزارین این قضیه هم بگم
    تو فیلم دیدین دیگه ، تو AMS هر جا نامی از دیالوگ برده میشه ینی یه صفه ای که حالا یا پیام داره فقط یا با گزینه هایی که انتخاب میکنین ، میتونین کار خاصی انجام بده مثلا گزینه ی yes یا no داشته باشه یه دیالوگ
    تا اینجا دید یو آندرستود؟
    خا ، حالا دو نوع دیالوگ داریم تو AMS . یکی پنجره ای هستش که فقط اسمش Dialog هه (البته بازم من منظورم
    بیشتر کد Dialog.Message هه) که این نوع پنجره ، از پیش تعریف شده هه و چن گزینه ی قابل تغییر بیشتر نداره (Abort و Cancell و Yes و No و ...) اما نپجره ی دیگه ای هست بنام DialogEX هه که میتونین مثل صفه ی اتوران ، حتی گرافیکی کار کنین اینترفیس اش رو و هر جور که خودتون خاستین
    اینا رو ول کنین ، بریم سر خاستگاری چی همون اسب Matlab (این قد ممدرضا گفت که ما رو به بی راهه کشوند )
    مهم کد نویسی شونه و اینکه چه متغییر که اینجا عدده رو برگردونه
    تو کد نویسی Dialog.Message که تو فیلم توضیح داده شد و اینکه دکمه ی Yes چه عددی رو برمیگردونه وبقیه ی کد ها ...
    تو کد نویسی برای صفه ی DialogEX ، مثلا 3 تا شی (تصویر یا آیکون یا حتی نوشته) میزارین که اگه طرف آیکون اولی رو انتخاب کرد ، مثل مثال Dialog.Message ، یه عدد رو برگردونه و اگه آیکون دومی رو انتخابید ، یه عدد دیگه و ...

    یادتون باشه اولین و تنها استثنایی که تو برگردوندن یا همون ذخیره کردن متغییر ها هست ، تو همین قضیه ی DialogEX هه . این جوری که وقتی تو صفحه ی اصلی پروژه (صفه ی DialogEX منظورم نیست) ، با کد DialogEX.Show ، اون صفه ی دیالوگ (منظورم DialogEX هه) رو نمایش بدین ، وقتی موقه بستن همین صفه ، با کد DialogEX.Close ، تو اون پارامتر یا همون ورودی اول همین کد ، هر عددی رو که بنویسین (انتخاب این عدد ، دلخواهی هه) ، این محتوای متغییر (که از نوع عدد) هست ، توی اون متغییری که باهاش این صفه ی DialogEX نمایش داده شد ، ذخیره میشه
    من که میدونم متوجه نشدین
    بزارین مثال بزنم :
    مثلا تو پروژه ی اصلی تو یه رویدادی ، آیکونی ، چیزی مینویسین :

    کد:
    Message = DialogEx.Show("Dialog1", true, nil, nil);
    اینو که میدونین ، باعث میشه که صفه ی DialogEX که طراحی کرده بودیم خودمون رو نمایش بده و متغییر اش هم که اسم شو گرفتیم Message
    هر عددی هم موقه خروج تو کد DialogEX.Close که بعدا مینویسیم ، تو این متغییر اش ینی متغییر Message ذخیره میشه
    3 تا گزینه یا آیکون تو این صفه ی دیالوگ طراحی کردیم که هر کدوم شون با کد DialogEX.Close ، اون کدی رو که تو پارامتر اول این کد مینویسیم ، برمیگردونه تو متغییر Message
    پس باید تو هر 3 تا آیکون کد DialogEX.Close رو بنویسیم
    چون عدد پارامترش دلخواهی هه ، اولی رو 1 و دومی رو 2 و سومی رو 3 میگیریم
    پس تو آیکون اول مینویسیم :

    کد:
    Close = DialogEx.Close(1);

    عدد 1 پارامتر اول این کد رو که توضیح دادم
    الان این عدد 1 رو اگه کسی با AMS آشنایی داشته باشه یه خورده ، انتظار داره که تو متغییر خود همین کد DialogEx.Close که اسم این متغییر رو Close گرفتیم ، ذخیره شه
    اما گفتم که استثنا داره
    این عدد 1 ، تو اون متغییری ذخیره میشه که باعث باز شدن این صفه ی دیالوگ شده بود ینی تو متغییر کد DialogEx.Show که تو اینجا اسمشو Message گرفته بودیم
    پس از این به بعد با انتخاب اولین آیکون این صفه ی دیالوگ ، این صفه بسته میشه و عدد 1 (عددی که تو اولین پارامتر کد DialogEx.Close) نوشته بودیم ، تو متغییر Message (متغییر اون کدی که باعث باز شدن اون صفه ی دیالوگ شد) ذخیره میشه
    حالا همین کار را برا آیکون دوم صفه ی دیالوگ میکنیم . که قبلا توضیح داده بودم ینی مینویسم :

    کد:
    Close = DialogEx.Close(2);

    و همینطور واسه آیکون سوم

    حالا برا کد نویسی اصلیش که دیگه اوستایین و از این مثالای پیش دست و پا شکسته و افتاده رو 6000 بار کار کردیم دیگه؟ ها؟
    تو ادامه ی کد همونجایی که کد باز شدن صفه ی دیالوگ (DialogEx.Show) رو نوشته بودین ، میگین که اگه این متغییر Message ، 1 بود (ینی اگه گزینه یا آیکون اول تو صفه ی دیالوگ کلیک یا انتخاب شد) ، فلان کار رو کنه و اگه برابر 2 بود ، فلان کار رو کنه و ... ینی تو ادامه :


    کد:
    if Message~=-1 then
        if Message==1 then
        Dastorat ro inja benevisin
        elseif Message==2 then
        Dastorat ro inja benevisin
        elseif Message==3 then
        Dastorat ro inja benevisin
        end
    end
    تو خط اول گفته شد مخالف -1 هر وقت بود این کد ها اجرا شن چون اگه موقه بستن دیالوگ (کد DialogEX.Close) ، اروری اتفاق بیفته ، تو متغییر کد نمایش دیالوگ که تو اینجا Message بود ، -1 (منفی یک) برگردونده میشه
    از اونجایی که شما مثل من فراموش کارین ، اگه صفه ی DialogEX ، بصورت استانداردباشه و کاربر قابلیت اینو داشته باشه که از بالا ، گزینه ی ضربدر رو انتخاب کنه و از این طریق ببنده ، در این صورت ، تو همون متغییر صفه ای که دیالوگ رو نمایش میده (در اینجا متغییر Message) عدد مربوط به دکمه ی کنسل که همیشه یا اغلب اوقات عدد 2 هست ، برگردونده میشه پس یادتون باشه که اگه صفه ی دیالوگ بصورت استاندارد هست ، موقه انتخاب عد تو پارامتر اول کد DialogEx.Close ، عدد 2 رو انتخاب نکنین که با این کد کنسل قاتی شه و ندونین قضیه از کجاهه (عدد منفی هم یه وقت نزارین . حالا گفتیم که دلخاهی هه )
    دید یو آندرستند بالام جان های گل مهندسین؟

  3. #23
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

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


    کد:
    Array = {}
    Array[1] = 53
    Array[2] = 48
    Array[3] = 9

    خوب این که ملومه مثلا تو رویداد On Click یه شی بنویسم :


    کد:
    Dialog.Message("Notice", Array[1], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

    مقدار اولین عضوش که 53 بود رو چاپ میکنه
    و اگه حالا تو رویداد On Leave اون شی فقط این آرایه رو تعریف کنم (اعضاش رو نه ها) ینی فقط تو این رویداد بنویسم :


    کد:
    Array = {}

    حالا تاوم عضوهای آرایه پاک میشن و یه آرایه ی خالی جایگزین میشه و حالا اگه دوباره روش کلیک کنین ، یه پیام میده که اولین عضوش خالی هه (ملومه که اگه تو رویداد On Leave ، عضوهاشو مشخص کنیم ، این عضوهای جدید تعریف میشن دیگه و عضوهای قبلی همونطور که گفته شد ، هر چن تایی که بودن ، حذف میشن)

  4. #24
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    نحوه ی کد و الگوریتم جدید دادن به یک رویداد (رویداد اشیاء) :
    ینی چی؟ ینی اینکه مثلا شی ای وجود نداشته باشه و شما اون شی رو بوجود بیارین و بعد برا رویدادهای مختلف اون شی (مثلا کلیک چپ و ...) اش کد بنویسین و یا حتی برا پاک کردن و تعویض کد نوشته شده داخل هر رویداد یا شی دیگه ای کد بنویسین که البته این کد نوشتن ، تو هر رویداد و یا اشیاء دیگه ی داخل اون صفه میتونه اتفاق بیفته و بنویسین .
    اول موارد ابتدایی شو بگم که همه تون بلدین


    کد:
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});

    این کد برای ایجاد یه شی تو صفه هست


    کد:
    Page.SetObjectScript("NewObject", "On Click", "");

    این کد بالا هم برای قرار دادن کد و الگوریتم جدید برا شی جدید هست



    و اما اصل مطلب که نحوه ی قرار دادن و نوشتن الگوریتم جدید برا یه شی و یا رویداد جدید هست :

    البته با تابع بالا فقط میشه کد و الگوریتم جدید رو برای رویدادهای یه شی جدید ست کرد نه برای رویدادهای اصلی مثل On Preload و ... . برای اینکار باید تابع زیر کار کرد و چون نحوه ی استفاده شون عین هم هست ، فقط تابع بالا رو میگم


    کد:
    Application.SetPageScript("Page1", "On Show", "");

    کار خیلی خاصی نداره . اول بزارین با یه مثال همینطور توضیح بدم . تو تابع زیر


    کد:
    ABC = "Dialog.Message(\"Notice\", \"Salam\", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);


    اول خط 2 و 3 رو میگم و بعد خط اول . تو خط دوم ، تو پارامتر اول اش ، نوع شی ای که میخاین ایجاد کنین رو مشخص میکنین (مثلا شی تون از نوع دکمه یا Button هست یا از نوع تصویر یا Image و یا هر چیز دیگه ای ...) و تو پارامتر دوم ، اسم شی ای که میخاین ایجاد کنین رو میدین و تو خط سوم هم که خصوصیاتش رو (مثلا شکل شی تون از کجا لود شه و اندازه و X و Y و فونت و ... اش چی باشه که تو فیلم هم توضیح داده شد و تو راهنماشم هست)
    تو خط سوم ، پارامتر اولش ، باید اسم اون شی ای رو که میخایم کد جدید بهش بدیم ، رو مینویسیم (چون میخایم به شی ای که جدید ساختیم کد اضافه کنیم و اسمشم NewObject گزاشته بودیم تو تابع قبل ، پس اینجا هم همون اسمشو میزاریم) و تو پارامتر دوم اش ، اسم دقیق رویداد اون شی رو مینویسین . مثل خود رویداد ای که تو شی ها نوشته هه مثلا تو اغلب شی ها برا کلیک چپ اسم رویدادش نوشته هست "On Click" که حرف اول شون بزرگ هست و بین هر دو کلمه اش فاصله داره . شما هم باید دقیق همینجوری بنویسین بدون حتی یه کاراکتر کم یا زیاد اونم با توجه به حروف بزرگ و کوچیک وگرنه ....16 یا مثلا برا کلیک راست باید بنویسین "On Right-Click" و ... که اسم همه ی رویداد ها نوشته هه تو شی خودش و میتونین از اونجا تقلید کنین . تو پارامتر یا همون آرگومان سوم که مهم ترین و ساده ترین بحث هست ، باید کد و یا اسم متغییری رو که شامل کد و توابع اون هم فقط بصورت رشته هست رو بدین که تو این پارامتر ، متغییر ABC که تو خط اول تعریف شد ، نوشته شد


    حالا خط اول :
    برای دادن کد جدید ، خوب چون بصورت رشته ای باید باشه پس اول کد مورد نظر رو بین دابل کوتیشن میزارین . ینی اول بسم ا... مینویسین :


    کد:
    ABC = "    Dialog.Message("Notice", "Salam", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);    "

    الان این کد خط بالا کامل نیست ها . کامل اون بالایی هست . این اول بسم ا... اش هه 4 . بد تو هر پارامتر همین خط ، هر جا رشته بصورت مستقیم بود (نه اینکه متغییر ای باشه که رشته رو برگردونه . فقط رشته ی مستقیم داخل اش بکار رفته باشه مثل پارامتر اول و دوم خط بالا) قبل علامت " اش یه علامت \ میزارین ینی پارامتر اول که "Notice" هست را باید این جوری بنویسین "\Notice"\ و همینطور پارامتر رو دوم رو باید بنویسین "\Salam"\ پس میشه :


    کد:
    ABC = "Dialog.Message(\"Notice\", \"Salam\", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"

    دومین نکته اینکه اگه تو همین متغییر ABC خط بالا ، بخاین دو تابع یا کد بنویسین ، نمیتونین با زدن اینتر ، بعدی رو تو خط پایین تر اش بنویسین . باید با علامت ; هر خط رو از هم جدا کنین

    مثال دیگه :


    کد:
    ABC = "Text1 = \"Salam Khobi?\";Text2 = \"Koja Bodi?\";Dialog.Message(\"Notice\", Text1..Text2, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);

    خوب Salam Khobi? چون رشته هست ، پس باید قبل " یه دونه \ بزاریم و همینطور برا Koja Bodi? که میشه اونی که تو بالا و خط اول دیدین و چون 3 تا دستور جدا ینی Text1 و Text2 و تابع Dialog.Message داریم ، پس بین همه شون باید نشونه ی جدا کننده ینی ; بزاریم اما تو پارامتر دوم تابع Dialog.Message درسته که متغییرها از نوع رشته هستن اما چون رشته بصورت مستقیم نیومده و متغییر اومده فقط ، پس علامت "\ نمیخاد و مثل حالت عادی تعریف میکنیم ینی Text1..Text2 که در ادامه ی همدیگه نوشته میشن که میدونین

    سومین و مهم ترین نکته اینکه تو این دستور جدیدی که خودتون دارین مینویسین (در اینجا همون متغییر ABC منظورمه) ، اگه رشته تون به هر نحوی داخلش علامت \ داشت ، نمیتونین داخل این متغییر ABC تعریف کنین و باید خارج از این متغییر ABC تعریف کنین و داخل دستوراتش اون متغییر رو فراخونی کنین مثلا اگه بخاین تو همون دستور خط اول بالا بنویسین :


    کد:
    ABC = "Text1 = \"Salam Khobi?\n\";Text2 = \"Koja Bodi?\";Dialog.Message(\"Notice\", Text1..Text2, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"

    چون بعد از Salam Khobi? علامت n\ اومد و چون علامت \ داره همراه خودش ، موقه اجرا ارور میده . برا این کار ینی هر رشته ای که بین اش علامت \ داره (بجز علامتی که گفته شد برا خود رشته تو اول و آخرش میزارین) ، باید قبل این متغییر که در اینجا ABC هه تعریف و تو توابع این متغییر ABC فراخونی کرد ینی نوشت :


    کد:
    Text1 = "Salam Khobi?\n\n"
    Text2 = "Koja Bodi?"
    ABC = "Dialog.Message(\"Notice\", Text1..Text2, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);

    چون متغییر Text1 و Text2 بیرون از این رشته ی متغییر ABC تعریف شد پس بصورت عادی باید نوشته شه ینی لازم نیست قبل علامت " علامت \ گزاشت و چون تو ته خط اول اش n\n\ گزاشته شد ، پس ملومه که بین شون به اندازه ی 2 خط فاصله میافته

    تذکر : این نکته ی سوم که درباره ی علامت \ بود ، برا مسیر فایل یا فولدر هم صدق میکنه چون بین هر درایو یا پوشه ، این علامت رو که جدا کننده هست داره پس برا این نوع دستورات هم باید قبل از رشته ی دستورات جدید (در اینجا ABC) تعریف کرد و داخل توابع این رشته (در اینجا ABC) ، فراخونی کرد مثل مثال بالا و یا پایین :


    کد:
    Path = "narm afzar\\Anti viruse\\Avast Internet Security 8.0.1497.376 Final\\Avast Internet Security.jpg"
    ABC = "File.Open(Path, \"\", SW_SHOWNORMAL);"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);

    تو پارامتر دوم خط دوم هم که چون رشته ی خالی هست و قبل هر علامت " باید علامت \ گزاشته شه ، پس میشه همونی که تو بالا دیدین ینی "\"\

    این هم مثال آخر از چند دستوری که اول فایل مورد نظر اجرا و بعد پیام میده :


    کد:
    Path = "narm afzar\\Anti viruse\\Avast Internet Security 8.0.1497.376 Final\\Avast Internet Security.jpg"
    ABC = "File.Open(Path, \"\", SW_SHOWNORMAL);Text1 = \"Salam Khobi?\";Text2 = \"Koja Bodi?\";Dialog.Message(\"Notice\", Text1..Text2, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);
    و یا همین طور میتونین یه الگوریتم تعریف کنین که مثلا حلقه داشته باشه . مثلا همین کد بالا رو 3 بار با حلقه ی for تکرار کنه :


    کد:
    Path = "narm afzar\\Anti viruse\\Avast Internet Security 8.0.1497.376 Final\\Avast Internet Security.jpg"
    ABC = "File.Open(Path, \"\", SW_SHOWNORMAL);Text1 = \"Salam Khobi?\";Text2 = \"Koja Bodi?\";for i=1,3 do Dialog.Message(\"Notice\", Text1..Text2, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); end"
    Page.CreateObject(OBJECT_BUTTON, "NewObject", {ButtonFile="button\\button 3.btn",Text="ABC",X=0,Y=0});
    Page.SetObjectScript("NewObject", "On Click", ABC);
    




    از آقا محسن هم خیلی ممنونم که تو این علایم کمکم کرد و ان شاء ا... که براتون مفید بوده باشه


  5. #25
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    یه نکته ی مهم و اشتباه برانگیز برای کد دادن به رویداد (رویداد اشیاء) :
    اول از همه بگم این تیکه رو مدیون اوستا محسن ام و واقعا ازش ممنونم (ما را از هچل نجات داد )
    نگا کنین ، به قول اوستا محسن ، یه پن شیش تا شی Button بزارین تو صفه با نام پیش فرض خودش و یه شی دیگه (مثلا Lable) هم بزارین . تو این لیبل هه ، این کد رو بدین :

    کد:
    Page.SetObjectScript("Button"..j, "On Click", "Dialog.Message(\"\", j);");
    j=j+1

    تو گلوبال فانکشن یا استارت آپ هم این رو :

    کد:
    j=1
    الان تصورتون چیه؟ دکمه ی 1 و 2 و 3 رو بزنین ، برا هر کدوم چه پیامی میده؟
    تصور اغلب افرادی که مثل من ان اینه که وقتی دکمه ی Button1 رو بزنن ، پیام 1 رو میده (چون j در اون لحظه ، 1 هه) و وقتی دکمه ی دوم رو میزنین ، پیام 2 و ... رو بده
    اما این گونه نیست چگونه هست؟
    این جوریه که j مقدار اولیه اش تو دهلیز (نه بطن ) ورود ، 1 بود . بعد خط اول بالا که گفت تو Button..j ، کدی رو ست کن که مقدار j رو بنویسه. ینی چی تا اینجا؟ خوب مقدار j رو جایگزین کنین دیگه ینی اینکه تو Button1 ، پیام ای رو ست کن که عنوان اش ، 1 باشه (البته تا اینجا) . بعد تو خط بعد ، یکی به مقدار j میافزایه خوب حالا دوباره کد بالا رو ترجمه کنین با این مقدار جدید . چی میشه؟ تا اینجاش که رو Button1 ست کنه که انجام شد . هیچ چی . ینی نه اینکه مقدار j برابر 2 شد و از اون طرف هم گفتیم کد رو تو Button..j ست کن ، پس تو Button2 ست میکنه . این که ملومه اون خط کد اجرا شد و برای Button1 کد رو ست کرد و رف پی کارش . وقتی برا دکمه ی 2 ست میکنه کد رو که شما دوباره رو شی Lable کلیک کنین یا اینکه مثلا بعد خط دوم ، کد ست کردن رو مینوشتین. پس تا اینجا مشکلی ندارین؟ خوب حالا ادامه ی نگا رو میندازیم . پس تا اینجا j برابر 2 شد و تو دکمه ی اول یا Button1 این کد رو ست میکنه که وقتی کلیک کنیم ، مقدار j رو نشون میده که برابر چی هست؟ برابر 2
    پس اولین باری که کلیک کنین تو دکمه ی اول ، پیام 2 رو میده نه 1 رو . چون قبل اجرا شدن دومین بار کد

    کد:
    Page.SetObjectScript("Button"..j, "On Click", "Dialog.Message(\"\", j);");

    ، مقدار j یکی اضافه شد . حالا دومین بار وقتی کلیک کنین چی میشه؟ تو Button2 (چون j فعلا 2 هه) ، میگه j رو نمایش بده که قبل از اینکه کد خط بالا اجرا بشه ، مقدار j یکی اضافه میشه پس وقتی دکمه ی 1 یا 2 رو کلیک کنین که دستور داده شد مقدار j رو نشون بده تو هر دوشون ، هر کدوم رو کلیک کنین ، مقدار 3 پیام داده میشه و الی آخر
    پس برای رفع این مشکل و موقعی که میخایم یه کد رو ست کنیم که مثلا تو Button1 ، یه پیام خاص رو ست کنه و تو Button2 ، یه پیام خاص دیگه رو ، باید متغییری که نام میبریم ، شماره ی همون دکمه باشه و هر بار ، با اجرای هر دفه کلیک روی دکمه ، اول اون متغییر (تو اینجا مقدار j) اور رایت بشه یا اگه مقدار آرایه ی خاص رو هم میخایم که ست کنه ، به شماره ی همون عضوی که میخایم ، اوررایت اش کنیم اون متغییر رو
    یادتون باشه این مقداری که برای اندیس تو آرایه ها اوررایت میشه ، هر بار یکی بهش اضافه میشه ممولا و کلا مقدارش یکی بیشتر یا برابر آخرین عضو آرایه هست اما تو این حالت ما میخایم هر دکمه ای که اجرا میکنیم ، اون متغییر (تو اینجا مقدار j) قبلش برابر شماره ی اون عضوی بشه که ما میخایم
    انگار در وهله ی اول ، فقط از همین طریق ، میشه این کار رو انجام دادخوب برا اوررایت کردن هم باید شماره ی اون دکمه رو بگیریم که انگار راهی جز زمان اجرای خود کد ینی داخل پارامتر یا آرگومان سوم ورودی بالا نداریم. پس باید این جوری بنویسین :


    کد:
    Code = "ButtonName = Button.GetProperties(this);ButtonNumber = String.Mid(ButtonName.ObjectName, 7, -1); Dialog.Message(\"\", ButtonNumber );"
    Page.SetObjectScript("Button"..j, "On Click", Code);
    j=j+1

    که موقه اجرای کد ، تو هر دکمه ، اول شماره ی دکمه رو میگیره بعد اونو مینویسه و مستقل از متغییر j عمل میکنه و هر بار هم این متغییر اوررایت و مقدارشم برابر مقدار همون شماره ی دکمه میشه (ینی رو دکمه ی 5 کلیک کنین ، این متغییر 5 میشه و بدش رو دکمه ی 9 کلیک کنین ، بدش 9 میشه) و مثل متغییر j نیست که هر بار فقط یه دونه اضافه بشه
    از آقا محسنم بازم تشکر میکنم که بابتش وقت گزاشت


  6. #26
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    فارسی نوشتن موقه اضافه کردن متن یه شی :

    باید در این مواقع ، FontScript=1 یا همون برابر DEFAULT_CHARSET بگیرین تا فارسی شه بجا زمانی که خودتون تو قسمت Script فونت ، گزینه ی Arabic رو انتخاب میکردین




    باشد گلپسر بارزان 3

  7. #27
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    یه تجربه ی خنده دار از خودمو بگم که شاید اگه کسی مثّ من فک کرد ، وقتش گرفته نشه : 4
    اگه خدای نکرده یه وقت مثّ من فک کردین که سمت چپ مساوی یا همون کنار یه متغییر یا آرایه (محتوای متغییر یا مقدار بازگشتی اش که سمت راست مساوی هه منظورم نیست ها) میتونین در ادامه اش یه متغییر دیگه تعریف کنین (که علامت اش دو تا نقطه ی پی در پی هه ینی .. ) یا یک نقطه مثل فرا آرایه یا حتی آرایه ، برا اینکه به قول اوستا حامد بتونین آرایه چن بعدی داشته باشین ، یه متغییر رو از قبل تعریف کنین و با گزاشتن یه نقطه همونو کنار آرایه یا فرا آرایه تعریف کنین ، باید بگم که اشتبا میکردین مثّ من و بر روی آب ، آونگ میکوبیدین 4
    البته اوستا حامد نگفت با چه زبان هایی میشه آرایه ی چن بعدی نوشت 4
    مثال های اشتباه :


    کد:
    ABC = {}
    ABC.ThisPage = {}
    ThisPage = Application.GetCurrentPage();
    ABC.ThisPage[1] = "Har Meghdari"

    یا


    کد:
    ABC = "A Name"
    Motaghaier = "Abc"
    ABC..Motaghaier = 5

    تو اولی مثال ، ارور شاید نده اما چیزی که شما میخاین هم درس نمیشه و عملیات اچ3 عقیم میمونه 4
    پس متوجه شدین دیگر؟ حداقل حداقل اش اینه که جز قضیه ی آرایه و فرا آرایه که نقطه میتونین بزارین در سمت چپ تساوی ، برا این قضیه که گفته شد ، اصلا شدنی نیست و نمیتونین بزارین و همینطور ، فرا آرایه و کلا هر آرایه ای تو لوا ابعاد نداره ینی نمیشه مثل داخل اندیس اش که میشه متغییر تعریف کرد ، در سمت چپ تساوی ، نمیشه یه متغییر دیگه تعریف کرد و خودتونو و وقت تونو بخاطر این کار ، به فنا ندین . ما به فنا دادیم و نتیجه ای حاصل نشد 4 اگه این کار شدنی بود ، یه قدرت و آسونی چن برابری تو لوا برا تعریف آرایه ممکن بود

  8. #28
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    ماژول ها :

    بازم باید از دو جهت ازت تشکر کنم که سید . هم واسه یاد دادن این مطلب و هم این الگوریتم (ای کاش بیشتر درباره اش توضیح میدادی . فراخونی اش چجوریه؟ من فراخونی کردم array[1][1] اما جواب نداد)
    کلا من اگه لیست این تاپیک که وابسته به آموزشای بچه هاست رو لیست کنم ، یه فرا آرایه ی دویست بعدی درمیاد چند بعدش تا حالا شدن گلپسران حامد و جواد و محاسنین (دو تا محسن ) و سید انجمن مون و اوستا محمد (اون یکی منظورمه) . ماشاء ا... یه انجمن هست ، دویست تا دو به دو اسم دارن . سجادین انجمن =3 تا . محسنین انجمن = 2 تا . محمدین انجمن = 2 تا فقط حامدین و جوادین موند
    چقد صوبت میکنم؟ بریم سر اسب مطلب



    ماژول ها ، ادغام آرایه یا فرا آرایه با توابع هست که هر عضو آرایه یا فراآرایه ، میتونه یه تابع داشته باشه . برای ساختنش همونطور که از تعریفش معلومه ، باید اول یه فراآرایه تعریف کرد و بعد میتونیم هر عضوشو یه تابع بنویسیم (مختاریم) و ملومه که توابع تعریف شده ، هر کدومشون باید یه مقدار رو برگردونن تا موقع فراخونی ، یه حاصل و نتیجه ای بدست بیاد . برای فراخونی شم فقط کافیه اسم عضو اون فراآرایه رو که یه تابع هست نام برد و چون اون یک تابع هست و ممکنه ورودی یا آرگومان داشته باشه پس باید مثل فراخونی بقیه ی توابع ، آرگومانش هم تعریف کرد.
    هدف از ماژول هم تقریبا میشه گفت مثل فراآرایه هست ، برای نظم بیشتر و نوشتن تعداد خطوط کمتر و راحت تره
    ماژول تنها جاییه که یه تابع میتونه اسم نداشته باشه (البته با اسم رو تست نکردم) و نحوه ی فراخونی اش که گفته شد
    پس هر جا آرایه رو همراه تابع دیدین ، ممکنه ماژول باشه

    یه مثال بزنم (البته همه ی اینا از مثالای بچه هاست و اینم از سید اهل انجمن ، گلپسر محمد همونطور که گفته بودم):

    کد:
    Math =  {
    add = function (a,b)
       return(a+b)
    end,
    sub = function (a,b)
       return(a-b)
    end,
    mul = function (a,b)
       return(a*b)
    end,
    div = function (a,b)
       return(a/b)
    end
    Math تو مثال بالا ، فرا آرایه ایه که 4 تا عضو داره و هر عضوشم یه تابع هست.
    درسته که فرا آرایه ، چند بعدی نیست اما چون داخلش متغییر داره پس آرایه ی معمولی هم نیست و فرا آرایه هست که عضو هاش اینا هستن تو مثال بالا :

    کد:
    Math={add,sub,mul,div}
    که ملومم بود و هر کدوم شون هم که برابر تابع گرفته شدن ینی هر کدوم از عضو هاش ، یه تابع ان. برای فراخونی شم کافیه مثل فراخونی فرا آرایه عمل کنین (تو پست صفه اول که همرا متغییر بودن) ینی اسم اصلی فرا آرایه رو بنویسین و یه نقطه بزارین و اسم عضو داخلی شو (یا میشه گفت اون متغییر) رو بنویسین . مثلا برا فراخونی تابعی که کار جمع رو برعهده داره ، اسم اون فرا آرایه رو این جوری فراخونی کنین :

    کد:
    Math.add
    که ملوم بود .
    ** یه نکته اینه که چون تو ماژول ها ، تابع ها میتونن اسم نداشته باشن ، پس باید همونطور که گفته شد ، اسم اون عضو فرا آرایه رو مثل بالا فراخونی کرد و در این حالت هم بهتره برا هر تابع یه مقدار خاص رو برگردونین که میدونین از کلمه ی return باید استفاده شه (حالا بازم مختارین . میتونین بسته به حالات مختلف ، توابع مختلفی بنویسین که اصلا مقداری رو هم برنگردونه)
    موفق و پیروز و سربلند باشید

  9. #29
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    دانلود نرم افزار ++Spy یا WinSpy 17 برای گرفتن Class Name پنجره ها :

    اول بگم که این پست ، مربوط میشه به کار با کتابخونه ها و توابع های داخل فایلای dll که نه تو فیلم گفته شد و نه تو کتاب و نه تو پست های این تاپیک . فعلا اگه هیچ آشنایی ای با این توابع نداشته باشین ، امکان داره قسمت هایی از این پست یا کار کردن کامل با این نرم افزار رو متوجه نشین . ان شاء ا... تو فیلم آموزش این سری (قسمت 28 به بعد که ان شاء ا... قراره امسال تابستون ساخته بشه ، یه توضیحاتی که حداقل بتونین در سطح معمولی با این توابع کار کنین ، داده میشه)

    همونطور که میدونین ، خیلی از توابع API به ورودی (پارامتر) هایی مثل Windows Handel و Class Name نیاز دارن . ویندوز هندل که هر بار تو هر دفه باز و بسته کردن یه پنجره ، عوض میشه . چیزی که ثابت هه همیشه و مهمه ، Class Name اون پنجره هه . برا فهمیدن این پارامتر میتونین از نرم افزار ++Spy که مایکروسافت درست کرد ، متوجه شین .

    برا کار باهاش ، بعد از اجرای این نرم افزار ، سمت چپ بالای این نرم افزار ، یه آیکون شبیه مگسک و هدف گیر تفنگ 4 میبینین . این آیکون رو بکشین و تو ویندوزی که میخاین اطلاعات شو بدست بیارین ، رها کنین . دیگه همه چی ملومه بدش دیگه . آیتمی بنام Class Name ملوم میشه . برای تغییر دادن ویژگی یه پنجره ی خاص ، باید هندل شو بدست بیارین که تو ورودی اش برا بدست آوردن هندل ، اول Class Name رو میخاد که اطلاعات شو با اون نرم افزار بدست میارین و بهش میدین . (مثلا برا تغییر ویژگی تسکبار یا پنجره های دیگه مثل Explorer.exe ، با تابع FindWindowA میتونین با دادن پارامتر اول (Class Name) که ثابت هم هست ، که مثلا برا تسک بار Shell_TrayWnd هست ، هندل شو بدست بیارین و تغییرات تونو با توابع دیگه انجام بدین)


    این نرم افزار ++Spy رو از اینجا دانلود کنین

  10. #30
    عضو سایت
    این کاربر شعاری برای خود انتخاب نکرده است
    تاریخ عضویت
    Nov 2014
    نوشته ها
    38
    تشکر تشکر کرده 
    14
    تشکر تشکر شده 
    15
    تشکر شده در
    5 پست
    قدرت امتیاز دهی
    19
    Array

    پیش فرض پاسخ : فیلم آموزش کامل زبان برنامه نویسی Lua و 8 Autoplay Media Studio + آموزشهای تکمیلی

    دانلود نرم افزار Dll Export Viewer 1.6 برای گرفتن اسم تابع های داخل فایل های کتابخانه (dll) :

    اولین کار برای استفاده از هر فایل کتابخونه ای ، فهمیدن اسم اون تابع ی داخل کتابخونه یا dll هست . با این نرم افزار ، میتونین اسم تابع رو بدست بیارین .



    دانلود نرم افزار نسخه ی 32 بیت

    دانلود نرم افزار نسخه ی 64 بیت

صفحه 3 از 4 نخستنخست 1234 آخرینآخرین

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

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

http://www.worldup.ir/