mbshareat
جمعه 29 اردیبهشت 1391, 00:47 صبح
سلام
فرض کنین من یه کامپوننت دارم که یه پروپرتی با نام Colored داره که از نوع Boolean باشه.
توی Paint کامپوننت مقدار این پروپرتی بررسی میشه و بر طبق مقدارش ترسیم ظاهر کامپوننت انجام میشه.
من امتحان کردم دیدم که اگه Read و Write هردو مستقیما با یک فیلد (متغیری با پیشوند F!) کار کنند در زمان طراحی با تغییر اون پروپرتی تغییری رخ نمی ده.
فرض کنین داشته باشیم:
TClrProgress= class(TCustomControl)
Private
FPosition: Integer;
.
.
Published
Property Position:Integer read FPosition write FPosition default 0;
end;
وقتی کامپوننت رو روی فرم میذاریم با تغییر مقدار Position تغییری منعکس نمیشه ولی وقتی برنامه رو اجرا می کنیم تازه اثر مقداردهی معلوم میشه.
آیا ممکنه این به دلیل نسخه قیمی دلفی من باشه یا راه دیگه ای هم هست که بدون تعریف پروسیجر برای مقداردهی Position تغییر مقدار این پروپرتی در زمان طراحی هم در کامپوننت منعکی بشه.
آیا حتما باید چنین چیزی بنویسیم؟:
TClrProgress= class(TCustomControl)
Private
FPosition: Integer;
Procedure SetPosition(P:Integer);
.
.
Published
Property Position:Integer read FPosition write SetPosition default 0;
end;
فرض کنین من یه کامپوننت دارم که یه پروپرتی با نام Colored داره که از نوع Boolean باشه.
توی Paint کامپوننت مقدار این پروپرتی بررسی میشه و بر طبق مقدارش ترسیم ظاهر کامپوننت انجام میشه.
من امتحان کردم دیدم که اگه Read و Write هردو مستقیما با یک فیلد (متغیری با پیشوند F!) کار کنند در زمان طراحی با تغییر اون پروپرتی تغییری رخ نمی ده.
فرض کنین داشته باشیم:
TClrProgress= class(TCustomControl)
Private
FPosition: Integer;
.
.
Published
Property Position:Integer read FPosition write FPosition default 0;
end;
وقتی کامپوننت رو روی فرم میذاریم با تغییر مقدار Position تغییری منعکس نمیشه ولی وقتی برنامه رو اجرا می کنیم تازه اثر مقداردهی معلوم میشه.
آیا ممکنه این به دلیل نسخه قیمی دلفی من باشه یا راه دیگه ای هم هست که بدون تعریف پروسیجر برای مقداردهی Position تغییر مقدار این پروپرتی در زمان طراحی هم در کامپوننت منعکی بشه.
آیا حتما باید چنین چیزی بنویسیم؟:
TClrProgress= class(TCustomControl)
Private
FPosition: Integer;
Procedure SetPosition(P:Integer);
.
.
Published
Property Position:Integer read FPosition write SetPosition default 0;
end;