mbshareat
جمعه 10 تیر 1390, 10:13 صبح
سلام و خدا قوت:قلب:
من یه BitMap دارم که در یک فرم فرعی ازش برای چرک نویس استفاده می کنم.
می خوام هنگامی که از برنامه خارج میشم حافظه مربوطه Free بشه.
من در رویداد OnShow بیت مپ رو تعریف میکنم و در Close حافظه مربوط به بیت مپ رو آزاد میکنم.
قبلا در Create فرم فرعی که در ابتدای برنامه قابل رؤیت نیست این کار رو می کردم و در Close همون فرم بیت مپ رو آزاد می کردم اما این کار باعث Access Violation میشد، چون ممکن بود فرم حاوی تعرف بیت مپ در طول برنامه بسته و دوباره باز بشه که در این صورت بیت مپ نیاز به تعریف مجدد داشت.
اما حالا ظاهرا مشکلی پیش نمیاد اما ممکن است بعد از اینکه فرمم بیت مپ رو در OnShow تعریف میکنه کاربر پنجره رو Minimize کنه و بیت مپ دوباره قبل از آزاد سازی تعریف بشه(به نظرم OnShow همینجا باید کار کنه!؟). آیا این اتفاق مشکل سازه؟:متفکر:
آیا با توجه به اینکه در برنامه فرمی که همیشه قابل مشاهده باشد، ندارم و همه فرمهایم ممکن است باز یا بسته شوند، راهی هست که تنها یک بار بیت مپ رو تعریف و یک بار Free کنم.:لبخندساده:
من یه BitMap دارم که در یک فرم فرعی ازش برای چرک نویس استفاده می کنم.
می خوام هنگامی که از برنامه خارج میشم حافظه مربوطه Free بشه.
من در رویداد OnShow بیت مپ رو تعریف میکنم و در Close حافظه مربوط به بیت مپ رو آزاد میکنم.
قبلا در Create فرم فرعی که در ابتدای برنامه قابل رؤیت نیست این کار رو می کردم و در Close همون فرم بیت مپ رو آزاد می کردم اما این کار باعث Access Violation میشد، چون ممکن بود فرم حاوی تعرف بیت مپ در طول برنامه بسته و دوباره باز بشه که در این صورت بیت مپ نیاز به تعریف مجدد داشت.
اما حالا ظاهرا مشکلی پیش نمیاد اما ممکن است بعد از اینکه فرمم بیت مپ رو در OnShow تعریف میکنه کاربر پنجره رو Minimize کنه و بیت مپ دوباره قبل از آزاد سازی تعریف بشه(به نظرم OnShow همینجا باید کار کنه!؟). آیا این اتفاق مشکل سازه؟:متفکر:
آیا با توجه به اینکه در برنامه فرمی که همیشه قابل مشاهده باشد، ندارم و همه فرمهایم ممکن است باز یا بسته شوند، راهی هست که تنها یک بار بیت مپ رو تعریف و یک بار Free کنم.:لبخندساده: