PDA

View Full Version : تشخیص وجود خاصیت در کامپوننت



persia_hrn
دوشنبه 22 مهر 1392, 18:55 عصر
سلام بر اساتید محترم

میخواستم بدونم چطور میشه زمان اجرای برنامه تشخیص داد که مثلاً کامپوننت شماره 5 روی فرم خاصیت تغییر سایز (Height) رو داره یا نه ؟

ممنون از دوستان

یوسف زالی
دوشنبه 22 مهر 1392, 19:12 عصر
سلام.
بالاخره یه سوال نسبتا خوب پس از مدت ها...


uses StrUtils, TypInfo;

function HasProperty(Obj: TObject; PropName: string): boolean;
begin
result := Assigned(GetPropInfo(Obj, PropName));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IfThen(HasProperty(Button1, 'Height'), 'Has', 'Has not'));
end;

البته برای Published ها جواب می ده (و خواص ثبت شده در RTTI)

persia_hrn
دوشنبه 22 مهر 1392, 19:15 عصر
آقایی آقا یوسف به مولا :قلب: