آموزش قدم به قدم آپادانا

شروع موضوع توسط Silver PC ‏1 ژوئن 2010 در انجمن نرم افزار Apadana

  1. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 20

    : GetClipboard​
    فرم کلی دستور
    کد (Text):
    GetClipboard ( )
    : ReadFile​
    فرم کلی دستور
    کد (Text):
    ReadFile ( Path:String )
    : Time12​
    فرم کلی دستور
    کد (Text):
    Time12 ( )
    : Time24​
    فرم کلی دستور
    کد (Text):
    Time24 ( )
    : Date​
    فرم کلی دستور
    کد (Text):
    Date ( )
    : ShamsiDate​
    فرم کلی دستور
    کد (Text):
    ShamsiDate ( )
    : WeekDay​
    فرم کلی دستور
    کد (Text):
    WeekDay ( )
    : Month​
    فرم کلی دستور
    کد (Text):
    Month ( )
    : DecToHex​
    فرم کلی دستور
    کد (Text):
    DecToHex ( Decimal Value:Integer )
    : DecToBin​
    فرم کلی دستور
    کد (Text):
    DecToBin ( Decimal Value:Integer )
    : DecToOct​
    فرم کلی دستور
    کد (Text):
    DecToOct ( Decimal Value:Integer )
    : OctToBin​
    فرم کلی دستور
    کد (Text):
    OctToBin ( Octal Value:Integer )
    : OctToHex​
    فرم کلی دستور
    کد (Text):
    OctToHex ( Octal Value:Integer )
    : BinToOct​
    فرم کلی دستور
    کد (Text):
    BinToOct ( Binary Value:Integer )
    : BinToHex​
    فرم کلی دستور
    کد (Text):
    BinToHex ( Binary Value:Integer )
    : HexToBin​
    فرم کلی دستور
    کد (Text):
    HexToBin ( Hexadecimal Value:Integer )

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏12 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  2. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 21

    : HexToOct​
    فرم کلی دستور
    کد (Text):
    HexToOct ( Hexadecimal Value:Integer )
    : ReadByte​
    فرم کلی دستور
    کد (Text):
    ReadByte (Path:String;Byte Index:String)
    : RegReadString​
    فرم کلی دستور
    کد (Text):
    RegReadString (Name:String)
    : INIReadString​
    فرم کلی دستور
    کد (Text):
    INIReadString (Section:String;Name:String)
    : GetEXEData​
    فرم کلی دستور
    کد (Text):
    GetExeData ( Exe File:String )
    : FlashGetVar​
    فرم کلی دستور
    کد (Text):
    FlashGetVar (Object Name:String;Variable Name:String)

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏12 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  3. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 22

    : IF Clause​
    بعضی مواقع شما میخواهید یک دستور را به صورت شرطی اجرا کنید.در آپادانا برای این کار از دستور IF استفاده می کنیم !

    فرم کلی این دستور به صورت زیر می باشد :
    کد (Text):
    IF ( [Clause] ) THEN
    .
    .
    ELSE
    .
    .
    END
     
    اگر شما نمیخواهید فقط در صورت 1 شرط دستور اتفاق بیفتند یعنی 2 یا بیشتر به مثال زیر که برای 3 شرط است توجه کنید
    کد (Text):
    IF ( [Clause1] ) & ( [Clause2] ) & ( [Clause3] ) THEN
    {True commands!}
    .
    ELSE
    {False commands!}
    .
    END
     
    یا نمونه دیگر
    کد (Text):
    IF ( [Clause1] ) | ( [Clause2] ) THEN
    {True commands!}
    .
    ELSE
    {False commands!}
    .
    END
     
    --
    : Interger/Boolean​
    مثال :
    کد (Text):
    if (#myint<>10) then
    #myint=#myint+1
    if (#myint=5) then
      msg("Now 5 times")
    end
    if (#myint=>6) then
      msg("Executed "+#myint+" times!")
    end
    else
    msg("You aren't able to execute this action anymore!")
    end
     
    : String​
    مثال :
    کد (Text):
    if ($edit1="mypasscode") then
    msg("Yeah! Right password!")
    else
    msg("Sorry! Invalid password")
    end
     

    برای توضیحات بیشتر به این تاپیک مراجعه کنید : اینجا

    ادامه دارد ... !
     
    آخرین ویرایش: ‏21 آگوست 2010
    نوشته شده توسط Silver PC در ‏12 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  4. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 23

    : IF Clause​
    بعضی مواقع شما میخواهید یک دستور را به صورت شرطی اجرا کنید.در آپادانا برای این کار از دستور IF استفاده می کنیم !

    فرم کلی این دستور به صورت زیر می باشد :
    کد (Text):
    IF ( [Clause] ) THEN
    .
    .
    ELSE
    .
    .
    END
     
    اگر شما نمیخواهید فقط در صورت 1 شرط دستور اتفاق بیفتند یعنی 2 یا بیشتر به مثال زیر که برای 3 شرط است توجه کنید
    کد (Text):
    IF ( [Clause1] ) & ( [Clause2] ) & ( [Clause3] ) THEN
    {True commands!}
    .
    ELSE
    {False commands!}
    .
    END
     
    یا نمونه دیگر
    کد (Text):
    IF ( [Clause1] ) | ( [Clause2] ) THEN
    {True commands!}
    .
    ELSE
    {False commands!}
    .
    END
     
    --
    : Interger/Boolen​
    مثال :
    کد (Text):
    if (#myint<>10) then
    #myint=#myint+1
    if (#myint=5) then
      msg("Now 5 times")
    end
    if (#myint=>6) then
      msg("Executed "+#myint+" times!")
    end
    else
    msg("You aren't able to execute this action anymore!")
    end
     
    : String​
    مثال :
    کد (Text):
    if ($edit1="mypasscode") then
    msg("Yeah! Right password!")
    else
    msg("Sorry! Invalid password")
    end
     

    برای توضیحات بیشتر به این تاپیک مراجعه کنید : اینجا

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏12 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  5. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 24

    : For Cycle​
    بعضی مواقع شما میخواهید که یک دستور چندین بار اجرا شود که در آپادانا باید از حلقه ها استفاده کنید
    فرم کلی دستور :
    کد (Text):
    FOR ( #[Integer Variable Name]=[Start Value] , [End Value] ) STEP [Real Number(Default=1)]
    .
    .
    END
     
    مثال :
    کد (Text):
    For (#i=1,10)
    Msg("I'm a message box! I'm the number "+#i+" displayed.")
    End
     
    مثال دیگر :
    کد (Text):
    For (#i=0.1,1) step 0.1
    Msg("I'm a message box! I'm the number "+#i+" displayed.")
    End
     

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏12 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  6. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 25

    Advanced Development​

    : Dynamic Paths​

    2 نوع راه وجود دارد که شما میتوانید از آنها استفاده کنید :
    : FixedPath​

    این یک راه است که همیشه فقط روی کامپیوتر شما کار می کند.بنابراین این یک راه مفید است برای آزمایش برنامه و هنگامی که میخواهید برنامه خود را بسازید
    : Dynamic Path​

    این یک راه دیگر است که روی هر کامپیوتری میتوانید استفاده کنید.وقتی از این روش استفاده میکنید استفاده از روش قبلی ممکن نیست !
    : Source Dir ​

    برمیگردد به پوشه ای که برنامه در آن قرار دارد.برای مثال اگر شما برنامه خود را در آدرس
    کد (Text):
    D:\MyProject\MyApp.exe
    کمپایل کنید نتیجه
    کد (Text):
    D:\MyProject\
    خواهد بود
    : Source Drive​

    برمیگردد به درایوی که برنامه در آن قرار دارد.برای مثال اگر شما برنامه خود را در آدرس
    کد (Text):
    D:\MyProject\MyApp.exe
    کمپایل کنید نتیجه
    کد (Text):
    D:/
    خواهد بود
    : Windows Dir​

    برمیگردد به پوشه ای که ویندوز در آن نصب است.برای مثال اگر ویندوز در درایو سی نصب باشد نتیجه
    کد (Text):
    C:/Windows/
    خواهد بود
    : System32 Dir​

    برمیگردد به پوشه system32 . برای مثال اگر ویندوز در درایو c نصب باشد نتیجه
    کد (Text):
    C:\Windows\system32\
    خواهد بود
    : Temp Dir​

    برمیگردد به پوشه temp . برای مثال
    کد (Text):
    C:\DOCUME~1\Nick\LOCALS~1\Temp\
    : Embedded Dir

    برمیگردد به پوشه پیشفرضی که فایلهای جاسازی شده در برنامه در آن قرار دارند.برای مثال
    کد (Text):
    C:\DOCUME~1\Javid\LOCALS~1\Temp\ANTEMP\
    توجه داسته باشید که فقط بعد از کمپایل برنامه میتوانید این ادرس را بدست اورید
    : USB Input​

    برمیگردد به درایو های usb . برای مثال
    کد (Text):
    G:/
    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏13 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  7. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 26

    : MultiThreading​

    برنامه های ویندوز بر پایه Thread ها هستند . وقتی یک برنامه را اجرا می کنید کدهای برنامه برپایه Thread ها لود میشوند
    همه برنامه ها دست کم یک رشته دارند که آنها را اجرا کنند
    Issues​

    آپادانا تمامی ویژگی های خوب MultiThreading را داراست
    در این ورژن شما نمیتوانید یک شی RunTime بسازید موقعی که کد بر پایه رشته هاست
    Thread Priority
    همه رشته ها دارای اولویت هستند.فرمانهای رشته های ویندوز بر پایه اولویت آنها اجرا میشوند
    --
    MultiThreading In Apadana​

    برای ساخت یک برنامه چندریسمانی در آپادانا اول شما نیاز به ساخت یک رشته دارید که بر پایه آن باشد
    سپس شما با استفاده از نام تابع ها میتوانید از آنها استفاده کنید
    Create Thread​

    در تولبار بر روی دکمه Threads کلیک کنید سپس در پنجره باز شد بر روی دکمه Create a New Thread کلیک کنید و شماره آنرا به خاطر بسپارید
    Delet Thread​

    در تولبار بر روی دکمه Thread کلیک کنید و در پنجره باز شده رشته مورد نظر را انتخاب و دکمه Delete را بزنید
    Thread Setting​

    در تولبار بر روی دکمه Thread کلیک کنید سپس در پنجره بار شده رشته موردنظر را انتخاب کنید و در قسمت priority تنظیم دلخواه را انجام دهید
    Using Thread​

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

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏13 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  8. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 27

    Custom Functions​

    در آپادانا شما میتوانید تابع دلخواه خود را ساخته و دستور دلخواه نیر به آن بدهید و به آسانی از آن استفاده کنید
    باید توجه داشته باشید که اگز از یک تابع د ر برنامه استفاد می کنید و آنرا حذف کنید برنامه هنگام کمپایل ارور میدهد ( با خطا مواجه میشود )

    Create a Function​

    برای ساختن یک تابع میتوانید :
    در تولبار بر روی دکمه Functions and Procedures کلیک کنید سپس در پنجره باز شده بر روی دکمه Add Function کلیک کنید.یک نام برای آن انتخاب کنید و رشته مورد نظر را هم از کمبوباکس مقابل آن انتخاب کنید . شما میتوانید کلیدهای میانبر نیز برای آنها تعریف کنید که در پایین همین پنجره وجود دارد

    Delete a Function​

    در تولبار بر روی دکمه Functions and Procedures کلیک کنید سپس در پنجره باز شده تابع موردنظر را انتخاب کرده و بر روی دکمه Delete کلیک کنید

    Edit a Function​

    برای ویرایش یک تابع میتوانید :
    در تولبار بر روی دکمه Functios and Procedures کلیک کنید سپس تابع مورد نظر خود را انتخاب کنید و بر روی آن دابل کلیک نمایید یا بر روی دکمه Edit Function در پایین پنجره کلیک کنید

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏13 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  9. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 28

    بعضی قابلیت ها و ویژگی ها را برنامه ندارد و شما با استفاده از کدهای برنامه قادر به انجام آنها نیستید.شما میتوانید از پلاگین ها استفاده کنید که کار شما را راحت میکنند و بسیاری از مشکلات شما را حل میکنند.آپادانا فقط قادر به پشتیبانی از پلاگین های نرم افزار مالتی مدیا بیلدر می باشد که بیشتر شما این نرم افزار را با نام MMB میشناسید
    فرمت این فایل ها DLL می باشد و شما براحتی در آپادانا میتوانید از آنها استفاده کنید
    شما باید از شی MMBPlugIn در برنامه استفاده کنید

    تصور کنید که ما یک پلاگین به نام "MMBPlugin1" داریم !

    برای اجرای دستور پلاگین MMB مثل تابع " PlugInRun " در MMB

    کد (Text):
    obj("MMBPlugin1").Run("??")
    برای ارسال مقدار مثل تابع " PlugInSet " در MMB

    کد (Text):
    obj("MMBPlugin1").Set("??")
    برای بدست آوردن مقدار بازگشتی مثل تابع " PlugInGet " در MMB

    کد (Text):
    obj("MMBPlugin1").Get($myvalue)
    نتیجه در MyValue$ ذخیره خواهد شد . اگر مقدار بازگشتی عدد صحیح است شما میتوانید :

    کد (Text):
    obj("MMBPlugin1").Get(#myvalue)
    موفق باشید !

    ادامه دارد ... !
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏13 ژوئن 2010
    araku، ashkan_mmb، pcj و 3 نفر دیگر از این ارسال تشکر کرده اند.
  10. Silver PC

    Silver PC Well-Known Member

    ارسال‌ها:
    2,547
    تشکر شده:
    3,583
    امتیاز دستاورد:
    113
    سری 29

    File Downloading​

    در آپادانا برای دانلود یک فایل از اینترنت 2 راه برای شما وجود دارد :
    استفاده از دستور Download بدون استفاده از شی Browser
    استفاده از دستور Download با استفاده از شی Browser
    مثال :
    کد (Text):
    Obj("Browser1").Download("source","dest")
    کمپایل نهایی پروژه
    خود پرويه هنگام اجرا شدن در محید آپادانا یک فایل اگزه از خودش را تولید می کند اما این فایل :
    روی همه سیستم ها کار نمیکند
    از امنیت خوبی برخوردار نمی باشد
    فایلهای جاسازی شده در برنامه قابل استفاده نمیباشند
    پس باید پروژه خود را بصورت مجزا کمپایل کنیم !
    برای کمپایل پروژه خود میتوانید
    از منوی Project گزینه Publish را انتخاب کنید
    در تولبار بر روی دکمه Publish کلیک کنید
    از کلید های ترکیبی SHIFT + F9 کیبورد استفاده کنید
    بعد از انتخاب یکی از راههای پنجره مربوط به کمپایل ظاهر میشود
    حال به تشریح جزییات صفحه کمپایل میپردازیم
    : General Setting​

    : Path​

    محلی که پروژه شما در آن کمپایل میشود
    : Compress generated file​

    اگر شما این گزینه را فعال کنید آپادانا فایلها را با UPX فشرده میکند
    : Generate Autorun.inf​

    با فعال کردن تیک این گزینه یک فایل Autorun.inf نیز کنار پروژه تولید میشود که یکی از کاربردهای آن این است که بعد از رایت پروژه بر روی سی دی فایل پروژه ما خود به خود اجرا میشود
    Icon​

    در این قسمت یک آیکن برای پروژه خود انتخاب می کنیم
    Version Info​

    شما باید این فیلدها را پرکنید . اینها توضیحاتی برای برنامه شما میباشند
    Embedded Files​

    این قسمت برای تنظیمات فایلهای جاسازی شده در برنامه است
    --
    حال که همه تنظیمات راانجام داده ایم بر روی کلید OK کلیک می کنیم و محل ذخیره پروژه را انتخاب می کنیم سپس پیغامی ظاهر میشود که Yes را انتخاب می کنیم . حال پروژه ما کمپایل شده و بصورت یک فایل EXE در پوشه ای که انتخاب کردیم وجود دارد
     
    آخرین ویرایش: ‏18 آگوست 2010
    نوشته شده توسط Silver PC در ‏13 ژوئن 2010
    araku، saeidh46، sara 3d و 6 نفر دیگر از این ارسال تشکر کرده اند.
  11. HamedSoftware

    HamedSoftware New Member

    ارسال‌ها:
    2
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    سلام ممنون بابت این آموزش

    میخواستم بدونم حتما برای اینکه از یک فرم بخواهیم با استفاده از دکمه بریم به فرم بعدی باید برنامه نویسی بشه ؟؟خط دستورش چیه ممنون

     
    نوشته شده توسط HamedSoftware در ‏25 ژانویه 2013
  12. JavidX

    JavidX Apadana Developer

    ارسال‌ها:
    613
    تشکر شده:
    1,730
    امتیاز دستاورد:
    93
    سلام

    فقط این رو توی قسمت کد بنویسید تا به صفحه ی بعد برید:
    کد (Text):

    NextPage
     
    موفق باشید
     
    نوشته شده توسط JavidX در ‏26 ژانویه 2013
    HamedSoftware و +Mohammad+ از این پست تشکر کرده اند.
  13. HamedSoftware

    HamedSoftware New Member

    ارسال‌ها:
    2
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    lممنون
    فقط میشه یک توضیحی در مورد خروجی آخر و ساخت یک دی وی دی هم بدید؟؟

    مثلا میشه تمامی کارها رو به صورت یک فایل Iso خروجی گرفت؟؟
     
    نوشته شده توسط HamedSoftware در ‏30 ژانویه 2013
  14. +Mohammad+

    +Mohammad+ Well-Known Member

    ارسال‌ها:
    727
    تشکر شده:
    754
    امتیاز دستاورد:
    93
    نسخه ی موجود چنین قدرتی رو نداره که به صورت فایل iso خروجی بگیرید
    خروجی به صورت exe ساخته میشه
    شاید نسخه های بعدی چنین قابلیتی داشته باشن
    موفق باشید
     
    نوشته شده توسط +Mohammad+ در ‏30 ژانویه 2013
    HamedSoftware و JavidX از این پست تشکر کرده اند.
  15. NAVID-DIN

    NAVID-DIN New Member

    ارسال‌ها:
    9
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    دوست عزيز سلام
    مطالبتون خيلي مفيده مرسي، لطفا اگه ميشه توضيح بدين كه چه جوري فيلد جستجو هم بسازيم
    بازم ممنون
     
    نوشته شده توسط NAVID-DIN در ‏13 آوریل 2013
    JavidX از این پست تشکر کرده است.
  16. JavidX

    JavidX Apadana Developer

    ارسال‌ها:
    613
    تشکر شده:
    1,730
    امتیاز دستاورد:
    93
    سلام.
    فیلد جستجو در چه چیزی؟
     
    نوشته شده توسط JavidX در ‏13 آوریل 2013
  17. NAVID-DIN

    NAVID-DIN New Member

    ارسال‌ها:
    9
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    سلام
    من با آپادانا یه برنامه نوشتم شبیه به دفتر تلفن که واسه هر فرد یک فرم جدا گانه ساختم حالا میخوام یه فیلد بسازم که اسم هر کدوم رو داخل فیلد نوشتم و دکمه جستجو رو زدم فرم مورد نظرمو نمایش بده
     
    نوشته شده توسط NAVID-DIN در ‏14 آوریل 2013
  18. JavidX

    JavidX Apadana Developer

    ارسال‌ها:
    613
    تشکر شده:
    1,730
    امتیاز دستاورد:
    93
    سلام
    تا ندونیم از چه سیستمی استفاده کردید و اطلاعات چطوری ذخیره شده نمیتونم کمکی بکنم!
     
    نوشته شده توسط JavidX در ‏16 آوریل 2013
  19. NAVID-DIN

    NAVID-DIN New Member

    ارسال‌ها:
    9
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    سلام دوست عزيز
    اگه بخوام چنين چيزي بسازم چي ؟
    untitled.JPG
    تو يه فرم دو تا شي دارم يه تكس باكس و يه ليست
    خودم از طريق برنامه قبلا يه سري اسم وارد ليست كردم حالا ميخوام وقتي تو تكس باكس اسم مورد نظرم رو تايپ كردم سلكت شه و وقتي روش كليك كردم فرم مورد نظرم باز شه .
    مرسي
     
    نوشته شده توسط NAVID-DIN در ‏16 آوریل 2013
  20. +Mohammad+

    +Mohammad+ Well-Known Member

    ارسال‌ها:
    727
    تشکر شده:
    754
    امتیاز دستاورد:
    93
    خب توی مثالای خود نرم افزار توی پوشه ی Samples موجود در شاخه ی نصب ، یک مثال کامل در مورد کار با دیتابیس هست که جستجو هم به همین صورت داره ... یه نگاه بهش بندازید..

    ایام به کام - موفق باشید
     
    نوشته شده توسط +Mohammad+ در ‏16 آوریل 2013
    JavidX از این پست تشکر کرده است.

به اشتراک بگذارید