مشاهدة النسخة كاملة : كيف يتم تحويل متغير نصي string الى تعليمة في لغة دلفي ؟
lahcen
08-01-2009, 07:25 AM
السلام عليكم ورحمة الله تعالى وبركاته
شكرا على المقيمين على هدا الموقع لهم التوفيق ان شاء الله
السؤال هو كيف يتم تحويل قيمة موجودة في متغير نصي من نوع string الى تعليمة في لغة دلفي
مثال
Text :String
..........
..........
Text :=' Edit1.Text+Edit2.Text';
هل هناك دالة او مكون يسمح بتنفيد ماداخل المعرف النص كتعليمة دلفي
اي تنفد
Edit1.Text+Edit2.Text كقيمة وليس كنص
وشكرا
AL-MOB4RM3G
08-01-2009, 09:23 AM
اخي الكريم حياك الله..
اخي اعتقد انك تريد مثلا اضافة 7 + 5 و النتيجة تصبح 12 وليس 57 اليس كذلك ؟
اذن يجب عليك ان تستخدم ال
StrToInt و IntToStr حتى تتمكن من ذلك...
وقد تم شرح هذا الشئ في الدورة وبلأخص الدرس الثاني والله تعالى اعلم...
اما ان كان الأمر مختلف فلو سمحت ان توضح قليلا و بارك الله لك.
kachwahed
08-01-2009, 10:16 AM
السلام عليكم.
أعتقد أني فهمت قصدك أخي.
تريد أن يتغير الحدث (Event) في زمن التشغيل (runtime)
هذه طريقة لعمل ذلك لكن التغيير يكون بحدث محضر مسبقا...
يعني نكتب الحدث في مكون TAction ثم نركب الحدث على الزر TButton:
هذا مثال صغير يغير حدث النقر على الزر Button2
var
Form1: TForm1;
Event: TNotifyEvent;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Event := Action1.OnExecute;
Button2.OnClick := Event;
end;
procedure TForm1.Action1Execute(Sender: TObject);
begin
ShowMessage('Event changed');
end;
أما إذا كنت تريد أن يتغير الحدث أثناء التشغيل إلى حدث لم يحضر أثناء التصميم، فهذا لا أعرفه وأنا أيضا أبحث عن طريقة لذلك، ,أتمنى من الخبراء أن يدلونا عليها.
شكرا كثيرا.
A.FATEH
08-01-2009, 10:26 AM
السلام عليكم ورحمة الله
اظن انك تقصد هذا:
text :string;
.....
.....
text := inttostr (strtoint (edit1.text) + strtoint(edit2.text) );
strtoint تحول القيم النصية الى ارقام و inttostr تعمل العكس
والسلام عليكم
B.M.AbdelAziZ
08-01-2009, 11:14 AM
كيف يتم تحويل قيمة موجودة في متغير نصي من نوع string الى تعليمة في لغة دلفي
أوامر دلفي تتحول من شكل نصي الى Binary بعد عمل Compile من طرف دلفي
الملفات المصدرية PAS + DFM + DPR + ... تجمع و تتحول الى ملف EXE به نفس الاوامر لكن بلغة الالة
المعالج CPU ينفذ الاوامر الموجودة بالملف EXE
اثناء التنفيذ لايمكنك تحويل نص الى اوامر وتنفذها في نفس البرنامج (لان هذا ما يقوم به Delphi حينما يعمل Compile)
ما تستطيع فعله هو تنفيسر تلك الاوامر وتنفيذ ما تمثله لك الاوامر اي برمجة Interpreter
برمجة Interpreter شيئ متقدم نوعا ما بالنسبة لمبتدا
طبعا هناك حلول و مكونات تجارية قد تغنيك عن ذلك اذكر على سبل المثال :
RemObjects Pascal Script
TMS Scripter Studio
FastScript من مبرمج Fast Report
TPaxScripter
...
بها يمكنك تطوير برنامج مثل AutoIt
والسلام عليكم
lahcen
09-01-2009, 06:46 AM
السلام عليكم ورحمة الله
اولا شكرا لكم على الاجابة
اخي Delta Aziz اود ان استفسرك بعض الشيئ
هل تقصد Interpreter استخدام الكلمة ASM .
وسؤالي بـ تحويل متغير نصي string الى تعليمة في لغة دلفي ؟
المقصود به تنفيد تعليمة موجودة داخل نص
كتنفيد تعليمكة Select في مكون Query ولكن باكثر توسع
كما جاء على دكر اخي عزيز
وشكرا لكم جمبعا
B.M.AbdelAziZ
09-01-2009, 09:45 AM
ذكرت بعض المكونات وهناك غيرها مجاني وتجريبي اوة تجاري
http://www.torry.net/pages.php?id=280
هل تقصد Interpreter استخدام الكلمة ASM
لا، Interpreter مفسر (http://ar.wikipedia.org/wiki/مفسر_(برمجة))
والسلام عليكم
lahcen
10-01-2009, 07:22 PM
السلام عليكم ورحمة الله
اخي Delta Aziz لم اقصد Interpreter بالترجمة الحرفية اي تفسير برنامج انما قصدت
هل هناك طريقة او تعليمة يمكن من خلالها تفسير جزء معين من تعليمة باستخدتم تعليمات ASM .
وشكرا اخي
mourad39
12-01-2009, 12:10 PM
حسب ما فهمت من سؤال الاخ هو مثلا بعد تنفيذ البرنامج نكتب له كمثال في الـ Edit1 الكود التالي :
mediaplayer1.play و يقوم البرنامج بتفسيرها على انها تعليمة برمجية في دلفي برمجت له سابقا و بالتالي سيتم تنفيذ ذلك الكود و هو تشغيل الصوت
لكن ليس بالكود if edit1.text = 'mediaplayer1.play' then
بل يقوم البرنامج لوحده تحويل النص الى تعليمة دون إستعمال اية شروط
للاسف انا أيضا أبحث عن حل لهذه القضية و لم أجده منذ سنوات
lahcen
12-01-2009, 03:32 PM
السلام للجميع
ان شاء الله بخير (دعوة خاصة لاهل غزة اللهم انصرهم)
اما بعد
الدالة StrToBool تقوم بتحويل من نص الى متغير منطقي الاشكال هو ارجاع خطا عند تقديم التالي
StrToBool('True')
من فظلكم ماهو الحل وشكرا جزيلا
bo0oda
13-01-2009, 10:17 AM
بل يقوم البرنامج لوحده تحويل النص الى تعليمة دون إستعمال اية شروط
للاسف انا أيضا أبحث عن حل لهذه القضية و لم أجده منذ سنوات
انا ايضا ابحث عن شيئ مماثل لانني كنت أفكر ان
انا احقن جزء من الكود مشفر يترجمه البرنامج ويعمل على اساسه
بداء من اسبوع
mourad39
13-01-2009, 11:00 AM
السلام عليكم و رحمة الله
الدالة StrToBool تقوم بتحويل من نص الى متغير منطقي الاشكال هو ارجاع خطا عند تقديم التالي
StrToBool('True')
أخي الكريم الدالة strtobool التي تحول النص إلى قيمة منطقية يجب أن تكون قيمة النص حسب لغة الدلفي الذي تستعمله فإذا كنت تستعمل دلفي إنجليزي Delphi EN يجب ان تكون قيمة النص إما true أو false و اما إذا كنت تستعمل دلفي فرنسي Delphi FR يجب أن تكون قيمة النص الذي ستحوله هي إما vrai أو faux
و على ما يبدو أن الدلفي الذي تستعمله دلفي فرنسي لهذا لم يقبل قيمة النص true إذن جرب أحد النصين التاليين vrai أو faux
StrToBool('vrai');
StrToBool('faux');
انا ايضا ابحث عن شيئ مماثل
إذا وجدت حل أخي أفدنا لأني انا أيضا في حاجة ماسة إليه
لاني حاليا أقوم ببرمجة برنامج يقوم برسم الدوال في مستوي لكن مشكلتي الدالة يجب كتابتها في الكود برمجيا مثلا
y := x*x+3
لكن x*x+3 تتغير فقد تكون sqrt(x)+x*6 او أي دالة رياضية أخرى و أردت من المستخدم أن يقوم بكتابتها في الـ Edit لكن المشكلة هي انها تكتب برمجيا فقط
B.M.AbdelAziZ
14-01-2009, 09:36 AM
احقن جزء من الكود مشفر يترجمه البرنامج ويعمل على اساسه
هذا موضوع اخر!
ان كان البرنامج المراد حقنه من برمجتك يمكنك استخدام طريقة اخرى هي Plug Ins
حيث يمكن اضافة اي شيئ لبرنامجك على شكل مكتبة DLL
مشكلتي الدالة يجب كتابتها في الكود برمجيا مثلا
y := x*x+3
لكن x*x+3 تتغير فقد تكون sqrt(x)+x*6 او أي دالة رياضية
عليك ان تبرمج Parser للدوال
كما يمكنك استخدام احد المكونات بالرابط (http://www.delphi4arab.com/forum/showpost.php?p=3507&postcount=7) السابق
والسلام عليكم
kachwahed
27-01-2011, 09:00 PM
ArtFormula برمجة الروسي Artem V. Parlyuk
http://artsoft.nm.ru/download.html
إن تعطل الموقع إبحث في Torry (http://www.torry.net/quicksearchd.php?String=ArtFormula&Title=Yes)
vBulletin® , Copyright ©2008-2012