نقل قول: مشکل با نوشتن کامپوننت
نقل قول:
من می خواهم یک کامپوننت بنویسم که به جای Button از اون استفاده کنم تا حالا هم کامپوننتی ننوشتم . برای این کار یک کامپوننت با وراثت از پنل ایجاد کردم
خب، چرا از TCustomButton آن را مشتق نکردید؟!
نقل قول:
اید چه طوری میزان Heightو width برچسب و با مقدار Heightو width پنل برابر کنم . البته باید برای برچسبم این میزان کوچکتر باشد .
کنترل ها یک متد Resize دارند که در صورت تغییر سایز آن کنترل، فراخوانی میشه. در صورت Override کردن این متد، کد شما با هر بار تغییر سایز اون کنترل اجرا میشه.
نقل قول: مشکل با نوشتن کامپوننت
در زمان اجرا پیغام این که خصوصیت taborder وجود ندارد را نمایش میدهد مشکل از چیه ؟
نقل قول: مشکل با نوشتن کامپوننت
یک سوال دیگه در زمان طراحی من رنگ و متن این دکمه رو که تغییر میدم درست عمل میکنه اما تو اجرا همون خصوصیات اولیش و نشون میده برای اینکه تغییرات جدید و نشون بده باید چکار کتم ؟
نقل قول: مشکل با نوشتن کامپوننت
نقل قول:
یک سوال دیگه در زمان طراحی من رنگ و متن این دکمه رو که تغییر میدم درست عمل میکنه اما تو اجرا همون خصوصیات اولیش و نشون میده برای اینکه تغییرات جدید و نشون بده باید چکار کتم ؟
برای اینکه Theme Support در پروژه فعال هست.
در پست قبلی هم اشاره کردم، من متوجه نمیشم شما چرا دارید همچین کلاسی می نویسید! اگر میخواید دکمه داشته باشید، باید از کلاس TCustomButtom یک کلاس جدید مشتق کنید، نه اینکه از یک Panel انتظار دکمه شدن داشته باشید. Button یکی از کنترل های اولیه سیستم عامل ویندوز هست. اگر هم کسی بخواد از اول چرخ را اختراع کنه، با همان کلاس Button ویندوز که جزو Common Controls ویندوز هست، شروع میکنه.
نقل قول: مشکل با نوشتن کامپوننت
یک سوال دیگه :
زمانی که من یکسری از property ها رو در CreateWindowHandle مقداردهی میکنم دیگه مقادیری رو که تغییر دادم در زمان اجرا نمایش نمیدهد چه طوری میشه یک سری مقدار دهی اولیه کرد ولی بعدا هم قابل تغییر باشند ؟
نقل قول: مشکل با نوشتن کامپوننت
همونطور که قبلا هم گفته شده راه رو دارین اشتباه می رین.
با توجه به کدی که قرار دادید، احتمالا قصد شما تنها ایجاد تغییرات در ظاهر Button هست. برای این کار بهتره یک کلاس از TButton مشتق کنید و Paint اون رو بازنویسی کنید. Canvas در اختیار هست و انجام هر تغییر گرافیکی با اون ممکنه.
اگر هم از کنترل جدیدتون انتظارات دیگه ای دارید که شما رو به استفاده از Lable و Shape سوق داده بهتره اون ها رو مطرح کنید. شاید راه بهتری باشه.