PDA

View Full Version : static دردلفی



masood2004
پنج شنبه 30 شهریور 1385, 00:23 صبح
با سلام
همونطور که میدونید توی C یه چیزی به نام Static داریم یعنی اگر متغییری Static تعریف شود در مراجعات بعدی مقدارش را حفظ میکند .
این کار در دلفی توسط Const انجام میشود ولی مشکل من این است که میخواهم یک در یک کلاس پدر یک متغییر Static داشته باشم تا همه فرزندان از یک متغییر واحد استفاده کنند.
و مساله اصلی این است که در تعریف کلاس در دلفی کلمه Const رو نمیتونید استفاده کنید.
کسی میدونه تکلیف من چیه؟

ghabil
پنج شنبه 30 شهریور 1385, 03:13 صبح
من متوجه نمیشم شما میخواهید چه کار کنید ! میشه بگید چرا نمیشه از یک پراپرتی ساده برای کاری که میخواهید انجام بدین استفاده کنید؟

اَرژنگ
پنج شنبه 30 شهریور 1385, 04:34 صبح
با سلام
همونطور که میدونید توی C یه چیزی به نام Static داریم یعنی اگر متغییری Static تعریف شود در مراجعات بعدی مقدارش را حفظ میکند .
این کار در دلفی توسط Const انجام میشود ولی مشکل من این است که میخواهم یک در یک کلاس پدر یک متغییر Static داشته باشم تا همه فرزندان از یک متغییر واحد استفاده کنند.
و مساله اصلی این است که در تعریف کلاس در دلفی کلمه Const رو نمیتونید استفاده کنید.
کسی میدونه تکلیف من چیه؟
در دلفی استاتیک وجود نداره، ولی با این کلک میشه شبیه سازیش کرد.
۱. در کلاس پایه (پدر) پروپرتی را مانند پروپتیهایه معمولی تعریف کنید میتونید یک استاتیک به اسمش اضافه کنید که معلوم باشه برایه چه کاری استفاده میشه.
۲. در یونیت کلاس پایه خارج از کلاس در زیره قسمت ایمپلمنت یک وار تعریف کنید ( این تنها روشی که میشه استاتیک مانند داشت در دلفی، نمیدونم دلفی دات نت این مشکل را برطرف کرده یانه )
۳. در گِتِر و سِتِر برایه پروپرتیه کلاس که تعریف کردید از متغیری که در قسمته ۲ تعریف کردید استفاده کنید، یعنی مقدارش را بگیرید و یا عوض کنید.

مشکلی داشتید خبر بدید.

masood2004
پنج شنبه 30 شهریور 1385, 04:39 صبح
مثلا فرض کنید که من یک کلاس پدر دارم به نام par توی این کلاس یه متغییر دارم از نوع Bitmap بعد یه کلاس ازش مشتق کردم به نام Cha , و هدفم اینه که همه نمونه هایی که از کلاس Cha ساخته میشن توی یه Bitmap کار گرافیکی شون رو بکننند تا من با رسم همون یدونه عکس روی فرمم خروجی رو نشون بدم.
حالا اگه من توی تعریف کلاسم متفییر Bitmap رو خیلی معمولی تعریف کنم هر بار که یه نمونه از کلاس Cha ساخته بشه هر نمونه یه Bitmap مخصوص به خودش خواهد داشت .
هدف من داشتن یه Bitmap برای همه است.
در ضمن ممنون از جواب سریعت.

ghabil
پنج شنبه 30 شهریور 1385, 18:11 عصر
این چیزی که میخوای توی آبجکت ارینتد بهش میگن class Property که متاسفانه دلفی در Win32 نداردش (اما Class Procedure , Class Function) رو داره که خیلی هم به درد بخورند.
اما در دلفی دات نت کلاس پراپرتی هم هست .
فکر می کنم روشی که آرژنگ گفته( استفاده از یک متغییر سراسری) روش خوبیه برای کاری که میخوای بکنی فقط باید مواظب باشی که کلاسهات رو بصورت مالتی ترد نمیتونی استفاده کنی مگر اینکه سریالایز بشند.