نحوه ی کد و الگوریتم جدید دادن به یک رویداد (رویداد اشیاء) :
ینی چی؟ ینی اینکه مثلا شی ای وجود نداشته باشه و شما اون شی رو بوجود بیارین و بعد برا رویدادهای مختلف اون شی (مثلا کلیک چپ و ...) اش کد بنویسین و یا حتی برا پاک کردن و تعویض کد نوشته شده داخل هر رویداد یا شی دیگه ای کد بنویسین که البته این کد نوشتن ، تو هر رویداد و یا اشیاء دیگه ی داخل اون صفه میتونه اتفاق بیفته و بنویسین .
اول موارد ابتدایی شو بگم که همه تون بلدین
کد:
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" که حرف اول شون بزرگ هست و بین هر دو کلمه اش فاصله داره . شما هم باید دقیق همینجوری بنویسین بدون حتی یه کاراکتر کم یا زیاد اونم با توجه به حروف بزرگ و کوچیک وگرنه .... یا مثلا برا کلیک راست باید بنویسین "On Right-Click" و ... که اسم همه ی رویداد ها نوشته هه تو شی خودش و میتونین از اونجا تقلید کنین . تو پارامتر یا همون آرگومان سوم که مهم ترین و ساده ترین بحث هست ، باید کد و یا اسم متغییری رو که شامل کد و توابع اون هم فقط بصورت رشته هست رو بدین که تو این پارامتر ، متغییر ABC که تو خط اول تعریف شد ، نوشته شد
حالا خط اول :
برای دادن کد جدید ، خوب چون بصورت رشته ای باید باشه پس اول کد مورد نظر رو بین دابل کوتیشن میزارین . ینی اول بسم ا... مینویسین :
کد:
ABC = " Dialog.Message("Notice", "Salam", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); "
الان این کد خط بالا کامل نیست ها . کامل اون بالایی هست . این اول بسم ا... اش هه . بد تو هر پارامتر همین خط ، هر جا رشته بصورت مستقیم بود (نه اینکه متغییر ای باشه که رشته رو برگردونه . فقط رشته ی مستقیم داخل اش بکار رفته باشه مثل پارامتر اول و دوم خط بالا) قبل علامت " اش یه علامت \ میزارین ینی پارامتر اول که "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);
کد:
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);
علاقه مندی ها (بوک مارک ها)