PDA

View Full Version : ارزیابی رشته ها و کنترل ها در دلفی



amirtofighi
سه شنبه 27 آبان 1393, 10:50 صبح
با سلام
من 2 تا سوال داشتم تقریبا شبیه همه فقط امیدوارم منظورم رو بتونم برسونم:

چطور میشه از یک استرینگ یا یک عدد برای ریفر کردن به آبجکت خاصی استفاده کرد؟

مثلا 4 تا Tlabel داریم و همه پنهان هستن. میخوام با Tedit ی که تو فرم گذاشتیم لیبل مورد نظر رو از حالت پنهان خارج کنیم. یه چیز تو این مایه ما:


label[inttostr(edit1.text)] .visible:=true;




چطور میشه به دلفی فهموند که تابعی که کاربر تو ادیت وارد کرده رو به تابع ریاضی تبدیل کنه؟

مثلا اگه کاربر تو ادیت نوشت cos برنامه بیاد کوسینوس 45 درجه رو حساب کنه و تگه کاربر نوشت sin ، سینوس رو حساب کنه

ممنون

Mask
سه شنبه 27 آبان 1393, 10:58 صبح
چرا از شرط استفاده نمیکنید؟ علایم ریاضی اونقدر زیاد نیستند.

amirtofighi
سه شنبه 27 آبان 1393, 11:07 صبح
چرا از شرط استفاده نمیکنید؟ علایم ریاضی اونقدر زیاد نیستند.

آخه استفاده از شرط همیشه کاربردی نیست و هم خیلی کد نویسی داره.
در مورد توابع هم نمیشه همیشه حدس زد کاربر چه چیزی رو میخواد وارد کنه

amirtofighi
سه شنبه 27 آبان 1393, 12:03 عصر
فکر کنم جواب قسمت اول رو بدست آوردم:


Tlabel(Components[strtoint(edit1.text)]).visible:=True;

یوسف زالی
سه شنبه 27 آبان 1393, 14:21 عصر
سلام.
برای ارجاع به یک شی می تونید از نام اون یا اشاره گر اون استفاده کنید:
1- استفاده از تابع FindComponent یا FindControl
2- استفاده از Handle یک وین کنترل
3- استفاده از تبدیل صریح شی: integer(Button1) ; //sample
4- ..

کاملا بستگی به کاری که دارید می کنید داره.

جواب سوال دوم:
برای این چیزی که لازم دارید قبلا کامپوننت هایی نوشته شده.

http://wiki.delphi-jedi.org/index.php?title=JEDI_Code_Library
http://www.efg2.com/Lab/Library/Delphi/MathFunctions/Parsers.htm

البته من کلک رشتی ای زدم که هنوز باهاش حال می کنم!
به دلیل این که برنامه های من دیتابیسی هست، دادمش خود اس کیو ال دادم حساب کنه :لبخند:
شما می تونید از Eval جاوا اسکریپت هم استفاده کنید!!!!

توابع ساپورت شده: http://www.w3schools.com/js/js_math.asp

نمونه ای رو براتون می نویسم (همین جوری یهو باهاش حال کردم :لبخند:)
کمی صبر..

یوسف زالی
سه شنبه 27 آبان 1393, 16:49 عصر
ادامه مطلب رو در اینجا دنبال کنید.
http://barnamenevis.org/showthread.php?388044-%D8%AF%D9%84%D9%81%DB%8C-%D9%88-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C&p=2134555&viewfull=1#post2134555