آموزش اسکریپت نویسی

سلام بچه ها من اين تايپيک رو فقط براي اسکريپت نويسي درست کردم از همه ي دوستان حرفه اي خواهش ميکنم که من رو ياري کنن.!
من اينجا تمام فرمان هايي که جزء قسمت Script Wizard نيستند ميزارم تا هر يک از بچه ها براي هر يک از اونا يک مثال بزارن با توضيح کامل راجع به اون. تا مشکل تمامي دوستانمون در اسکريپت نويسي حل بشه و چيزايي که خودمون هم بلد نيستيم همين جا ياد بگيريم و مشکلمون حل بشه.همه ي بچه هاي اين فروم بروبچ پايه اي هستن و ميدونم که کمک ميکنن تا اين تايپيک مرجع کاملي از اسکريپت نويسي به زبان فارسي بشه پس از همين حالا شروع ميکنيم به اميد خدا.

ليست فرامين

Publication

MouseX()

MouseY()

MouseLButton()

MouseRButton()

MouseMButton()

PubWidth()

PubHeight()

PubX()

PubY()

ClientWidth()

ClientHeight()

IsMinimized()
----------------------------------------------------
Object

IsVisible()

ObjectX()

ObjectY()

ObjectWidth()

ObjectHeight()

CurrentObject()

ImageScrollX()

ImageScrollY()

ImageWidth()

ImageHeight()

GetImageOpacity()

GetVideoParam()

ScrollBarSize()

MXCOL

MXROW
--------------------------------------------
System

WinVer()

ScreenColors()

UsingWinNT()

GetMemory()

ScreenWidth()

ScreenHeight()

WorkAreaWidth()

WorkAreaHeight()

ProcType()

PrecFreq()
-----------------------------------------
Strings

VAL(string$)

CHAR(number)

CHR(number)

ORD(char$)

LEN(string$)

LOW(string$)

UPP(string$)

POS(char$,string$)

NOL(path$)

StrCopy(string$,position,count)

StrDel(string$,position,count)

StrIns(string$,insert$,position)

StrGet(string$,position)

StrSet(string$,position,char$)

StrOfChar(char$,count)

StrChange(string$,replacethis$,hereby$)

StrToFile(filename$,string$,append,linefeed)

StrToLine(filename$,string$,toline,overwrite)

StrFromFile(filename$,fromline,numberoflines)

ExtractExt(path$)

ExtractDir(path$)

ExtractName(path$)

ExtractDrive(path$)
-------------------------------------------------------------------
Numbers

ABS(number)

INT(number)

RND(maxvalue)
----------------------------------------------------------------
اينم ليست فرمانها هر کس ميتونه اگه بلد هست راجع به هر چند تا که دوست داره داخل همين تايپيک توضيح بده و يک مثال هم بزنه لطفا مثالاتون واضح باشه.

مثلا:RND(maxvalue)
فرمان راندوم يک فرمان است که شما يک عدد بهش ميدين و به صورت تصادفي يک عدد که بين صفر تا اون عددي که شما بهش دادين رو به شما ميده.
مثل فرمان زير.
fire-wizard=RND(5)
If (fire-wizard=2) Then
Page("2")
End

If (fire-wizard=3) Then
Exit()

End

If (fire-wizard=5) Then

LastPage()
End

در اينجا اگر راندوم به شما عدد 2 را داد برنامه به صفحه ي دوم ميرود
اگر عدد 3 را داد از برنامه خارج ميشود
اگر عدد 5 را داد به صفحه ي قبل بر ميگردد


بچه ها يا علي ببينم چکار ميکنين.
 

Little-Demon

Well-Known Member
عالیه . . . این بخش یه انگیزه خوب برای یادگیری افراد و بالا بردن اطلاعاتشون در سطح یه Script نویس برای MMB میشه . . .

امیدوارم این تاپیک مثل بعضی از قبلی ها دست و پا شکسته نشه و مدیر محترم یه گیره کوچولو به اون بزنن.
 

mojtaba-saleh

Active Member
MouseX() مختصات موس در روی محور عرضها

MouseY() مختصات موس در روی محور طولها

MouseLButton() کلید چپ موس

MouseRButton() کلید راست موس

MouseMButton() کلید میانی

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

mojtaba-saleh

Active Member
StrToFile(filename$,string$,append,linefeed)
ذخیره یک متن در یک فایل
مثالی که برای این کد گذاشتم رو برای یک برنامه حساب داری ساختم که نیمه کار موند اگه به کدهاش توجه کنید حتما اطلاعات مفیدی بدست میارید
 

پیوست ها

  • StrToLine.rar
    109.7 کیلوبایت · بازدیدها: 625
آخرین ویرایش:
من فقط منتظر بودم یکی شروع کنه تا من هم شروع کنم اینا هم برای شما.

WinVer()
ورژن ویندوز را نشان می دهد .

UsingWinNT()
در قالب یک عدد (Integer) نشان می دهد که آیا کاربر از Windows NT استفاده می کند یا خیر .

GetMemory()
مقدار حافظه RAM را نشان می دهد .

ProcFreq()
سرعت CPU را به MHz نشان می دهد .

ProcType()
نام شرکت سازنده و واحد پردازنده مرکزی(central processor unit) یا CPU را بر می گرداند . توجه داشته باشید که ProcType() باید به صورت String تعریف شود . اما چون مغیر های بالا Integer بودند نیازی به تعریف کردن ان به شکل String نیست

WorkAreaWidth ()
مختص X فضای کار را بر می گرداند . (مثلا اگر TaskBar در سمت چپ Desktop باشد ، Taskbar از Screen Width کم می شود)

ScreenHeight ()
مختص Y نمایشگر را برمی گرداند


ScreenWidth ()
مختص X نمایشگر را برمی گرداند .

********************************

IsVisible()

اول label شی مورد نظرتان را در داخل پرانتز ها تایپ کنید . یرای مقدار خروجی آن 3 حالت پیش می آید : اعداد 1 ، 0 و -1

-1 یعنی : Object ی با این نام وجود ندارد .

0 یعنی : وجود دارد امَا ........... مخفی است!

1 یعنی : وجود دارد مخفی هم نیست !


PubX()

فاصله پنجره تا سمت چپ Desktop را نشان می دهد . (مختص X)

PubY()

فاصله پنجره تا بالای Desktop را نشان می دهد . (مختص Y)

ObjectX()

فاصله یک Object تا سمت چپ پنجره را نشان می دهد . در داخل پرانتز باید Label شي مورد نظرتان را بنویسید .

ObjectY()

فاصله يک Object تا بالای پنجره را نشان می دهد . در داخل پرانتز باید Label شي مورد نظرتان را بنویسید .

ObjectWidth()

طول یک Object را بر می گرداند . در داخل پرانتز باید Label شي مورد نظرتان را بنویسید .

ObjectHeight ()

عرض یک Object را بر می گرداند .

---------------------------------------------
بچه ها حالا یکی در مورد قسمت Strings کاملا توضیح بده.
 
ABS(number)

این کد قدر مطلق یک عدد را نشان می دهد (عدد -321):

A=ABS(-321)

Message("","A")

************************************

INT(number)

این کد جزء صحیح یک عدد را نشان می دهد . مثلا اگر عدد ورودی 14.51 باشد عدد خروجی 14 خواهد بود .

A=INT(14.51)

Message("","A")
 

mojtaba-saleh

Active Member
Power-game جان این CBK ها رو من با اجازتون اضافه میکنم
Audio CBK
این کد ها را جایگزین اسم Text کنید
CBK_Total زمان کل آهنگ
CBK_TotalSec زمان کل به ثانیه
CBK_Time دقیقه های در حال پخش
CBK_TimeSec ثانیه های در حال پخش
CBK_MP3Name نام آهنگ
CBK_MP3Type نوع فایل mp3
CBK_MP3Bit کیفیت آهنگ
CBK_MP3Freq فرکانس آهنگ
CBK_Channels نوع صدا (مونو یا استریو)
CBK_ID3Song نام وارد شده در اطلاعات آهنگ
CBK_ID3Artist نام خواننده آهنگ ( در صورت وارد شدن در اطلاعات آهنگ)
CBK_ID3Album نام آلبوم آهنگ ( در صورت وارد شدن در اطلاعات آهنگ)
CBK_ID3Year سال تنظیم آهنگ ( در صورت وارد شدن در اطلاعات آهنگ)

.............

این هم یک نمونه برای تمام CBK ها که توی پوشه Multimedia Builder497\Samples\495_examples وجود داره با این حال من اتک میکنم
 

پیوست ها

  • all_cbk.rar
    22.1 کیلوبایت · بازدیدها: 331
آخرین ویرایش:
همین جور اگه ادامه بدیم بهتون قول میدم کامل میشه از شما هم تشکر میکنم بابت اضافه کردن Cbk ها هرچی دوست دارین اضافه کنین.
 

silvercover

کاربر متخصص
Plug-In چيست؟
اكثر برنامه هاي امروزي اين قابليت را فراهم مي كنند تا كاربر بتواند از Plug-Inها استفاده نمايد. براي مدت هاي مديدي اين امكان فراهم نبود تا يك كاربر بتواند تعدادي توابع اضافه بر سازمان برنامه در اختيار داشته باشد و مي بايست تا نسخه بعدي برنامه صبر مي كرد. اما پس از چندي اشخاصي اين قاعده را شكستند و اين آرزوي كاربران را برآورده ساختند. پس ازآن با تدوين استانداردها برنامهنويسان و توسعه دهندگان اجازه يافتند تا براساس ضوابطي توابع دلخواه خود را در صورت امكان به بدنه برنامه اصلي اضاف نمايند. به همين دليل اين امكانات و توابع اضافه نام plug-in را به خود گرفت. امروزه ميتوانيم ردپاي plug-In را در اكثر برنامهها از قبيل برنامههاي طراحي و ويرايشي و … ببينيم. اما حال ببينيم plug-In ها دقيقاً چه هستند و چگونه كار ميكند؟

مطمئناً همه ي شما ايستگاههاي فضايي را ديدهايد كه حول زمين در حال چرخش هستيد. حالا تصور كنيد كه MMB ساختار مركزي اين ايستگاه فضايي است. (شكل اول)

البته شايد شكل بالا شبيه يك ايستگاه فضايي كامل نباشد چرا كه سلولهاي خورشيدي ندارد. اما به هر حال با تصوري كه از شكل بالا پيدا كرديد فرض كنيد كه ميتوانيد در اين ايستگاه فضايي به ادامه حيات و فعاليت بپردازيد.
اما پس از مدتي احساس خواهيد كرد كه به امكاناتي اضافه احتياج داريد امكاناتي از قبيل اسباب راحتي و… اما نگران نباشيد اين احساس نياز از قبل پيشبيني شده و تنها كافيست كه وسايل را تهيه و با اتصال آنها به ايستگاه فضايمان را گسترش دهيم. حالا با استفاده از قابليت توسعه توانستيد فضايتان وقدرتان را بهبود بخشيد اما اگر بخواهيم به واقعيت نزديكتر شويم و قدرتمان را در MMB افزايش دهيم دقيقاً بايد چه كنيم؟
لازم نيست نگران باشيد تنها كافيست برنامه MMB و plug-In هاي مورد نظر را در اختيار داشته باشيد.اما حتماً از خود ميپرسيد plug-In هاي MMB چگونه هستند؟ بله plug-In هاي MMB تنها فايلي ساده با پسوند DLL هستند كه امكان دارد در حالت عادي پنهان شده (Hidden) باشند. ( ميتوانيد از قسمت Folder option ويندوز آنها را درصورت مخفي بودن نمايان سازيد. همچنين ميتوانيد در حين اجراي يك برنامه حاوي plug-In، plug-In آن را از شاخه temp ويندوزبيابيد). براي مثال فايلهاي posxy.dll, tweak.dll, misc.dll يكسري از plug-In هاي موجود هستند. اما اين plug-In ها را از كجا بايد تهيه كنيم؟ پاسخ ساده است شما ميتوانيد با استفاده از سايتهاي زير اقدام به تهيه آنها نماييد:

http://www.mmbsamples.com

توجه: ممكن است به مرور زمان و به خاطر مشكلاتي لينكهاي بالا كار نكند بنابراين ميتوانيد از موتورهاي جستجو استفاده نماييد. بسيار خب پس از اينكه plug-In هاي مورد نياز را جمعآوري كرديد وقت استفاده از آنهاست. ابتدا قبل از هركاري بايستي يك پنجره در صفحه پروژه براي plug-inبكشيم تا در ادامه اين پنجره به عنوان نگهدارنده فايل plug-In ما باشد. از منوي Object با انتخاب قسمت plug-In پنجره مورد نظر را ميكشيم .
برخي از plug-In ها هستند كه به صورت بصري عمل ميكنند.به عنوان مثال plug-In هايي كه جلوههايي نظير بارش برف و باران و حركت ستارگان را ايجاد ميكنند. بنابراين اين plug-Inها نياز به پنجرهاي مناسب و قابل ديد دارند، اما دركنار همين plug-In هاي بصري تعداد ديگري plug-In هم هستند كه بصري نيستند و نياز به پنجرهاي بزرگ و قابل ديد ندارند بلكه فقط وجود پنجرهاي كوچك در هر جايي براي آنها كافيست. پس از اينكه پنجره را ايجاد كرديد بر روي آن 2 بار كليك نماييد تا پنجرهاي همانند شكل ظاهر شود. (عكس دوم)

همانند ساير پنجرههاي خصوصيت براي اشياء ديگر گزينههايLock position و Hide عمل مشابهي را انجام ميدهند و label ( برچسب) هم نام شيء Plug-In را مشخص مينمايد كه بايد اين نام را به خاطر بسپاريد. دروسط اين پنجره كادر ورودي هست كه كنار آن دكمهاي قرار گرفته كه توسط اين دكمه كادري تبادلي جهت مسيردهي فايل plug-In ظاهر ميشود. خب پس چرا منتظريد؟! دكمه را فشار دهيد… اگر هيچ plug-In اي را جهت مسير دهي نداريد به زيرشاخه plug-In از پوشه نصب برنامه MMB برويد و در آنجا يك Plug-In بصري به نام Tenblobs.dll راكه همراه برنامه MMB ارائه شده است را خواهيد يافت. بلافاصله پس ازاينكه Plug-In را برگزيديد ، پيغامي مبني براينكه آيا ميخواهيد Plug-In را الحاق نماييد؟ ظاهر ميشود. به آن پاسخ مثبت بدهيد.ديگر احتياجي نيست كه نگران اين فايل پس از اتمام پروژهاتان باشيد زيرا MMB تمام فايلهاي الحاق شده را به همراه فايل نهايي بستهبندي ميكند. پس از الحاق يك Plug-In پنجره خصوصيت به صورت شكل درميآيد. (عكس سوم)

باتوجه به شكل مسير منتهي به فايل Plug-In داراي ماكروي <Embedded> است كه پيشتر درباره اين ماكــــرو بحث كرديم. درزيـــر اين كادرمسـير، قسمتي است كه حـاوي اطلاعاتي از قبيل نام مؤلف Plug-In ،پست الكتريكي ، سايت و … مؤلف ميباشد.
اكنون دكمهي ok را فشار دهيد تا عمل نصب Plug-In تمام شود. در اينجاست كه پس ازيكبار اجراي برنامه احساس ميكنيد كه چيزي كم است،بله درست فهميديد بر اساس ساير Plug-In هاي برنامههاي ديگر شما به اين تصور رسيدهايد. اما اگر Plug-In شما بصري باشد در كادر خصوصيت Plug-In قسمتي در بالا سمت راست كه درشكل نشان داده شده فعال ميشود كه ميتوانيد به آنجا برويد و تنظيمات موجود را تغييردهيد.

اما خصوصيات و كنترل Plug-In هاي غير بصري را چگونه ميتوان در دست گرفت؟ در اينجاست كه فرامين به كمك ما ميآيند. فراميني كه در دل اسكريپتهاي MMB جا خوش كرده اند.اما اجازه دهيد كه ببينيم در پشت پرده چه خبرست؟ همانطور كه گفتيم فايلهاي Plug-In برنامه MMB ،DLL هستند كه DLL مخفف عبارت Dynamic link library ( كتابخانه اتصال پويا ) است به اين معنا كه DLLها مجموعهاي از توابع و فرامين هستند.پس با اين تفاسير ارتباطي پويابين MMB و Plug-In ها برقرار است.اين ارتباط ميتواند به 3 صورت زير باشد:
1- تنظيم متغير در MMB و دريافت متغير عددي توسط Plug-In
2- تنظيم متغير در MMB ودريافت متغير رشتهاي توسط Plug-In
3- اجراي فرماني خاص كه ممكن است اين فرمان خروجي به همراه داشته باشد.
براي استفاده از Plug-In ها بايستي با مفاهيم متغيرها و نحوه استفاده از آنها آشنا باشيد.چنانچه اين گونه نيست از ادامه خواندن اين قسمت تا زمانيكه مفاهيم متغيرها را فراگيريد پرهيز نماييد. خب گذشته از اينها صورت پيشرفتهتر 3 حالت قبل به صورت زيردر ميآيد:
1- تنظيم پارامترها براساس متغيرها ( هميشه لازم نيست)
2- اجراي فرامين Plug-In براساس پارامترها
3- دريافت متغيرهاي خروجي پس از اجراي فرامين ( هميشه اينطور نيست)
3 حالت گفته شده زيربناي درك عملكرد Plug-In ها ميباشند. همانطور كه قبلاً گفته شد Plug-In هاي MMB بر 2 نوع هستند: 1- نوع غيربصري و قابل كنترل توسط فرامين 2- نوع بصري
غالب Plug-In هاي MMB (نزديك به 98%) ازنوع اول هستند كه محدوده فعاليت آنها در قسمت پنجره تعبيه شده است. باقي فعاليتها توسط فرامين داخل Plug-In صورت ميگيرد كه يا منجر به تغيير حالت Plug-In يا ارسال خروجي به متغيرها مي شود. اين نكته حائز اهميت است كه Plug-In هاي ازنوع اول تقريباً مستقل از MMB عمل ميكند و بر ساير اشياء حاضر در پروژه هيچ تاثير مستقيمي اعمال نميكنند. عدم تعامل با ساير اشياء ضعفي براي MMB شناخته ميشود كه شايد در نسخههاي بعدي برطرف گردد.نكتهي ديگري كه در خصوص نوع اول بايد گفت اينست كه نميتوان از يك Plug-In در 2 پنجره استفاده كرد در مفــهومي عامتر نــمي توان آنها را به اشـــتراك گذاشت. راهحل اين نقيصه استفاده از 2 Plug-In مشابه اما با نامهاي مختلف است.
همانطوركه شكل بالا نشان ميدهد دو Plug-In مشابه با نامهاي مختلف داريم كه اين نامها در جاي خود مهم است، چرا كه در ادامه توسط همين نامها و به مدد از فرامين از Plug-In ها استفاده ميكنيم. اما نوع دوم بصري هستند كه قبلاً راجع به آنها صحبت كرديم.شكل زير يك نمونه از PlugInهاي بصري است.

بگذاريد پس از شرح قسمتهاي مهم قبل به جمعبندي مطالبي كه تا كنون آموختيم بپردازيم:
- Plug-In ها همه جا هستند.
- قسمتهايي اضاف بر سازمان هستند.
- هدف Plug-In ها افزايش قابليت برنامههاست.
خب ديگر تئوري بس است.به جاست كه تمرين را شروع كنيم. گفتيم كه تنظيم خصوصيات Plug-In هاي نوع 1 توسط اسكريپت نويسي انجام ميشود. در زبان اسكريپتنويسي MMB، 3 فرمان مرتبط با Plug-In ها وجود دارد كه شما از آنها جهت ايجاد ارتباط بين MMB و Plug-In استفاده ميكنيد. اين فرامين به ترتيب در جدول زير بحث شدهاند.



  • PlugInSet

اين فرمان جهت تنظيم پارامتر براي فرامين Plug-In ميباشد. اين فرمان پارامترها را كه همان متغيرهاي عددي و رشتهاي هستند را به فايل Plug-In ارسال ميكند و Plug-In آنها را ذخيره و بررسي ميكند .هر بار استفاده از اين دستور با يك متغير كه محتوايش تغيير كرده سبب جايگزيني محتوي جديد در فايل Plug-In ميشود.


  • PlugInRun

اين فرمان توابع و فرامين تعبيه شده در فايل Plug-In را براساس پارامترهاي تنظيم شده اجرا ميكند. چنانچه بخواهيد نام فرامين موجود در Plug-In را بدانيد به راهنماي همراه Plug-In مراجعه كنيد. البته هميشه Plug-In ها احتياج به پارامتر ورودي ندارند و يا در حالاتي هيچ مقدار خروجي توليد نميكنند و تنها سبب تغيير حالت Plug-In و انجام ساير فعاليتها ميشود.


  • []PlugInGet

اين فرمان وظيفه دريافت مقدار خروجي كه با استفاده از فرمان PlugInRun توليد شده است را برعهده دارد.پس طبيعتاً اين فرمان پس از دستور PlugInRun استفاده ميشود.


مثال
اكنون 3 فرمان گفته شده را در كنار هم ميآوريم تا بتوانيم از Plug-In استفاده كنيم.
var$ = “text”
PlugInSet(“Plug-In” , “ var$”)
PlugInRun(“Plug-In” , “uppercase”)
PlugInGet(“Plug-In” , “var$”)
Message(“out put is” , “var$”)
در بلوك كد بالا ابتدا محتوي متغير var$ توسط فرمان PlugInSet به Plug-In ارسال ميشود.سپس دستور PlugInRun بر اساس متغير دريافتي دستور مربوطه
(uppercase) را اجرا ميكند ويك خروجي توليد مينمايد. در ادامه دستور PlugInGet مقدار خروجي را دريافت كرده و به MMB انتقال ميدهد.كه درآخر ميتوان از اين مقدار با استفاده از ساير فرامين سود جست. حالت گفته شده گونهاي بود كه Plug-In خروجي توليد كرد اما حالتي پديد ميآيد كه هيچ خروجي توليد نميشود،يعني اينكه احتياجي به استفاده از فرمان PlugInGet نيست.اين حالت براي مثال ممكن است براي مواقعي كه ميخواهيم اندازه يك فونت را تغيير دهيم پديد آيد. چيزهايي كه نياز است ،يكي اندازه نهايي فونت و فرماني جهت اجراي آن است و هيچ نيازي به خروجي نميباشد.اين گونه از ارتباط همانند مثال زير ميباشد.
مثال:
fontsize= 16
PlugInSet(“Plug-In” , “ fontsize”)
PlugInRun(“Plug-In” ,”Set fonts size”)
توجه كنيد كه فعلاً تمام اين Plug-In ها فرضي و مجازي هستند.
ممكن است گونههاي مختلفي در استفاده از فرامين MMB براي ارتباط با Plug-In ها پديد آيد و اين بستگي به نوع فرمان Plug-In دارد كه ميتوان از طريق راهنماي Plug-In آن را مشخص ساخت.
بگذاريد چون صحبت درباره راهنماي Plug-In شد،قدري راجع به آن صحبت كنيم. همانند ساير راهنماها، راهنماي Plug-In ها هم بسته به نياز حاوي تعدادي مثال هستند كه اين مثالها هدف اصلي هر دستور را نشان ميدهد و هميشه نميتوان با كپي و چسابدن آنها از راهنما به ويرايشگر اسكريپت انتظار عملكرد صحيح را از آنها داشت.گاهي اوقات لازم است كه با توجه به خطوط قبلي كد برنامه و براساس نيازمان كد اين مثالها را تغيير دهيم و نهايتاً از آنها استفاده كنيم. نكتهي ديگري را كه بايد يادآور شد اين است كه در غالب راهنماها بر چسب Plug-In ، PlugIn در نظر گرفته ميشود كه چنانچه بخواهيم نام ديگري داشته باشيم بايد در فرامين مرتبط با Plug-In اين برچسبها را تغيير دهيم.
اما در رابطه با حالتهاي به كارگيري 3 دستور قبل صحبت ميكرديم.حالتهاي ديگري هم كه ممكن است پديد آيد به صورت زير است:
الف) استفاده از يك دستور بدون هيچ ورودي و خروجي
ب) استفاده از يك دستور بدون مقدار ورودي
حالت الف ممكن است مواقعي پيش بيايد كه فرمان ما تنها عملي را بايستي انجام دهد براي مثال ويندوز را Shutdown كند.
حالت ب ممكن است مواقعي پيش بيايد كه فرمان Plug-In مستقلاً عمل كرده و مقدار خروجي توليد كند. مثلا هنگامي كه بخواهيم ساعت و تاريخ را دريافت كنيم.اگر پا را فراتر ازاين حالات بگذاريم حالتهاي ديگري به وجود ميآيد كه خود از تركيب چند حالت قبل پديد ميآيد،همانند مثال زير:
بلوك 1
کد:
var$ = “My computer is P4”
PlugInSet(“Plug-In” , “var$”)
PlugInRun(“Plug-In“ , “upper case”)
PlugInGet(“Plug-In” , “text$”)

بلوك 2

کد:
PlugInSet(“Plug-In” , “text$”)
PlugInRun (“Plug-In” , “Show message box”)

در مثال قبل ابتدا رشته در بلوك 1 به حالت بزرگ تبديل شده و به بلوك 2 ارسال ميشود تا در كادر پيغام نشان داده شود.
رابطهاي Plug-In و متغير تنها به يك انتساب ساده ازقبيل var$=myname منتهي نميشود.بلكه گاهي اوقات پيش ميآيد كه اين رشتهها توسط كاراكتري از هم جدا ميشوند مثلاً براي تعيين مقدار رنگ:
color$ = “220,150,105”
اين گونهها بر اساس تعاريفي كه از پيش در Plug-In به وسيلهي مؤلف آن آمده است پردازش و تجزيه ميشود.حالتهاي ديگري از اين قبيل انتسابها هم وجود دارند. مثال:
Regkey $ = ‘software\program\section\keyname’
Flag$ = ‘con|yes no cancel|caption’
كنترل رويداد (Event Handing)
وقايع (Event): اتفاقات و توسعههايي هستند كه در Plug-In رخ ميدهند و به برنامه شما اطلاع داده مي شوند.
كنترل كننده رويداد: شيءهاي اسكريپت MMB هستند كه همانند نوعي شبكه وقايع را دريافت ميكند.
همانطور كه قبلاً خوانديد بعضي از فرامين مقادير خروجي توليد مي كنند اما برخي از Plug-In ها بلافاصله پس از دستور PlugInRun مقدار خروجي توليد نمي كنند. وظايفي از قبيل پردازش دادهها ، وقفههاي طولاني، رويدادهاي دورهاي و … سبب بروز چنين حالتي مي شوند. خب در اين صورت سؤال اينجاست كه Plug-In برنامه MMB چگونه در اين حالت با MMB به تعامل ميپردازد؟ جواب اينجاست كه خود Plug-In فشردن كليد يا كليدهايي را جهت ارسال اطلاعات به MMB شبيهسازي مي كند.


برگرفته از راهنماي فارسي MMB
 

پیوست ها

  • a.png
    a.png
    3.2 کیلوبایت · بازدیدها: 198
  • b.png
    b.png
    23.6 کیلوبایت · بازدیدها: 230
  • c.png
    c.png
    24.7 کیلوبایت · بازدیدها: 222
بر اساس مشکلاتی که بعضی از بچه ها در حلقه ها دارند من این اموزش رو گذاشتم



LOOP حلقه ها


امروز در ادامه بحث اسكريپ نويسي به بررسي حلقه ها يا Loops ها مي پردازيم كه كاربرد زيادي در mmb دارد. به وسيله حلقه ها ميتوانيد اكشن يا اكشن هايي را به طور مداوم و پشت سر هم تكرار كنيد. حلقه ها در mmb توسط عبارت for صورت ميگيرد. براي نوشتن يك حلقه به طريقه زير عمل مي كنيم:


1- ابتدا فرمان for را مينويسيم ( for )
2- سپس نام متغير عددي را مي نويسيم. ( integer )
3- بعد از گذاشتن علامت = عددي را كه مي خواهيم حلقه با آن شروع شود را مي نويسيم .(1(
4- سپس عبارت to و بعد از آن عددي را كه ميخواهيم حلقه در آن تمام شود را مي نويسيم .( to 15 )
5- سپس اكشن يا فرمان هايي را كه ميخواهيم تكرار شود را مي نويسيم. ( Message )
6- پس از نوشتن عبارت next دوباره نام متغير عددي را كه قبلا انتخاب كرده ايم را مي نويسيم. ( Next integer )
حالا كه با شكل كلي حلقه ها آشنا شديد به مثال زير توجه كنيد.


For integer= 1 To 15
Message("This is your loops","")
Next integer​

در فرمان بالا پيغام براي 15 بار به نمايش در مي آيد. در فرمان حلقه به متغير عددي ، شمارنده يا counter مي گويند كه وظيفه شمارش در بازه اي كه برايش تعيين مي كنيم را دارا مي باشد. حال اين بازه نبايد الزاما از 1 شروع شود بلكه ميتواند از هر عدد ديگري شروع شود. به نمونه زير توجه كنيد.

For Counter= 90 To 100
var$='this is first message box'
Message("","var$")
var$='this is second message box'
Message("","var$")
Next Counter​

در مثال بالا حلقه همانطور كه مي بينيد از 90 شروع به شمارش ميكند و تا 100 ادامه پيدا ميكنيد. در اين بين هر كدام از پيغام هاي خط دوم و چهارم براي 10 بار به نمايش در مي آيد. در مثال بالا نام متغير عددي Counter انتخاب شده است.

شکل کلی انها مانند زیر میباشد.


For integer=1 To 5
فرمان شما
Next integer​

حلقه بی نهایت :
نوع دیگری از حلقه ها وجود دارد که بازه مشخصی ندارند و تا بی نهایت ادامه دارند ، که به آن ها حلقه بی نهایت می گویند. برای نوشتن حلقه بی نهایت از عبارت Infinity
استفاده می کنیم. در کد زیرمی توانید یک نمونه حلقه بی نهایت را مشاهده کنید.

For i=1 To Infinity
Message("MMB Best Learen by Fire-wizard","")
Next i​

در حلقه بی نهایت فرمان شما تا زمانی که پروژه شما در حال اجرا باشد به کار خود ادامه میدهد. در نمونه بالا با اجرای حلقه Message در زمان اجرای پروژه نمایش داده میشود. و تا زمانی که پرژه در حال اجرا است ایست نمیکند

فرمان Refresh() : استفاده از این فرمان در یک حلقه سبب می شود شما در حین اجرای عملیات یک حلقه قادر باشید اسکریپ ها و فرمان های دیگری را نیز اجرا کنید. به نمونه زیر توجه کنید


For check=1 To Infinity
check=check+1
DisplayValue("Text","check")
Refresh()
Next check​

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

فرمان Pause() : این فرمان در حلقه سبب می شود تا حلقه با توقفی که برایش تعیین می کنیم عمل کند. به مثال زیر توجه کنید

For check=1 To Infinity
check=check+1
DisplayValue("Text","check")
Pause("1000")
Next check​

در مثال حلقه بالا ما از مقدار 1000 میلی ثانیه ( 1 ثانیه ) برای فرمان Pause استفاده کرده ایم و این بدان معنی است که حلقه به هنگامیکه به 1000 میلی ثانیه می رسد متوقف می شود و دوباره به اجرای حلقه ادامه میدهد. در نمونه کد بالا با اجرای اسکریپ ، حلقه با فاصله زمانی 1 ثانیه شروع به شمارش می کند.


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

For check=1 To Infinity
check=check+1
DisplayValue("Text","check")
If (check=10) Then
Message("your loop is finished","")
Return()
End
Pause("1000")
Next check
Minimize()​


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


فرمان Break() : در فرمان Return() در صورت برقراری شرط حلقه متوقف می شد ( مثال قبلی ) . اما در صورتی که از فرمان Break() استفاده کنیم حلقه متوقف شده و فرمان بعد از حلقه به کار خود ادامه می دهد. به نمونه زیر توجه کنید.


For check2=1 To Infinity
check2=check2+1
DisplayValue("Text1","check2")
If (check2=10) Then
Message("your loop is finished","")
Break()
End
Pause("500")
Next check2
Minimize()​

در نمونه کد بالا چون از فرمان Break() استفاده شده پس از برقراری شرط حلقه , فرمان های بعد از حلقه که در اینجا Minimiz() می باشد اجرا میشود. نمونه کد بالا را با نمونه کد فرمان Return() مقایسه کنید تا نتیجه را مشاهده کنید
 
توضیحات شما دوستان

بچه ها اگه کسی میتونه به صورت مفهومی راجع به فرامین پایین توضیح لطفا این کا رو انجام بده تا همه استفاده کنن

VAL(string$)

CHAR(number)

CHR(number)

ORD(character$)

LEN(string$)

LOW(string$)

UPP(String$)

POS(SubString$, String$)

NOL(FileName$)

StrCopy(String$, Indx, Count)

StrDel(String$, Indx, Count)

StrIns(SourceStr$, DestStrs$, Indx)

StrGet(String$,Int)

StrSet(String$, Int,C$)

StrOfChar(C$, Int)

StrChange(String$, FromStr$, ToStr$)

StrToFile(FileName$, String$, Append, LineFeed)

StrToLine(FileName$, String$, ToLine, Overwrite)

StrFromFile(FileName$, FromLine, NumOfLines)

ExtractExt(FileName$)

ExtractDir(FileName$)

ExtractName(FileName$)

ExtractDrive(FileName$)

اگر هم کسی بتونه وقت بزاره و یه مثال درست کنه که همه ی فرامین بالا داخلش باشه که دیگه عالی میشه
:) مثل دموی پلاگین ها
 

hossein_mmb

Member
مهمترينهاش :

VAL(string$)
براي تبديل متغير متني به عددي استفاده ميشود - توجه شود كه متغير متني بايد مقدارش يك عدد باشد. مثال :
string$='9999'
val=VAL(string$)


CHAR(num)
براي تبديل متغير عددي به متني است - مثال :
A=20
A$=CHAR(A)


LEN(string$)
طول يك متغير متني رو مشخص ميكند كه برابر با تعداد كاركترهاست. مثال:
A$='hello'
X=LEN(A$)
كه مقدار X در اين مثال 5 خواهد بود.


LOW(string$) : همه حروف يك متغير متني را به صورت حروف كوچك در مياورد.


UPP(String$) : همه حروف يك متغير متني را به حروف بزرگ تبديل ميكند.

ادامه اش رو هم بعدا ميذارم.
 

Little-Demon

Well-Known Member
نگاه کن نگاه کن این جا بوی مرده گرفته ....... خیلی وقته هیچ کی سر نزده بابا ام ام بی هنوز اسکریپت داره به خدا تموم نشده بیاین و دوباره به اینجا یه صفایی بدین پیش کسوتان ؟؟؟!!؟!؟!؟!


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

Little-Demon

Well-Known Member
Command Line ؟ ؟ ؟
من قبلا هم سوال کرده ودم از بچه ها هیچ نگفت حتی مال چی هست؟

اگه یه توضیح کوچولو بدی میرم دنبالش ....اصلا به چه درد میخوره؟
 

جدیدترین ارسال ها

بالا