PDA

View Full Version : کمک در Cast کردن



saeed_m200
یک شنبه 24 شهریور 1387, 12:03 عصر
سلام من یه سوال در مورد Cast کردن در دلفی دارم با مثال میگم امیدوارم کسی بتونه کمکم کنه.
تو دلفی میشه اینجوری نوشت :
....
var CompName : String;
begin
CompName := 'Label1';
if findcomponenet(CompName) <> nil Then
(findcomponenet(CompName) as Tlabel) .Visible := not (findcomponenet(CompName) as Tlabel) .Visible ;
End;

حالا مشكل من اينحاست كه من اسم أبجكت را كه به صورت متغير است و مشکلی نیست حالا اگر تایپ آبجکت را هم متغییر بگیریم چگونه میشود cast کرد مثلا :

var CompName,CompType : String;
begin
CompName := 'Label1';
CompType := 'TLable'; ???????
if findcomponenet(CompName) <> nil Then
(findcomponenet(CompName) as CompType) .Visible := not (findcomponenet(CompName) as CompType) .Visible ;
End;
امیدوارم تونسته باشم منظورم و برسونم خیلی ممنون میشم اگه کسی راه حلی داره کمکم کنه مرسی.

net_ved
یک شنبه 24 شهریور 1387, 12:11 عصر
بجای CompType از TWinControl استفاده کن کلیتره

saeed_m200
یک شنبه 24 شهریور 1387, 12:26 عصر
مرسی دوست عزیز من مثالم شاید نامهوم بوده من اسم آبجکت رو تو یه متغییر دارم تایپ آبجکت رو هم تو یه متغییر به دست میارم یعنی Lable1 ثابت نیست ممکنه Tedit باشه پس نمیتونم به یه تایپ ثابت cast کنم .

shervin farzin
یک شنبه 24 شهریور 1387, 12:57 عصر
سلام
فرض كنيد داخل يه متغير به نام TMP نام Object مورد نظر رو قرار دادين و اين Object در فرمي
به نام مثلا Form1 قرار داره .
نوع Object يا كلاس سازنده Object در اين حالت لازم نيست .
حالا مي تونين از كد زير استفاده كنين :


Tform1(Findcomponent(TMP)).Visible := False

موفق باشيد .