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

نام تاپیک: چگونه با اکتیوکسها مانند یک تابع رفتار کنم؟

  1. #1
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    3

    چگونه با اکتیوکسها مانند یک تابع رفتار کنم؟

    چگونه میتوانم از یک فایل او-سی-ایکس (نظیر مبدلهای تاریخ‌‌)،مانند یک تابع پابلیک استفاده کنم،نه به عنوان یک کنترل قرار گرفته روی یک فرم.البته آقای نصیری در سایتشان سورس چنین ماجولی را در فایل فارسی دیت.پی دی اف اراپه کرده اند،ولی متاسفانه به دلیل وجود دو اشکال در قسمت تبدیل شمسی به میلادی ماجول،غیر قابل استفاده است.اول اینکه سالهای کبیسه را نمیشناسد،دوم اینکه هنگام دریافت تاریخ نا معتبر،ارور نمیدهد و میخواهد آنرا هم به میلادی برگرداند(مانند33/12/81).امیدوارم این ایرادات را بر طرف نمایند،یا کسی پیدا شود که با پاسخ به این سوال،مشکلم را حل کند.متشکرم.[/code][/b]

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    نه خیر! آن فایل کاملا هم درست عمل می کند و من تست کرده ام! فقط باید فرمت ورودی به آن را درست داد. که یک مثال کوچک هم در پایین صفحه آن هست. اگر با آن کارت راه نیافتاد (!) که باید بیفتد! در قسمت کلکسیون های فارسی نویسی دو تابع دیگر برای تبدیل تاریخ وجود دارد که بسیار مفید هستند.

    در مورد ocx ها هم فرقی نمی کند. باید یک ریفرنس از آنها ایجاد کنی و سپس مانند active-x dll با آنها برخورد نموده و متغیر جدید را به این صورت ویژه ایجاد کنی.

  3. #3
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    3
    نقل قول نوشته شده توسط Vahid_Nasiri
    نه خیر! آن فایل کاملا هم درست عمل می کند و من تست کرده ام! فقط باید فرمت ورودی به آن را درست داد. که یک مثال کوچک هم در پایین صفحه آن هست. اگر با آن کارت راه نیافتاد (!) که باید بیفتد! در قسمت کلکسیون های فارسی نویسی دو تابع دیگر برای تبدیل تاریخ وجود دارد که بسیار مفید هستند.

    در مورد ocx ها هم فرقی نمی کند. باید یک ریفرنس از آنها ایجاد کنی و سپس مانند active-x dll با آنها برخورد نموده و متغیر جدید را به این صورت ویژه ایجاد
    کنی.
    جناب آقای نصیری،از پاسخ شما بسیار متشکرم.
    لطف کنید فوت و فن انگلیسی نویسی در این فوروم را به ما هم یاد دهید !

    نخست اینکه اگر کاربر تاریخی مانند 28/12/1379(سال کبیسه) را به این تابع بدهد،2001/19/03 را دریافت میکند در حالیکه باید 2001/18/03 را بگیرد.
    دوم اینکه تاریخهای نامعتبری مانند 32/12/1379(و الی آخر) را هم به میلادی تبدیل میکند که برای ثبت در جداول بسیار خطرناک است.اگر بتوانید یک ارور قابل پیگیری به این تاریخها نسبت دهید بسیار کاراتر خواهد بود.

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

    باز هم از شما تشکر میکنم.
    [list=][/list]

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    در مورد انگلیسی نویسی کافی است که دکمه scroll lock را روشن کنید.

    در مورد یک کد ساده برای استفاده از اکتیو ایکس ها فقط به صورت ریفرنس در منوی ریفرنس در قسمت منوی پروژه :
    می خواهیم از microsoft script control که یک اکتیو ایکس است استفاده کنیم. نام فایل آن msscript.ocx است.
    از منوی پورژه در قسمت ریفرنس این آیتم را انتخاب کنید.
    سپس از کد زیر برای استفاده از این اکتیو ایکس بدون قرار دادن آن روی فرم می توان استفاده کرد


    Private Sub Form_Load()

    Dim xx As New ScriptControl
    xx.Language = "vbscript"

    ' Create the function.
    Dim strFunction As String
    strFunction = _
    "Function ReturnThis(x, y)" & vbCrLf & _
    " ReturnThis = x * y" & vbCrLf & _
    "End Function"
    ' Add the code, then run the function.
    xx.AddCode strFunction
    MsgBox xx.Run("ReturnThis", 3, 25)

    End Sub


  5. #5
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    3
    آقای نصیری عزیز،
    از کمک شما بسیار متشکرم.سعی میکنم از این روش جهت بکارگیری فایلهایی
    نظیر Convertor.ocx یا ConvertDate.ocx در یک Standard Module به صورت Public استفاده کنم.امیدوارم اینبار دیگر به مشکلی بر نخورم.
    با سپاس.

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

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