تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: ترفندي براي گرفتن تصوير يك Chart ( نمودار )

  1. #1
    پروفشنال
    تاريخ عضويت
    Jul 2006
    محل سكونت
    گیلان _ رشت
    پست ها
    635

    پيش فرض ترفندي براي گرفتن تصوير يك Chart ( نمودار )

    سلام ...
    يكي از مشكلاتي كه بعضا در نرم افزارهاي بانك اطلاعاتي و نرم افزارهايي كه به نوعي با نمودار ( chart ) سر و كار دارند ، چاپ نمودار است ...
    يك راه ساده براي گرفتن تصوير يك chart ( يا هر كنترل گرافيكي ديگر ) :
    فكر كنم همه دوستان در آرشيوشون ، كد مربوط به گرفتن عكس از صفحه نمايش رو داشته باشن ، اين تابع با گرفتن DC مربوط به صفحه نمايش ( يا همون Screen ) ، اقدام به گرفتن تصوير از اون ميكنه ، كد اين رويه به صورت زير هست :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا با كمي تغيير ، يعني با دادن Handle مربوط به Chart به تابع GetDC در كد بالا ، ميشه به جاي DC صفحه نمايش ، DC مربوط به Chart رو در اختيار داشت ، به كد زير دقت كنيد :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در كد بالا از DC مربوط به Chart عكس گرفته ميشه ، باقي كدها هم براي ذخيره عكس هستند ...
    با اين ترفند ، تصوير Chart رو ميشه استخراج كرد و بعد اون رو به صورت جداگونه چاپ كرد ، البته براي چاپ راه هاي بهتري هم هست ولي در برنامه هايي كه فقط نياز به تصوير هست ، ميشه از اين راه استفاده كرد ...

    از لينك زير ميتونيد برنامه نمونه اي كه اين كار رو انجام ميده رو دانلود كنيد :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موفق باشيد ...

  2. این کاربر از Mahmood_N بخاطر این مطلب مفید تشکر کرده است


  3. #2
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2008
    پست ها
    161

    پيش فرض

    وقتی از بلوک try-finally برای ایجاد و آزاد سازی خودکار یک شی استفاده می کنید، Create را خارج از بولک try-finally بنویسید. اگر حین Create یک شی مشکلی پیش بیاد، Destroy بصورت خودکار اجرای میشه. اگر هم بعد از ایجاد شی مشکلی پیش بیاد، چون کد بعد از Create بالافاصله در داخل try-finally قرار گرفته، Free همیشه فراخوانی میشه و Memory Leak پیش نمیاد.
    در کد شما اگه به فرض مثال مشکلی در اجرای تابع rect پیش بیاد، MyBitmap و Canvas اصلا Create نمیشند، بلکه کنترل برنامه مستقیما میره روی بلوک finally و چون اصلا شی ایی ایجاد نشده، اجرای متد Free باعث ایجاد Access Violation میشه.

  4. #3
    پروفشنال
    تاريخ عضويت
    Jul 2006
    محل سكونت
    گیلان _ رشت
    پست ها
    635

    پيش فرض

    وقتی از بلوک try-finally برای ایجاد و آزاد سازی خودکار یک شی استفاده می کنید، Create را خارج از بولک try-finally بنویسید. اگر حین Create یک شی مشکلی پیش بیاد، Destroy بصورت خودکار اجرای میشه. اگر هم بعد از ایجاد شی مشکلی پیش بیاد، چون کد بعد از Create بالافاصله در داخل try-finally قرار گرفته، Free همیشه فراخوانی میشه و Memory Leak پیش نمیاد.
    در کد شما اگه به فرض مثال مشکلی در اجرای تابع rect پیش بیاد، MyBitmap و Canvas اصلا Create نمیشند، بلکه کنترل برنامه مستقیما میره روی بلوک finally و چون اصلا شی ایی ایجاد نشده، اجرای متد Free باعث ایجاد Access Violation میشه.
    درسته ، حق با شماست ...

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •