انبشيجت بان حى نهكائ OOP خط ة خط ة ان ؤششاث في دنفي ظشة أع ق ق اعذ انبيا اث حع ق في انADO يقاس ت بي يص اث انخقاسيش انزس انح اس تنبيو: ىره المقالة تجمع بيه الجد اليزل يجب أن تقرأ فق ذلك. انخعايم يع ظاو 64 بج
ف شط ج ذد جفططحق ١ س: (prohibited) Restriction ج إؽشجش ف د ف : شز أ ك ل ج ذ ج ر ١ ح حش: ض ك ف ج ADO ج ؿضء جأل ي ى حش د ف : محس س ذ ١ ق حش ج طمحس ٠ ش ج ؿضء جأل ي أ ج ش د ف : ج ط ح ح 64 ذص ى حش د ف : ج ضس ج ك حس ج رش ؿس ذح ك ج ىحت : خي ز خي ز ج ؿضء ج ػح
Restriction (prohibited) جفططحق ١ س جد عثازج "تمييد" ع ىيا في اتفاليح استغالل انثسايج انتي تضعها شسكح صاحة انثس ايج ي اجم ح ايح حمىله ي االستغالل غيس انما ى ي دو إعطاء يماتم نهرا االستغالل طثعا تعتثس حمىق فكسيح يسجهح وع هيح ان ىافمح تكى خالل تثثيت انثس ايج عه انجهاش و اختياز يىافك عه يا ت ص عهيه االتفاليح. سثح ان ثثتي انري يمىيى تمساءج االتفاليح ال يتعدي %15 و هرا زاجع نعدو اخر يا تحتىيه تجديح. التثاس ي اتفاليح استغالل دنفي :XE Abstract: End-User License Agreement (EULA) for RAD Studio XE, Delphi XE, C++Builder XE, Delphi Prism XE, and RadPHP XE 2.1 LICENSE GRANT. Licensor grants to Licensee a non-exclusive, nontransferable, perpetual license (the License ) to install this Product within the country (or in the case of a country within the European Union within the European Union) specified by Licensee s ship to address provided by Licensee in the ordering documentation for the Product at the time of purchase ( Licensed Country ) and solely for the development of software programs and/or management of its internal systems and data in the following manner: (a) If Licensee has purchased a Network Named User or Named User License, Licensee may designate one person in Licensee s organization ("Named User") the right to install the Product on one or more computers and use the Product within the Licensed Country, provided that only the Named User uses the Product. (b) If Licensee has purchased a Concurrent Users License, Licensee may install the Product on a network within the Licensed Country to be used concurrently on different computers by up to the authorized number of users for which Licensee has purchased a license provided that the Product is accessed and used only in the Territory. Territory means the geographical area in which the Product may be accessed and used. The use in the Territory shall be subject to the export restrictions set forth below. Territory may be any one, and only one, of the following three geographic areas: Americas Territory, EMEA Territory or Territory AsiaPac each as defined below. The geographic Territories are: Americas Territory including and limited to those geographical areas found within the boundaries of North and South America (but excluding Cuba). Europe, Middle East and Africa Territory or EMEA Territory including and limited to those geographical areas found within the boundaries of Europe, Middle East and Africa, including countries in the former Soviet Union (but excluding Syria, Iran and Sudan); Asia Pacific Territory or AsiaPac Territory including and limited to those geographical areas found within the boundaries of Asia and Australia/Pacific (but excluding North Korea). Except where prohibited by applicable law, transfer of the Product into a country (or in the case of the European Union, outside the EU) not identified on the ordering documentation at the time of purchase is prohibited and will void the license. Temporary usage of a Product outside the Licensed Country or Territory not to exceed 30 days while a user is traveling, is permitted. يعهى ألهيح ي أعضاء ي تدي دنفي نهعسب أ شسكح Embarcadero ال تس ح تثيع ي تجاتها نثعض انثهدا انعستيح ألسثاب سياسيح طثعا و انكم يعهى ذنك إ ك ت ي احد انثهدا ان ع يح تانتمييد فه تستطيع شساء دنفي ي احد انىكالء ان عت دي في انعانى. ج ىحضد: ئدجسز ج طذ
ج إؽشجش ج ؿضءف ج ػح د ف - ذم جإلىحسجش Kachwahed ج إؽشجش ف د ف شز أ ك ج إؽشجش و ١ ف ١ س ج ط ح ح أوػش ح ٠ ك ١ ش ج رطذت ١ ف ج رش ؿس ذذ ف ر ه أل ج رطذأ ٠ ى أ ٠ كضس begin أ while do غ ١ ش ح ج ى حش ج كؿ صز أ ح ز ج ش ص @ ^ ف ٠ ؿذ ح قغحخ! ج غش ٠ د أ ئ عأي فال ٠ ىحد ٠ ؿذ ٠ ؿ ١ د عإج ر ه أل ج ز ع ١ ؿ ١ د غح رح ح ٠ نيش ئ ؽش غحت ط مس ذح طحد ضمغ ١ ج زجوشز ج ك ١ س سع ذ ١ ح ١ س لذ ٠ ؿض ح... طيشق ئ و ر ه ذح طفق ١ ى ع كح ي ج طشو ١ ض أ ج محه ج ط ضؿ ه و ص رطذب- ض طم ئ شق س أخش ح آخش ف ج رش ؿس ذذ ف! ئ ض ج إؽشجش ١ ظ مش سز خحفس ئ و ص ضرش ؽ فمو ضير ١ محش ل ج ذ ذ ١ ح حش ع س ج رش ؿس ذذ ف ؾ ط ح ط حصي ف قحالش وػ ١ شز ج ط ح ج رحؽش ج إؽشجش. غ ١ ش أ ف ه إؽشجش ع ١ ؿ ه ضطكى لذسضه جوطؾحف جألخيحء أغ حء ج ط م ١ ف. أوػش ف ١ ح ٠ م ذ طشؾ د ف ذح طح ٠ ض ٠ ذ فحش ج غح ذز ف د ف ضؾش ذؾى فق و ح ٠ ط ك ذح إؽشجش فال ضطشدد ف شجؾ ط ح. ذخ ج م...
ػ ج زجوشز ؽى ؿ س ور ١ شز جألعيش ق ١ ع ٠ مغ و عيش ئ ؿ س ج خال ٠ ح غ ١ ح bytes ف د ف ٠ ق 32 bit ذد ج خال ٠ ح ج ط ٠ ى أ ٠ كؿض ح ذش ح ؽ ئ 2 31 خ ١ س ح ٠ حدي.2Gb ال ضكط ز ج خال ٠ ح ئال أ ذجد و ح لذ ضى خح ١ س ال ضكط أ ل ١ س. يارا ح ثم ز األعذاد ز جأل ذجد ١ ظ ح كذد! ئر ٠ ى جعطخذج ح أل حعد ػال: ج م ١ س 97 ج ط ضخض ف خ ١ س ج زجوشز ٠ ى ج طرحس ح ذد Byte ف د ف و ح ٠ ى أ جعطخذج ح شك ج كشف a ج ز ٠ ط ػ ذح م ١ س 97. ذ جإل ال أ طغ ١ ش )Variable( ف ذش ح ؿه ٠ ط قؿض )ضخق ١ ( ق ١ ض ذ مذجس خ ١ س )أ أوػش قغد قؿ ج طغ ١ ش( ج زجوشز ق ١ ع ٠ ى ه ج مشجءز ح ج ىطحذس ف ١ ح ٠ ط ر ه ف ج غحقس ج كؿ صز رش ح ؿه ج زجوشز خقحت زج ج طغ ١ ش أ جع ح ح ل ١ س ع ا. Program Test; Var Var1, Var2: Byte; Var3: Integer; Begin end. ط م ١ ف ج فىشز ع كح ي أ ػ )ذؾى خحىة!( و ١ ف ٠ ط قؿض ق ١ ض )أ أوػش( ى طغ ١ ش:... انخهيت... ان خغيش انقي ت ج خ ١ س 6 Var3 150 ج خ ١ س 5 ج خ ١ س 4 ج خ ١ س 3 ج خ ١ س 2 Var2 45 ج خ ١ س 1 Var1 12 ض ػ و خح س 1 byte )ذح فش غ : 1( Octets ىر ح ج طغ ١ شجش ال ضقيف ذ زج ج ؾى ف ج زجوشز ١ ظ ؽشىح أ ضى ططحذ س ذ زج ج طشض ١ د.
الق أ ج طغ ١ ش ٠ كؿض Var3 bytes( 4( أسذ أم حف ح ٠ كؿض byte( 1( ج طغ ١ ش Var1 ٠ حدي Integer أسذ أم حف قؿ ج و Var3 ر ه أل قؿ ذ ١ ح حش ج طغ ١ ش Byte الق : ى ج رش ح ؽ ال ٠ شف ShowMessage(IntToStr(SizeOf(Integer))); ShowMessage(IntToStr(SizeOf(Byte))); Var3 Var1 ئ ح ٠ شف و ق ١ ض خالي إر كيف يحذد انبش ايج ي ضع ان خغيشاث في انزاكشة ع ا. خالي ٠ كذد ج رش ح ؽ م أ وحت ) طغ ١ ش غحذص ؾذ ي عؿ ئؾشجء...( )Address( أ ي خ ١ س ج ك ١ ض ج ز ٠ ؾغ ج ىحت ج زجوشز. ع ا ج ج ل ١ س ذد ٠ س ٠ رش ح جفيالقح- ذأ ذجد عص- ؾش ٠ س ػحي: E76013 ذ جإل ال طغ ١ ش سل ف د ف ٠ ط ض ١ ثط ذم ١ س 0 ئرج طغ ١ ش ح ( Global )Variable أ ح ئرج وح طغ ١ ش ك ( Variable )Local ف ٠ ط ض ١ ثط ح عطأخز ل ١ س ؾ جت ١ س ض ػ كط ج ك ١ ض ج ؾغ ي ج زجوشز ألؾ ج طغ ١ ش. يارا ع ي بان ؤششاث ج إؽش )Pointer( أ ج ج طغ ١ شجش ج شل ١ س قؿ 4 byte )ض ح ح ػ ج و )Cardinal غ ١ ش أ ال ٠ غطخذ طخض ٠ جيذ ١ ح حش ئ ح طخض ٠ أسلح خح حش ج زجوشز غ ١ ح ع ا ي. قغ ح و ١ ف كق ج ج طغ ١ ش Var2 ػال Addr ؾح ذ كق ف د ف ج أ وحت ذحعطخذج ج ش ض @ ج :Var2 أ ج طحذ ج ن ShowMessage(IntToStr(Integer(@Var2))); :)Hexadecimal( أ شم ذؾى أسلح عص- ؾش ٠ س ShowMessage(IntToHex(Integer(Addr(Var2)), 8)); جعطخذ ح ج طغ ١ ف Integer() أل ج ط جذ IntToHex IntToStr ال ضمر ض ش ٠ ش ل ١ إؽشجش رحؽشز ىر ح ج ج ٠ خط ف ؾ حص ئ آخش
ج ٢ حرج ل ح ذطخض ٠ ج ج طغ ١ ش Var2 ف طغ ١ ش آخش PVar2 ف ز ج كح س م ي أ ج طغ ١ ش PVar2 يؤشش عهى ان خغيش Var2 ػ ر ه ف ج ؿذ ي: Var2 ئ ح... ج 1 ع ا 2 ج 3 ج 4 ج 5 ج 6... انع ا Var1 Var2 PVar2 ان خغيش 12 45 ع ا 2 انقي ت يؤشش )Pointer( ال ٠ خض ل ١ س ج طغ ١ ش ٠ غ PVar2 ا خب : ج طغ ١ ش ج م ذز ه ذؾ ء ػ : program Test; var Var1, Var2: byte; Var4: Pointer; begin Var4 := @Var2; end. )Unsigned ش ٠ ح- 0 ئ 4294967295 0 ئ FFFFFFFF فظ قؿ ج ر ١ ح حش ٠ كط Pointer أ ج إؽش ل ١ ؾرس ( ذحأل ذجد ج ؾش ٠ س أ ذأسلح عص- ؾش ٠ س:.DWORD أ Cardinal ٠ ى ح ج كق ي ل ١ س ج طغ ١ ش Var2 خالي ج إؽش PVar2 أؾ ذرغحىس مشأ كط ج طغ ١ ش ج ز ج PVar2 وأ ج إؽش طغ ١ ش.Var2 ٠ ى ح ف د ف لشجءز ج طغ ١ ش ج ز ج ل ١ س ج إؽش PVar2^ ٠ ػ PVar2 مرل PVar2 ذح ش ض var Var2: Byte; PVar2: Pointer; begin Var2 := 2; PVar2 := @Var2; ShowMessage(IntToStr(Byte(PVar2^)));
Byte(PVar2^) := 3; و ح ٠ ى ح ضغ ١١ ش ل ١ س ج طغ ١ ش Var2 رش إؽش :PVar2 ج إؽشجش لغ ح : :Untyped Pointer أ ج إؽشجش ج ط ال ضإؽش و كذد ٠ ى جعطخذج ح طأؽ ١ ش أ وحت ض شف ذح P. : Pointer :Typed Pointer ج إؽشجش ج ط ضغطخذ طأؽ ١ ش كذد ج ر ١ ح حش ^Char ^Integer ^Byte ^ ػحي: ض شف ذأقذ أ ج ج ر ١ ح حش ٠ غرم ج ش ض...^Boolean ز جأل ج شفس ف د ف غرمح ذالقمس P ف ج ىطرس system.pas ج طشض ١ د:...PBoolean PChar PInteger PByte ل ح ذط ش ٠ ف إؽش ( Pointer )PVar2: ١ ظ و كذد ( Untyped )Pointer ز ه جعطخذ ح ح ج طغ ١ ف ئ Byte خرش طشؾ د ف أ ج م ١ س ج ط ٠ إؽش ١ ح.Byte PVar فظ ج ط ١ ؿس ٠ ى ج كق ي ١ ح ذطغ ١ ف ج إؽش م ج م ط: ) ١ ظ ج م ١ س( ئ PByte ز ه ٠ ؿد ضغ ١١ ش ShowMessage(IntToStr(PByte(PVar2)^)); طكذ ٠ ذ ج م ١ س ج ط ٠ إؽش ١ ح PVar2 م ذط ش ٠ ف ج إؽش ذ يؤشش عهى :Byte var Var2: Byte; PVar2: ^Byte; begin PVar2 := @Var2; PVar2^ := 5; ShowMessage(IntToStr(Var2)); يالحظت: ضغ ١١ ش ج ر ١ ح حش ج ز ٠ إؽش ١ ص ج إؽش PVar2 ع ١ رم 4. bytes PVar2 ال ٠ غ ١ ش قؿ ج إؽش ذ رحسز أخش ٠ ى ح ئ ؾحء إؽش ج إؽش PVar2
ىر ح فك فظ ج رذأ: var Var1, Var2: Byte; PVar2: ^Byte; PPVar2: ^Integer; begin Var1 := 2; Var2 := 3; PVar2 := @Var2; PPVar2 := @PVar2; Pointer(PPVar2^) := @Var1; ShowMessage(IntToStr(Byte(PVar2^))); ذم ؽ ء أخ ١ ش ذ ح Pointer فغ آخش Integer ئر ٠ ى ح ضخض ٠ ج طغ ١ ش ف طغ ١ ش ال جقزس ١ ظ Pointer Integer )سغ أ ح ذ فظ ج كؿ ضزوش أ ٠ نح أ Integer ؿحي ٠ ؾ ل ١ عح رس( ز ج ىطحذس خحىثس: var Var1: Byte; Var2: Integer; begin Var1 := 3; هنب اخلطأ//; Var1 @ Var2 =: ئر و ١ ف ٠ ى ح ضخض ٠ ج ج طغ ١ ش Var1 ف طغ ١ ش حد Var2 ذرغحىس م ذح طغ ١ ف Pointer( ئ :)Integer Var2 := Integer(@Var1); جألفف ح أ ٠ ط جإل ال ج طغ ١ ش Var2 ذ ١ ظ Cardinal.Integer مشجءز خرش ج طشؾ أ ج طغ ١ ش ٠ كط Var2 ج ١ ظ ذد ٠ ى ر ه ذحعطخذج ضحذ ج طك ٠ ج ن Ptr ج شف و ح ٠ : function Ptr(Address: Integer): Pointer; ػحي: ShowMessage(IntToStr(Byte( Ptr(Var2)^ )));
١ ى PVar إؽش.Integer ٠ ى ح ئ ؾحء غخس ؾذ ٠ ذز PVar ) ذد Integer ؾذ ٠ ذ(: var PVar: ^Integer; begin إنشبء نسخة جديدة // New(PVar); PVar^ := 3; ShowMessage(IntToStr(Integer(PVar^))); حترير املؤشر // Dispose(PVar); New Untyped Pointer غ ١ ش كذد يالحظت: ال ٠ ى ح ئ ؾحء غخس إؽش PByte أ :Typed Pointer Dispose ضغطخذ إؽشجش أ ج كذدز...PInteger ٠ ى ح ئ ؾحء ذز غخ ذحعطخذج ؽر -جإلؾشجء New )أ )pseudo-function ف و شز كق طغ ١ ش ؾذ ٠ ذ ال جع ( )Anonymous ال ٠ ى ح ج ف ي ئ ١ ئال خالي إؽش. ٠ ى جعطخذج FreeMem GetMem ألدجء فظ ج غشك غ ١ ش أ ز ٠ جإلؾشجء ٠ ح ١ ال ٠ خقح كذد ج إؽشجش جألفن جعطخذج.Dispose New ئرج ل ح ذا ؾحء غخس أخش ذحعطخذج فظ ج إؽش )أ ؾ ح ٠ إؽش طغ ١ ش آخش!( فغ ١ ن ١ ح ج ج طغ ١ ش جأل ي ذح طح ط ى ج ف ي ئ ١ ال ج مشجءز ع ١ غرد ض ٠ ف )أ ضغشخ( ف ج زجوشز Leak( )Memory ٠ قرف ق ١ ح إؽش ٠ ط ١ ػحي: var X: Integer; PI: PInteger; begin New(PI); PI^ := 5; X := 1; هنب تضيع القيمة @X;// 5 PI := ShowMessage(IntToStr(Integer(PI^)));...
ئال ئرج ل ح ذكف ج ف إؽش آخش ف ػ ز ج كحالش ٠ ى ح جعط حي ج ق ف ج ز ٠ ى جعطخذج وؿذ ي ج إؽشجش: TList var MyList: TList; procedure TForm1.Button1Click(Sender: TObject); var MyByte: ^Byte; begin MyList := TList.Create; try New(MyByte); MyByte^ := 45; MyList.Add(MyByte); ShowMessage(IntToStr(Byte(MyList[0]^))); Dispose(MyByte); finally MyList.Free; end; end; ى ئرج ل ح ح ذطكش ٠ ش ج إؽش MyByte )ذحعطخذج )Dispose لر شك ج حضؽ فغ ن ١ ج م ١ س ) 45 جخطالف ف غخ د ف 2006 ف ح ف ق ج ط ضغ ١ ش ج زجوشز ذيش ٠ مس خط فس( ج ط ر ١ ئ أ ذ ضكش ٠ ش ج إؽش MyByte ح ٠ غرد ض ٠ ف ف ج زجوشز ) ٠ ى فك ر ه ذنرو ج طغ ١ ش ReportMemoryLeaksOnShutdown ج م ١ س True ف ئفذجسجش د ف 2006 ف ق(. ي اسخخذاياث ان ؤششاث: ف ه جعطخذج ج إؽشجش ٠ ؿ ه ضطكشس ل ١ د وػ ١ شز ض جؾ ح أغ حء ج رش ؿس ذذ ف ٠ ؾ ش ذ ز ج م ١ د ذ ل ٠ غطخذ غحش ذش ؿس ال ضذ جعطخذج ج إؽشجش. جعطخذج ج إؽشجش ٠ كه ضكى أوػش ف ج غس ٠ ىغش قذ دن ج رش ؿ ١ س ػحي: أ ج طغ ١ شجش ( )Variables ٠ ى أ ضأخز ل ١ خط فس أغ حء ضؾغ ١ ج رش ح ؽ خالفح ػ جذص )Constants( ج ط ضرم ل ١ ط ح غحذص ى ١ س ص ضؾغ ١ ج رش ح ؽ...
١ ظ ذ ذ ج ٢... procedure ChangeConst(const Constant; var Value; Size: Integer); begin Move((@Value)^, (@Constant)^, Size); end; procedure TForm1.Button1Click(Sender: TObject); const ConstStr: string = 'String Value'; var VarStr: string; begin VarStr := 'New String Value'; ShowMessage(ConstStr); ChangeConst(ConstStr, VarStr, SizeOf(String)); ShowMessage(ConstStr); end; ذ ح أ ج إؽش طغ ١ ش سل ف ١ ى ئؾشجء ج ١ حش ١ ئسفحق ل ١ س: p1 =: p2 ج ض ٠ حدز ل ١ ط : Inc(p) أ جإل محؿ ح: Dec(p) ج ط ر ١ أ ص ٠ حدز ل ١ س ج إؽش p ذ مذجس ٠ D ئصجقس ج ج ذ مذجس: D )قؿ ج طغ ١ ش ج ز ٠ إؽش p( ١ ػحي: var حجم اخلبنة اليت يؤشر عليهب // 8 PDouble; :P begin هتيئة املؤشر بقيمة ابتدائية // Ptr($50000); P =: Inc(P); // P = $50000 + 1 * SizeOf(Double) = $50008... Inc(P, 6); // P = $50008 + 6 * Sizeof(Double) = $50038 ز ه ؽح جعطخذج ج إؽشجش ج ؿذج ي أ ج غالع ج ق ١ س م ق مس ضىشجس ٠ س ذح ش س ؾ ١ ج م ١ خالي ج طأؽ ١ ش ج خح س ج القمس و ص ٠ حدز ف ل ١ س ج إؽش.
انخ شيش باسخخذاو قي ت )يؤشش( يشجعيت: ف ج ػحي ج ٢ ض د ضغ ١١ ش ل ١ س ج طغ ١ ش x خالي ئؾشجء ذذجت : procedure ChangeValue(i: Integer); begin i := 0; end; procedure TForm1.Button1Click(Sender: TObject); var x: Integer; begin x := 5; ChangeValue(x); ShowMessage(IntToStr(x)); end; ىر ح ضطغ ١ ش ل ١ س x أل ج ط ش ٠ ش ف جإلؾشجء ChangeValue ض ذحعطخذج ج م ١ س أ أ ل ١ س ج طغ ١ ش i أخزش ل ١ س x لح جإلؾشجء ذطغ ١١ ش ل ١ س i ئ 0 ذ ١ ح ضرم ل ١ س x قح ح. ىر ح ع م ي ؾ ١ ح أ ج ك ع ذامحفس ج ط ؾ ١ var )ج ز ٠ غطخذ فظ ج رذأ(: procedure ChangeValue(var i: Integer); ف غحش ذش ؿس أخش ) غس C ػال( ال ٠ ؾذ ض ش ٠ ش ذ ز ج يش ٠ مس ذح طح وح ٠ رغ ض ش ٠ ش ج إؽش مح ل ١ س ج طغ ١ ش غ ج ط ذ ٠ خالي ج إؽش ح ٠ محذ ف د ف : procedure ChangeValue(i: PInteger); begin i^ := 0; end; procedure TForm1.Button1Click(Sender: TObject); var x: Integer; begin x := 5; ChangeValue(@x); ShowMessage(IntToStr(x)); end; الق ج ٢ ذ ذ أ ل ح ذط ش ٠ ش ج ج طغ ١ ش x ئ جإلؾشجء جألخ ١ ش ذطغ ١١ ش ل ١ س كط ج ج ج ز ٠ ك ج إؽش i. ١ م ChangeValue زج
حرج و زج ٠ ى ح ق ج ؾى ذحعطخذج ج ؾ var ذغ س! أل زج ع ١ كه لذسجش أخش طكى أوػش ف ع ن ج رش ح ؽ ع ذسن أ ٠ نح حرج ذ ح جؾ جعطخذج ذ ل د جي.Windows API أ ٠ نح ض شف ج إؽشجش ف غس C ذامحفس فظ ج ش ض )*( ج ز ٠ غطخذ طأؽ ١ ش ػحي: int *p, x = 5; p = &x; printf("addr: 0x%p = %d\n", p, *p); ف د ف ض ج طفش ٠ ك ذ ١ ف ١ غس جالعطخذج ذ ١ ف ١ غس ج ط ش ٠ ف: var P: ^Integer; X: Integer; begin X := 5; P := @X; ShowMessage(Format('Addr: $%p = %d', [p, p^])); ف د ف غح رح ح ضغطخذ ج غؿالش ( )Records ج غحذك ػحي: خالي إؽش ج غؿ فك فظ ج رذأ type PPerson = ^TPerson; TPerson = record Name: string[80]; Age: byte; end; procedure SetAge(APerson: PPerson; AValue: Byte); begin APerson^.Age := AValue; end; procedure TForm1.Button1Click(Sender: TObject); var Person: TPerson; begin Person.Name := 'Amine'; Person.Age := 62; SetAge(@Person, 65); ShowMessage(IntToStr(Person.Age)); end;
يالحظاث: ف ز ج ػحي جألخ ١ ش ل ح ذحإل ال إؽش ( ^TPerson )PPerson = ج غؿ TPerson لر ض ش ٠ ف ج غؿ فغ! زج غ ١ ش ؾش أفال الق : type PPerson = ^TPerson; TPerson = record... غ ١ ش أ ى ف ز ج كح س ئقذ خقحت ج إؽشجش ى ٠ ؾطشه ف ١ أ ٠ ى م فظ ج ك ١ ض type ز ج خحف ١ س ضغطخذ ذىػشز خحفس ذ ض ش ٠ ف عؿ ئقذ حفش إؽش فغ ػحي: type PPerson = ^TPerson; TPerson = record Name: string[80]; Age: byte; Son: PPerson; end; أ ٠ نح ف زج ج ػحي ٠ ى ح جالعطغ حء ج إؽش ض ش ٠ ش طغ ١ ش ج غؿ : procedure SetAge(var APerson: TPerson; AValue: Byte); غ ١ ش أ جإلؾشجء SetAge ح ع ١ م ذا ؾحء غخس وح س ج غؿ TPerson طغ ١١ ش ل ١ س ق ١ ذز Age ح ٠ ؿ جأل ش أغم خحفس مخح س قؿ ج غؿ وػشز جإلؾشجءجش... ض ش ٠ ش ج إؽش ف ز ج كح س أ ف أعش. ذخق ؿ ^ ٠ ى ئ ح ف قح س ج ط ح ج غؿالش ىطف رحؽشز ذ: APerson.Age := AValue; إعذاو ان ؤشش: ئرج ؾ ح ج إؽش ٠ أخز p2 ل ١ س ج إؽش p1 ج ز ٠ إؽش طغ ١ ش x ل ح ذطكش ٠ ش ل ١ س ج إؽش p1 ذحعطخذج Dispose فغ ١ ن ١ ج إؽش p2 كق سعح س ج خيأ: Invalid pointer operation ر ه أل ج إؽشجش ال ض طشف ذفشك ج طىح ج شؾ ػحي:
var x: Integer; p1, p2: ^Integer; begin x := 5; p1 := @x; p2 := p1; Dispose(p1); هنب اخلطأ ShowMessage(IntToStr(p2^));// ذؿ ج إؽش ٠ أخز p1 ل ١ س ٠ ى ح nil ج م ي أ ال ٠ إؽش ؽ ء ) ع ١ أخز ج م ١ س 0 ف و x ف ج ػحي! ذح طح كق ل ١ س ج طغ ١ ش د ف ئ قذ ج ٢ ( غ ١ ش أ ح ٠ ضجي ؾ د ج غحذك: var x: Integer; p1, p2: PInteger; begin x := 5; p1 := @x; p2 := p1; p1 := nil; متت بنجبح//;((^ ShowMessage(IntToStr(p2 لذ ضى إؽش ل ١ س )ضخط ف )nil ج خ ١ س كذدز ج زجوشز غ ١ ش أ ز ج خ ١ س ج زجوشز لذ ال ضك أ ل ١ س ذح طح ال ٠ ى ج ؿض ذأ قط ح ى إؽش ل ١ س ٠ إؽش ١ ح ف ج زجوشز! ج إؽشجش ػ ذم ١ س ج طغ ١ شجش ضكطحؼ ئ ض ١ ثس )ل ١ س جذطذجت ١ س( ئال فغطأخز ل ١ س ؾ جت ١ س لذ ضطغرد ف قذ ظ أخيحء غ ١ ش ط ل س ( Violation )Access ئ قح ص ج ىطحذس خال ح خحفس ئ وح ص ضإؽش خحسؼ ج ك ١ ض ج كؿ ص رش ح ؽ ف ج زجوشز أ لذ ضطغرد ف ضغ ١ ش ل ١ وحت حش أخش ف ج رش ح ؽ. كم انكائ اث ي يؤششاث! ج ق ف TObject وحت ؿ س ج ح ؽ )ئؾشجءجش ض جذ ( ق ١ ع ٠ ى ه ئ ؾحء غخس ف لص ضكش ٠ ش ج زجوشز ذ جال ط حء... ج ىحت TObject ف ج جل يؤشش ئ ؾحء غخس ٠ جعطخذج جإلؾشجء New إؽش ضكش ٠ ش ج زجوشز ٠ جعطخذج جإلؾشجء...Dispose أ كح س العطخذج غخس وحت TObject ض ؾأ ذ ذ ض كح س ج طأؽ ١ ش ذ ذح طح : سعح س جالعطػ حء...Access Violation
( ذ ضكش ٠ ش أ وحت TObject لذ ٠ ذ ضكش ٠ ش إؽش ذحعطخذج Dispose أ ضشو ك ف ج زجوشز ف ىح ؿ ي ال ٠ ى ج ف ي ئ ١! ج ىطحذس: Object2 =: Object1 )ق ١ ع وال ح وحت )TObject ض ؾ ج غشك ٠ إؽش Object2 فظ ج م ١ س ج ط ٠ إؽش ١ ح ج غشك Object1 ال ض غخ ج م ١! و جألف حف ج ط ضؾح ذ ح ف د ف ض كذس عال س ج ق ف جألخ TObject...TButton TComponent TControls ذ ح ف ١ ح TForm ج كذ ٠ ع... ٠ يرك ١ ح فظ فظ ج ىال جإلؾشجءجش ج ط جذ و ح ف ج جل يؤششاث... أضزوش ىش ٠ مس جالعطذ حء ج ذ ٠ ح ١ ى ح ؽ ىطرحش ج شذو ج ذ ٠ ح ١ ى ١ س DLL( Type منط مؤشر على إجراء //... String); TDLLProc = procedure(var Param: Var hdll : Integer; مؤشر على اإلجراء...// TDLLProc; MyProc: S : String; begin hdll := LoadLibrary('MyDLL.dll'); try حفظ قيمة مؤشر... end; @MyProc := GetProcAddress(hDLL, 'DLLProc'); // If @MyProc <> Nil Then MyProc(S); finally FreeLibrary(hDLL); end; و ح ف جأل ش أ د ف ٠ غ ١ ح ج رش ؿس ٠ ش ٠ ك ح ض د ج ط ح ج رحؽش ج إؽشجش ف ق ١ ٠ ى ح ئرج جعط ض جأل ش- ضك ٠ ج م ١ حدز ئ ىش ٠ مس أوػش ٠ ذ ٠ س... يالحظت: طيشق ئ ج ؿح د ج ج ز ٠ ر ١ ج فحتذز ج ١ س ج إؽشجش ع طشن ر ه جم ١ القمس ئ ؽحء جهلل ق ١ ع ع طكذظ ذ ل أ ج ج إؽشجش ج ط ح ح س خحفس طيشق ئ ١ ح ف ج م.
ل ج ذ ج ر ١ ح حش ذم lam.abdeldjalil حع ق في انADO ج ؿضء جأل ي أغ د ج ؾحو ج ط ٠ جؾ ح ج رش ؿ ذ ذش ؿس ج طير ١ محش ذح ADO ع ء جخط ١ حس جعط حي ج Cursor أل جخط ١ حس ج Cursor ج قك ١ ف ح ضأغ ١ ش رحؽش ؿح ج طير ١ ك ج رش ؽ ذح ADO ف ح غح ٠ س زوش ذ ل ج ؾحو : ج طغؿ ١ الش ج نحفس ىشف غطخذ ال ض ش ذ آخش ذية فطف جالضقحي سعح س خيأ أغ حء ض ذ ٠ أ قزف ضغؿ ١ ذي أ كز ف ىشف غطخذ آخش ال ٠ ى ج شؾ خ ف مشجءز فمو ل ١ س ج RecordCount 1- CursorType, زج ٠ ؿد ج رش ؿ ١ أ ٠ ى ج دسج ٠ س وحف ١ س ذح خقحت : CursorLocation, LockType إل ؾحء ضير ١ ك أوػش وفحءز. : DataSet Cursor رذأ ذؾش ذ ل ج قي كحش غط س ذىػشز Recordset
' ؿ ج طغؿ ١ الش ' : Recordset ٠ كط Recordset object طحتؽ جإلعط ال ج طحتؽ ضطى عي س ( )rows ضغ ضغؿ ١ الش )records( أ ذز ( )columns ضغ قم ي ( )fields و جأل ذز ضخض ف Field object ف ؿ س قم ي ج. Recordset ق ١ ٠ غطمر ضير ١ ك ل ج ذ ج ر ١ ح حش ADO ج غي س لح ذز ج ر ١ ح حش ٠ م Recordset object ذطغ ١ ف ج ر ١ ح حش ج ١ حش ج غ قس ز ج ر ١ ح حش. : Cursor ١ ى ج ر ١ ح حش ج ز ٠ خض طحتؽ جإلعط ال حش ف ج ٠ ى ADO ج م ي أ ج ىحت Recordset رحسز وحت ٠ غ COM ج ف ي ئ ج ر ١ ح حش ف ج Cursor ج. Recordset ج ز ٠ كذد ج حتف ج طحقس ىحت CursorType Recordset ٠ غط ج Cursor إلقط جء ؿ س ج غي س ج يم ١ س ج كطف ذ ح. ضير ١ مه : DataSet ' ؿ ج ر ١ ح حش' ج قذز جألعحع ١ س ف ي ئ ج ر ١ ح حش ج DataSet حت س ج ىحت حش ٠ غطخذ ج DataSet ف ي مح ذز ج ر ١ ح حش. وحت ج ٠ ػ DataSet ؿ س ج غؿالش لح ذز ذ ١ ح حش س ف ؾذ ي يم. لذ ضى ز ج غؿالش ؾذ ي لح ذز ذ ١ ح حش جقذ أ أ ح لذ ض ػ طحتؽ ض ف ١ ز جعط ال أ ئؾشجء خض. ؾ ١ ج ىحت حش ج DataSet ج ط ضغطخذ ح ف ضير ١ محش ل ج ذ ج ر ١ ح حش ض كذس DB.TDataSet ضشظ قم ي ج ر ١ ح حش ج خقحت جألقذجظ ج ح ؽ ز ج فثس زوش ح :,,, TBDEDataSet / TcustomADODataSet / TcustomSQLDataSet
٠ كذس TcustomADODataSet ح : TADOStoredProc( )TADODataSet, TADOTable, TADOQuery, و ح ضؾطشن ف ج خقحت ج طح ١ س : CursorType, CursorLocation, LockType, MarshalOptions ان ص ل نه Recordset ي : TcustomADODataSet ٠ فشج TcustomADODataSet.Recordset ج ف ي ج رحؽش ئ ج ىحتRecordset ف ج.ADO ج Recordset ج جؾ س ج ط ٠ ط خال ح ج ف ي ئRecordset.ADO ذ فطفdataset ADO ٠ ط ض محت ١ ح ض ١١ ل ١ س Recordset ئ جؾ س ج ز ض فش ج ف ي ئ ج غؿالش. ال ٠ رغ أ ضغطخذ ز ج م ١ س قط ذ ذ ئىالق ج كذظ. OnRecordsetCreate جعطخذج Recordset ف ي ج رحؽش ئ ئ ج ىحتRecordset ف ج ADO ج ط ٠ ػ ح ج ى. dataset شؾ ج ف ي ج رحؽش زج ٠ غ ف طير ١ ك ذحعطخذج خقحت ح ؽ ج ىحت Recordset ج قذس. ج ف ي ئ وحت Recordset ف ١ ذ ذؾى خحؿ العطفحدز خقحت أعح ١ د ج ىحت Recordset ج ط ال ض ش ف ى حش. ADO dataset حدسج ح ٠ كطحؼ ج طير ١ ك ف ي ئ ج ىحت Recordset رحؽشز. زوش قح س ى أ ٠ غطخذ ػ زج ج ف ي : ض ؾ ١ Recordset ج ط ض طؽ ض ف ١ ز ئعط ال ٠ شؾ ل ١ ف ج ى.TADOCommand ف ز ج كح س ضخق ١ ج Recordset ج شؾ س ض ف ١ ز )TADOCommand( رحؽشز ئ ج خحف ١ س : ADO dataset ج غط س إلعطمرحي ذح ؾى ج طح.Recordset ADODataSet1.Recordset := ADOCommand1.Execute;
:CursorLocation 1- خحف ١ س جعطخذج CursorLocation طكذ ٠ ذ أ ٠ ٠ ط ئ ؾحء ج أ ؾح د-ج غ ١ شفش. Recordset ق ١ ضفطف ؾح د -ج ضذ cluseserver cluseclient ج م ١ ج كط س : د ف ٠ غي CursorLocation ف. TCursorLocation. - cluseclient ج م ١ س جإلفطشجم ١ س : ز ج م ١ ض ي لر فطف جإلضقحي ٠ ؿد جألخز ذ ١ جإل طرحس و ج ج ج جسد ق ١ ئخط ١ حس CursorLocation : cluseclient. ADO Cursor ٠ ط ضخض ٠ طحتؽ جإلعط ال حش وح س ف ج كشن ٠ غط إلدجسض ح. ج غش س ج ىفحءز ف ج ط ح ج ر ١ ح حش أل ح ضؿ د ج ر ١ ح حش ئ ج زجوشز ج ك ١ س رحسجش ج SQL ض فز ف ج غ ١ شفش. local Where ضغطمر ف ج رحسجش ج ط ضكذد ؿ ج طغؿ ١ الش ذاعطخذج cursor ) خطض س.) ئ ىح ١ س ج ذذ ئضقحي )جإلضقحي فمو ؿ د أ قف ج ر ١ ح حش( cluseserver ػ ض شك ش س أورشج غ ح ١ حش ج غ ١ ش ذ س ىشف ج طشض ١ د ج ف طشز. ئ ىح ١ س ضخض ٠ ج ر ١ ح حش ؾ ر ح ج فحش ADTG( (. XML ئسضفح قشوس ش س ؽرىس جالضقحي ( ٠ ط ض ش ٠ ش ج ر ١ ح حش ئ ج ١ (.
: cluseserver / OLE DB provider ج Recordset ضط ئدجسض ح ذح ض د أ لح ذز ج ر ١ ح حش. ئلطقحد جسد ج ١. ئعط الن جسد ج غ ١ شفش ى صذ طق. ذ جإل ىح ١ س ج ذذ ئضقحي ( ج رمحء طق ). ج خفحك قشوس ش س ؽرىس جالضقحي ض طرش جأل ػ ف قح س م ف جإلضقحي : - 2 خحف ١ س CursorType CursorType ذذ ج طى Recordset ال ٠ ى ج طى خحف ١ س ج CursorType ضكط ج م ١ س ج ط ضذي ج Cursor ج غط طكذ ٠ ذ و ١ ف ضطكشن دجخ ج غؿالش س أ ذ س ج طغ ١١ شجش ج ط أدخ ص ف لح ذز ج ر ١ ح حش ىشف غط ١ آخش ٠ ذ ذ ئعطمرحي ج ر ١ ح حش. ctdynamic, ctkeyset, ctforward-only,ctstatic ج م ١ ج كط س : ctunspecified د ف ٠ غي cursor types ف.TcursorType - ctkeyset ج م ١ س جإلفطشجم ١ س ز ج م ١ ض ي لر فطف ج. dataset ٠ كذد ذ ذ ج.CursorType ctunspecified
ctdynamic ضغ ف ه ذشؤ ٠ س ج طغ ١١ شجش )جإلمحفس ض ذ ٠ قزف ) ج ٢ خش ٠. ضغ ف ه ذ ضغ ١١ شجش )جإلمحفس ض ذ ٠ قزف (. ج ط م ف و جإلضؿح حش. لر ج غط ١ ctkeyset ضغ ف ه ذشؤ ٠ س ( ج ط ذ ٠ ) لر ج غط ١ ج ٢ خش ٠ أ ح ج طغؿ ١ الش ج نحفس ال ٠ ى سؤ ٠ ط ح ج طغؿ ١ الش ج كز فس ال ٠ ى ج ؼ ئ ١ ح. ضغ ف ه ذ ضغ ١١ شجش )جإلمحفس ض ذ ٠ قزف (. ج ط م ف و جإلضؿح حش. ) ٠ م ذمشجءز وح س ؿ ج طحتؽ ( غخس غحذطس ؿ ج طغؿ ١ الش ctstatic ال ضغ ف ه ذشؤ ٠ س ج طغ ١١ شجش ( جإلمحفس ض ذ ٠ قزف ) لر ج غط ١ ج ٢ خش ٠. ج ط م ف و جإلضؿح حش. ضغ ف ه ذ ضغ ١١ شجش )جإلمحفس ض ذ ٠ قزف (. ضغطخذ حدز طمحس ٠ ش ف قح س. CursorLocation : cluseclient - ٠ غط فمو ذ ح ٠ ى CursorLocation : cluseclient
أل ح فمو ) ر س جقذ ( ctforward-only ضغ ف ه ذشؤ ٠ س ج طغ ١١ شجش )جإلمحفس ض ذ ٠ قزف ) لر ج غط ١ ج ٢ خش ٠ ' ئرج ضق ذ ذ ئ ز ج طغؿ ١ الش'. ج ط م ف ئضؿح جقذ " جأل ح " UniDirectional( (. عش ٠ ؾذج! ذ ذ جإل طمحي غؿ ج ج ٠ كزف ج غؿ ج غحذك ج زجوشز. ل ١ س ج خحف ١ س RecordCount إلعط حدز ذد ج طغؿ ١ الش -1. ف جتذ أ عش ٠ جأل ػ أل / ClientDataset.... ComboBox ج م جت ج ق ١ س ػ CursorType ج كقح ج حس ' ف ج كم ١ مس ١ ظ ذ ع ىزج ' FireHorse غش ط. CursorLocation = cluseserver رحسز ctforward-only.locktype= ItReadOnly : ئمحفس ئ خقحت ج ctforward-only ال ضغ ف ه ذ ضغ ١١ شجش )جإلمحفس ض ذ ٠ قزف ) "ج مشجءز فمو ". عش ٠ ؾذج! أعش ج غحذك.ctForward-only أل مشجءز فمو. ضغطخذ حدز ف ج طمحس ٠ ش ف قح س CursorLocation : cluseserver ( ئال ctforward-only ئرج ضكشوص ضغؿ ١ ال ٠ ى * و ح ضذ ج bookmark ج دز ئ ١ ). * ئرج ض ى د CursorType غ ١ ش ذ ج ض د فا ج ض د ى أ ٠ ي ١ ه آخش ػال ئرج م ص CursorType = CursorLocation = cluseserver. ctkeyset ئ CursorType لح ذز ذ ١ ح حش أوغظ فا ع ف ٠ غ ١ ش ctdynamic
CursorLocation = cluseclient ج ٠ كط CursorType ل ١ س جقذز ٠ أ ج م ١ ج رحل ١ س خحفس ذح cluseserver * ف قح س ctstatic : - 2 خحف ١ س LockType ئرج و ص ضرش ؽ ذش ح ؽ ط ذد ج غطخذ ١ ف ١ ه جألخز ذ ١ جإل طرحس خحف ١ س LockType ذز غطخذ ١ ض ذ ٠ /قزف فظ ج طغؿ ١ )ئغالق/ق ح ٠ س ج طغؿ ١ (. LockType ضخرش ج ض د أ جإلغالق ٠ ؿد أ ٠ م ج غؿالش أغ حء ج طكذ ٠ ع ) إلعط ح ح ٠ ؿد أ ٠ ى ج ض د ٠ ذ (. ltreadonly ltpessimistic ج م ١ ج كط س : ltoptimistic ItUnspecified ltbatchoptimistic د ف ٠ غي LockType ف.TADOLockType. dataset - ltoptimistic ج م ١ س جإلفطشجم ١ س ز ج م ١ ض ي لر فطف ج ٠ كذد ذ ذ ج.LockType ItUnspecified ltoptimistic * ف زج ج ٠ ط غ ك و عؿ قذز فمو ق ١ ضط ١ س ضكذ ٠ ع ج غؿ ( ج ف ١ ض ٠ حت ( ل ١ زج ج غؿ آخش ج م ١ ج يحز ذ آخش غطخذ لح ذح طكذ ٠ ع ltpessimistic * ف زج ج ٠ ط غ ك و عؿ قذز أغ حء ١ س ج ط ذ ٠ قط ج كف ( ال ضذ ذ ل ج ض دجش زج ج (.
ltreadonly * جإلع ٠ رش فغ ف ز ج كح س ٠ ى ف قح س ج مشجءز فمو. ltbatchoptimistic * ج طكذ ٠ ع ذح ذف حش ك ئعطخذج ج طكذ ٠ ع ج ف س. * ضغط cluseclient د ئضقحي ( فىشض ح أ ج غطخذ ٠ م ذح ١ حش ضخض ز ج ١ حش ف ج زجوشز غ ضمذ ؽى دف س ( )batch ق ١ ضى ؾح ضز ئ لح ذز ج ر ١ ح حش زج ذح ط ١ س ( )UpdateBatch ٠ ى ئ غحء ح ٠ ؾذ ف CancelUpdates أ CancelBatch ذ جعيس )batch( الق س : ٠ ى أ ٠ ؾذ ضنحسخ ف قح س ( ل ١ ح أوػش غطخذ ذط ذ ٠ /قزف فظ ج طغؿ ١ ػال جأل ي لح ذح ط ذ ٠ غ ج كف ج ػح ال ٠ ى ج كف ئال ذ ذ ؾ د آخش ضكذ ٠ ع طغؿ ١ ). Message Row cannot be located for updating.some values may have been changed since it was last read ''ال ٠ ى ئ ٠ ؿحد ج غيش ط ذ ٠ ذ ل ج م ١ ضغ ١ شش ل ١ ح ذ ذ آخش لشجءز'' د ئ ز ج كح س ف م آخش ئ ؽحء جهلل... : - 2 خحف ١ س MarshalOptions ضغط cluseclient ذ ضغ ١١ ش ف ج ر ١ ح حش ١ ط ئسعح ح ئ ج غ ١ شفش ذ ز ج خحف ١ س ٠ ى ضخق ١ ج طغؿ ١ الش ف ج ر ١ ح حش ج ك ١ س ج ط ٠ ط ئسعح ح ئ ج غ ١ شفش.
momarshalmodifiedonly momarshalall ج م ١ ج كط س : د ف ٠ غي MarshalOptions ف.TMarshalOption. momarshalall ج م ١ س جإلفطشجم ١ س : : momarshalall ٠ ط ض رثس ؾ ١ ج طغؿ ١ الش ف ج ر ١ ح حش ج ك ١ س ئسعح ح ئ ج غ ١ شفش momarshalmodifiedonly. : ٠ ط ض رثس فمو ج طغؿ ١ الش ج ط ض ضغ ١١ ش ح ف ج ر ١ ح حش ج ك ١ س ئسعح ح ئ ج غ ١ شفش. : جألوغظ : ف جألوغظ ١ ه ج ذ ح ٠ أض ئفطشجم ١ ح أ ئضر ج ؿذ ي ج طح LockType ltreadonly ltreadonly ltpessimistic ltoptimistic ltbatchoptimistic ltreadonly ltoptimistic ltbatchoptimistic CursorType ctforwardonly ctkeyset ctstatic ctkeyset ctstatic CursorLocation cluseserver cluseclient : - 1 يك ADOConnection : ف ١ ح ىطد حش جإلضقحي ض د ف ج مح ذز >ConnectionString<- و س ج ش س ئ ؾذش..
- Connected : إلضقحي لي - LoginPrompt : خحفس ذ حفزز ى د جع ج غطخذ و س ج ش س ئرج و ص ال ضش ٠ ذ ح أ ض ش ئؾ ج م ١ س False ئذمحء جإلضقحي أ لي ف قح س ذ ؾ د Dataset ف م : KeepConnection -. Active : - 2 يك ADOTable.ADOConnection ئرج أسدش ئ ؾحء ئضقحي آخش د ئعط حي :>ConnectionString<- : طكذ ٠ ذ ج كم ي ئرج وح ص ج كم ي ج كغحذ ١ س ضكغد أ ض حض ١ ى ١ ح أ ال. AutoCalcFields -.) ٠ غط ف طشز ( ذحعط حي قم أ أوػش ضمحذ ح ج م ١ : Filter - - Filtered : طف ١ ئ غحء ضف ١ ج ف طشز.. طكذ ٠ ذ ذد ج طغؿ ١ الش ج شجد ئ حس ح ئفطشجم ١ ح 0 ض غ ١ ش كذ د : MaxRecords- - CommandTimeout : طكذ ٠ ذ لص ط ف ١ ذ أ ش ح )sql( ذ ذ ئ ط حء زج ج لص ٠ ط ئ غحء جأل ش ج شجد ض ف ١ ز كذد ذح ػح ١ س ػال ذ كح س ض ف ١ ز أ ش ئ مي جإلضقحي ذح غ ١ شفش ع ف ٠ غ جأل ش ذ ذ ئ ط حء ج لص ج ي. - 3 يك : ADOQuery. SQL ىطحذس ؾ ج : SQL - : طكذ ٠ ذ ج كم ي ئرج وح ص ج كم ي ج كغحذ ١ س ضكغد أ ض حض ١ ى ١ ح أ ال. AutoCalcFields - ذ ح. SQL طكذ ٠ ذ ئرج ض ١ ثس ؾ ج :Prepared - طكى ف ذد جألعيش 1 أل ل ١ س dataset طكذ ٠ ذ قؿ ج زجوشز ج ع ١ يس : CacheSize - ج كطف ذ ح ف ج زجوشز ىشف ج ض د ج م ١ س جإلفطشجم ١ س غ ذ ح.
- 4 يك : ADOStoredProc :ProcedureName طكذ ٠ ذ جإلؾشجء ج خض ف لح ذز ج ر ١ ح حش. - - 5 يك : ADODataSet /ADOCommand cmdtable cmdtext cmdfile CommandType- : طكذ ٠ ذ جأل ش ج ز ع ١ فز ( cmdstoredproc cmdtabledirect ) cmdunknown ( DataSet ذ جعيس ج xml / adtg فطف ج فحش ج كف س ؽى : cmdfile ضخطحس ئع ج ف ف ج خحف ١ س CommandText أ ذح نغو ذح ١ ١ ) Load From File ئخطش ADODataSet cmdstoredproc ط ح جإلؾشجءجش ج خض س ( ضخطحس ئع جإلؾشجء ج خض ف ج خحف ١ سCommandText ) ط ح ج رحؽش ج ؿذج ي ( ضخطحس ئع ج ؿذ ي ف cmdtabledirect cmdtable ج خحف ١ س ) CommandText SQL ( ط ح ذؿ ج SQL ) ضىطد ؾ ج ؿذ ي ج cmdunknown cmdtext CommandText ف ج خحف ١ س ذ ضشو cmdunknown ى ذطكذ ٠ ذ ج CommandType أفن.أ ٠ ر ج ط ١ ؿس ضى أدجء الق س : cmdtable, cmdtabledirect, cmdopenfile ال ٠ ؿد أ ضغطخذ ذ. ADOCommand
ى حش د ف ذم lam.abdeldjalil محس س ذ ١ ق حش ج طمحس ٠ ش ج ؿضء جأل ي ذ ل ج رش ؿ ١ ٠ فن ض ١ ذ ج طمحس ٠ ش ٠ ذ ٠ ح )ذح ى د ) ى جألغ ر ١ س ٠ فن ق حش ج طمحس ٠ ش أل ح ضمذ جؾ حش طق ١ ج طمحس ٠ ش ذغ س عش س ئعطخذج جقذ و أ أ طمذ ىش ج طغحؤي : ضمحس ٠ ش ق أقغ ح ج حعد أخطحس و ١ ف د ف : ج حتف ذ ل ف محس س ى مذ أفن أؽ ش ذ ١ جألعحع ١ س ق حش ف ج طمحس ٠ ش
Rave reports ) ي يزاح ئفذجس ؿح ( Edition Rave BE Bundled جإلفذجس 7 ئ آخش ئفذجس. XE طىح ذ ١ ثس ج طي ٠ ش د ف. ئ ىح ١ س ؾ ذز ضمحس ٠ ش ف ف جقذ. ئ ىح ١ س ق ف ج طمحس ٠ ش ف ج ف ج ط ف ١ ز. ض قد أ ض حض ١ ى ١ ح ج ذ ف ئذطذجءج. ئقط جت غح ذ ف ج شع Wizard فمو طمحس ٠ ش ج رغ ١ يس.) كشس ج غىشذص ( ط ح جألقذج ظ. pdf, rtf,html, txt ج طقذ ٠ ش ئ : سهبياح ذ ئ ىح ١ س ق ق ج طمحس ٠ ش ف ج ف ج ط ف ١ ز ئال ذ ؽشجء جإلفذجس Rave.) dll رحسز Rave ذغ ش 400 د الس ( ف ج Reports Architect ج ذ ج ف ذ. ج ل ج شع ١ ص.. ال ئفذجس ذ ش ص
Report Builder ي يزاح ٠ ذ ئفذجسجش ج ذ ف 4 ئ د ف.XE طىح ذ ١ ثس ج طي ٠ ش د ف. ج غ سط شفك ؾ ١ جإلفذجسجش. )RAP) Runtime Pascal Environment أ ذؿىص ذحعىحي) كشس ج غىشذص( ئعط حي جألقذجظ ج ذ ؿس إل ؾحء ج طمحس ٠ ش ج مذز. ض غ ١ ك ؾ ١ ذ.. ئ ىح ١ س ق ق ج طمحس ٠ ش Editor( )End-user layout ف ج ف ج ط ف ١ ز سهبياح. Enterprise Server ط فش فمو ف جإلفذجس ٠ RAP. Professional ق ق ج طمحس ٠ ش Editor( )End-user layout ٠ رذأ ئفذجس Server ذ 1099 د الس. أع حس شضف س ئذطذجءج Standard ذ 349 د الس ئ. ال ئفذجس ذ ش ص
Quick Report ي يزاح ٠ ذ ئفذجسجش ج ذ ف 5 ئ د ف. XE طىح ذ ١ ثس ج طي ٠ ش د ف.. % ع ش ج طشل ١ س 25 ع ش ج شخقس ٠ ؾذ end-user report designer. QuickReport Pro خحسؾ QRDesign ؿح ٠ ه جإلفذجس ٠ ى ضن ١ دجخ ج ف ج ط ف ١ ز.. HTML, PDF, XML, CSV, XL, WMF,ASCII ضقذ ٠ ش ج طمحس ٠ ش ؽى : سهبياح ج غ ش ق ج 240 أ س إلفذجس. QuickReport Pro. ال ئفذجس ذ ش ص Fast Report ي يزاح ٠ ذ ج ذ ف 4 ئ. XE. ).*frx.*fr3 net. ٠ ؾذ ئفذجس ذ ش ص ( ع س ضك ٠ ج طمحس ٠ ش vcl ئ ئ ئ ىح ١ س ق ق ج طمحس ٠ ش ف ج ف ج ط ف ١ ز ٠ رذأ ئفذجس قحس ٠ ف ئمحف ١ س. standard د ج ذف
. )Enterprise( web reports ف جإلفذجس. )Enterprise( جألع حس ضرذأ 79 د الس )Basic( ئ 349 د الس. Quick Report ض فش أدجز إلعط ١ شجد ضك ٠ ضمحس ٠ ش Rave reports ج ) PascalScript,C++Script,BasicScript,Jscript كشس ج غىشذص (. Debuger ل. ق ففكحش ج ك جس Dialog-Page ض غ ١ ك ؾ ١ ذ.. ) د ١ ١ ى د ( وح لر د ج ذ ف ٠ أض 'ذح جإلعط ال حش'. Fast Query Builder ج طقذ ٠ ش ئ :, odt pdf, xsl, rtf, html,bmp, tiff, jpeg, gif, csv, txt, mail,. ods سهبياح ج غ سط ط فش ؿح ح ئذطذجءج جإلفذجس )Professional(. ج ؿذ ٠ ذ ف جإلفذجس ج محد FastReport VCL 5 ضكغ ١ حش ف ج كشن. Zip * PDF417 DataMatrix وحت حش ؾذ ٠ ذز زوش ح :*.. Code ج رحسو د. BIFF XLS / PPTX / XLSX / DOCX + ج طقذ ٠ ش ئ :.... Ribbon ج جؾ س ذح
DevEXpress ExpressPrinting System ي يزاح ExpressPrinting System ح طمذ ط ػ ١ ج ر ١ ح حش ح ىرح س ف خق ١ قح طمذ ٠ جؾ س ج غطخذ ئ ج قفكس ج ير س رش ضى ؾ ١ ح Report Link ' ف ج طمش ٠ ش ' ٠ غ ف ExpressPrinting System ذاخشجؼ كط ج طكى حش vcl ػ ExpressQuantumGrid ExpressVerticalGrid ج ذ ٠ ذ ج ى حش زوش ح : TDBImage/ TMemo TPicture/TImage TDBListBox/TListBox TDBMemo/TCheckListBox/TListBox TDBRichEdit TDBListBox/TRichEdit...TDBChart/TStringGrid TListView/ TTreeView/ TChart ٠ فش ه ج مذسز ضمذ ٠ ضمحس ٠ ش غ ١ ش كذ دز ذغش س رشج ؿه ذذ ضق ١ ضمش ٠ ش جقذ!. ج ح ٠ س ذػالظ ىشق قغد جإلخط ١ حس Ribbon Advanced Standard. ٠ ذ ج ذ ف 7 ئ XE ض غ ١ ك ؾ ١ ذ.. سهبياح ص ٠ حدز ق ج MB 5 ف قؿ ج ف ج ط ف ١ ز ج طقذ ٠ ش ئ Pdf فمو. ال ؾ د DBGrid م لحت س ج أ ؽشجء ExpressQuantumGrid Report Link ح ٠ ؿ ه ض ذح TStringGrid ػال. ج غ ش 199 د الس ئرج ل ص ذؾشجت قذز.
ذم STRELiTZIA ع غ س ج ط ح ح 64 ذص Wow64DisableWow64FsRedirection ض ١ ذ: ذ ح أ ج ؾشوس ج ف ١ س ج كح ١ س Embarcadero Technologies أ شش ١ س د ح 64 ذص ذش ؿس X64 Compiler إلفذجسجش ج غطمر ١ س ذ ف ف ج كى س أ رذأ ج رحدسز جالقطىحن ذح ح كح س ف آ ١ حض ىشق. زج فن ص أ جىش ذ ل جأل ػ س ؽى ع غ س محالش ضير ١ م ١ س ٠ ط ؾش ح ققشج ذح غس ج شذ ١ س ف ئفذجسجش ؿ س طذ د ف شخ ذح غس جال ؿ ١ ض ٠ س ف ذ س Slug Analysis.Lab م ج مح س: ٠ ط ط ح 64 ذص ذ ش س ور ١ شز ف ج ط ح ضير ١ محش 64 ذص 32 ذص ق ١ ع ذش ؽشوس ح ٠ ىش ع فش ئ ضمغ ١ عؿ ج ح ؿ ذجض ئ لغ ١ ج مغ جأل ي جألعحع ٠ خ ضير ١ محض جالفطشجم ١ س ذ ح ج ح 64 ذص ج مغ ج ػح و شق س ج طمح ١ س ٠ كط ضير ١ محش 32 ذص. ٠ ط ح ؿس ج شعحت ض ف ١ ز جأل ج ش ذ ذ ج فك ج ط شف ١ س ج طير ١ ك ج ز ٠ ط ضؾغ ١ ػال رش ؽ ضير ١ م ١ ط حغ ١ ف جأل ج ش جأل ي 32 ذص ج ػح 64 ذص م ذطؾغ ١ ح ح 64 ذص ذ ذ جعطذ حء ذ ٠ ش ج ح ع ف الق أ ج ح ضق ١ ف طير ١ م ١ جأل ي أمحف ئ ١ 32 ج ػح ضشو قح. ع ف ؿذ فظ ج طق ١ ف ف قح س ضير ١ ك 32 ذص أسجد أ ٠ ط ح ؿ ذ ج ح %SystemRoot%\System32 ج ح ٠ م ذ Redirection ئ حدز ض ؾ ١ ذقفس جفطشجم ١ س غحس ئ غحس ضير ١ محش 32 ذص %SystemRoot%\SysWOW64 قط أ وطر ح ج غحس ذذ طغ ١ شجش ج ح ذقفس فش ٠ كس ػ : C:\Windows\System32 ع ف ٠ ط ض ؾ ١ ح ئ زج ج غحس ج زو س عحذمح SysWOW64: C:\Windows\
ج غرد ج ط ١ طفحد جألخيحء ج كط س وح غ ١ ش ر ه ىر ح ؽشوس ح ٠ ىش ع فص أ يص خ ١ حس ض ي ١ ضؾغ ١ ئ حدز ج ط ؾ ١ رش ؽ قغد ح ٠ ش ٠ ذ ج ؿحص س ضكطحؼ ئ ج ط ح زج ج خ ١ حس. العطضجدز جلطرحط ل MSDN Wow64DisableWow64FsRedirection Function Disables file system redirection for the calling thread. File system redirection is enabled by default. Syntax BOOL WINAPI Wow64DisableWow64FsRedirection( out PVOID *OldValue ); Parameters OldValue [out] The WOW64 file system redirection value. The system uses this parameter to store information necessary to revert (reenable) file system redirection. Note This value is for system use only. To avoid unpredictable behavior, do not modify this value in any way. Return Value If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks This function is useful for 32-bit applications that want to gain access to the native system32 directory. By default, WOW64 file system redirection is enabled. The Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection function pairing is a replacement for the functionality of the Wow64EnableWow64FsRedirection function. To restore file system redirection, call the Wow64RevertWow64FsRedirection function. Every successful call to the Wow64DisableWow64FsRedirection function must have a matching call to the Wow64RevertWow64FsRedirection function. This will ensure redirection is re-enabled and frees associated system resources. Note The Wow64DisableWow64FsRedirection function affects all file operations performed by the current thread, which can have unintended consequences if file system redirection is disabled for any length of time. For example, DLL loading depends on file system redirection, so disabling file system redirection will cause DLL loading to fail. Also, many feature implementations use delayed loading and will fail while redirection is disabled. The failure state of the initial delay-load operation is persisted, so any subsequent use of the delay-load function will fail even after file system redirection is re-enabled. To avoid these problems, disable file system redirection immediately before calls to specific file I/O functions (such as CreateFile) that must not be redirected, and re-enable file system redirection immediately afterward using Wow64RevertWow64FsRedirection. Disabling file system redirection affects only operations made by the current thread. Some functions, such as CreateProcessAsUser, do their work on another thread, which is not affected by the state of file system redirection in the calling thread. Examples The following example uses Wow64DisableWow64FsRedirection to disable file system redirection so that a 32-bit application that is running under WOW64 can open the 64-bit version of Notepad.exe in %SystemRoot%\System32 instead of being redirected to the 32-bit version in %SystemRoot%\SysWOW64.
#define _WIN32_WINNT 0x0501 #include <Windows.h> void main() { HANDLE hfile = INVALID_HANDLE_VALUE; PVOID OldValue = NULL; // Disable redirection immediately prior to the native API // function call. if( Wow64DisableWow64FsRedirection(&OldValue) ) { // Any function calls in this block of code should be as concise // and as simple as possible to avoid unintended results. hfile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); } // Immediately re-enable redirection. Note that any resources // associated with OldValue are cleaned up by this call. if ( FALSE == Wow64RevertWow64FsRedirection(OldValue) ) { // Failure to re-enable redirection should be considered // a criticial failure and execution aborted. return; } } // The handle, if valid, now can be used as usual, and without // leaving redirection disabled. if( INVALID_HANDLE_VALUE!= hfile ) { // Use the file handle } ػحي ضير ١ م :
procedure TWinMain.CopyBtnClick(Sender: TObject); var Wow64DisableWow64FsRedirection: function(var OldValue: Pointer): BOOL; stdcall; Wow64RevertWow64FsRedirection: function(oldvalue: Pointer): BOOL; stdcall; OldValue: Pointer; begin try OldValue := nil; CopyFile(PChar('C:\Windows\System32\Notepad.exe'), PChar('C:\Test\Notepad32.exe'), TRUE); Wow64DisableWow64FsRedirection := GetProcAddress(GetModuleHandle(kernel32), 'Wow64DisableWow64FsRedirection'); Wow64RevertWow64FsRedirection := GetProcAddress(GetModuleHandle(kernel32), 'Wow64RevertWow64FsRedirection'); if Wow64DisableWow64FsRedirection(OldValue) then begin CopyFile(PChar('C:\Windows\System32\Notepad.exe'), PChar('C:\Test\Notepad64.exe'), TRUE); MessageBox(Handle, PChar('Wow64 file system redirection [Disabled sucessfully]'), PChar('INFORMATION'), MB_ICONINFORMATION); end else begin MessageBox(Handle, PChar('Unable to disable Wow64 file system redirection'), PChar('ERROR'), MB_ICONERROR); Exit; end; if Wow64RevertWow64FsRedirection(OldValue) then MessageBox(Handle, PChar('Wow64 file system redirection [Enabled sucessfully]'), PChar('INFORMATION'), MB_ICONINFORMATION) else MessageBox(Handle, PChar('Unable to Enable Wow64 file system redirection'), PChar('ERROR'), MB_ICONERROR); except (* nothing *) end; end;
التعليق على المثال: ج ؿضء ج ذح جألخنش ٠ خ ض ش ٠ ف دج ط ١ ضقذس ح ىطرس Kernel32.dll ج ؾ دض ١ فمو ح 64 ذص ىش ٠ مس ج كق ي ج ح ج ىطرس. ج ؿضء ج ذح ج ر ٠ خ جعطذ حء دج س ج ط ي ١ ئ حدز ج طف ١. ج ؿضء ج ذح جألصسق ٠ خ ١ س ج غخ لر ذ ذ ح ؿس خحف ١ س ئ حدز ج ط ؾ ١. ج طير ١ ك ٠ م ذ كح س غخ ف notepad.exe ؿ ذ ج ح C:\Windows\System32 ئ ؿ ذ C:\Test ذذ ض ي ١ ئ حدز ج ط ؾ ١ ف ١ م ج ح ذط ؾ ١ ج غحس ئ ج ؿ ذ ج خحؿ ذطير ١ محش 32 ذص C:\Windows\ SysWOW64 ف كق ف 32 ذص غ ٠ ى ج طير ١ ك ج ١ س ذط ي ١ ئ حدز ج ط ؾ ١. الق أ دج س ض ي ١ ئ حدز ج ط ؾ ١ ضي د طغ ١ ش- خشؼ - ه ٠ ط ف ١ قف قح س ج ط ؾ ١ لر ض ي ١ ح ٠ ط ض ش ٠ ش ز جألخ ١ شز - ج م ١ س ج شؾ س - ف ١ ح ذ ذ ذج س ضف ١ ئ حدز ج ط ؾ ١.
٠ ط غخ ج ف ؾذ ٠ ذ ف كق ف غح ى ز ج شز ف 64 ذص ج غحس جالفطشجم ح. C:\Windows\System32 ف جألخ ١ ش ٠ م ج طير ١ ك ذطف ١ خحف ١ س ئ حدز ج ط ؾ ١. الق أ ج طغ ١ ش- ج خشؼ - ج غحذك ج ز ض قف ٠ ط ض ش ٠ ش ذج س ضف ١ ئ حدز ج ط ؾ ١. ٠ ؿد أ طر أ ز ج ١ س س ؾذج ى ال طغرد ف أخيحء ضؿ ج ح غ ١ ش غطمش غ ١ ش دل ١ ك ف ضغ ١١ ش ضؾغ ١ ضير ١ محش 32 ذص 64 ذص. حضؽ ١ س ج غخ الق ج ق س ج طح ١ س:
الق س ح س: ئ حدز ج ط ؾ ١ ٠ خ فمو ضير ١ محش 32 ذص ال ٠ خ ضير ١ محش 64 ذص. ج فحش ج قذس ٠ س شفمس ج ف ج ط ف ١ ز طؿشذس ال ض غ أخ ج ططر ج ٠ ؿد ١ ه ضؾغ ١ ج ف ج ط ف ١ ز ف ذ ١ ثس 64 ذص أ ح ذ ح ٠ خ ج فحش ج قذس ٠ س ف ١ ى ه فطك ح ئ حدز ذ حت ح ذ ١ ثس 32 ذص د ؾحو. ذح ط ف ١ ك ئ ؽحء جهلل ف ج محي ج محد ج غ غ س ع ف طيشق ئ ؽحء جهلل ئ ؾ ج طير ١ ك ٠ ط شف ج ر ١ ثس ج ط ٠ ؾطغ ف ١ ح 32 ذص أ 64 ذص ج ط حدج ح ضقذس ىطرحش ج ح د جي.
ى حش د ف - ذم خانذ انشقش ي انزس انح اس )ض ر ١ : ز ج مح س ضؿ ذ ١ ج ؿذ ج ضي ٠ ؿد أ ضمشأ فك ر ه( ال أ حرج ف د ف و ح سأ ٠ ص ى ج ضس TButton ضخيش ذح ف سز - جهلل- ج ك حس ضطذج ف خ ١ ط أ ؾ ج ؾر ذ ١ ح. أوش ى يالحظت ي ت لر أ غطشع أ د أ أؽذد ميس ح س ؾذج : ئ أؽذ ج حط ضمذ ٠ شج جقطشج ح ئ ؿحذح ذ زج ج خ ق أع ف ف مح ط ز ذأ ج غخش ٠ س أ جالعط ضجء ضقش ٠ كح أ ض ١ كح ز ه ى جمك ١ ز ج رذج ٠ س. ىر ح ئقطشج ضمذ ٠ ش ئ ؿحذ زج ٠ غكد جي Button أ ٠ نح. غطأ ف م ح حرج ر ه.. أ ح أ ؾ ج ؾرر ذ ١ جي Button ج ك حس... ذ ح ٠ رذأ ج رش ؽ ؾش ح ؾذ ٠ ذج ف د ف ض ش أ ح حفزز ج رؼ Form1 فا أ ي ؽ ء ٠ م ذ م Button1 ج ؾحؽس غ ضه ضه ٠ رحؽش Double Click ف وطحذس ج ط ١ حش. حرج Button أل جأللشخ ١ ذ ج رش ؽ ال ض ؾذ ذ ض م ١ ذجش ئمحف ١ س ورحل ج طكى حش فغ ١ ش ج كؿ ال ٠ أخز ق ١ ضج ف ج ؾحؽس ذ ج طؾغ ١ ٠ ىف ١ خضز ف خحفشض.. ألقذ click ١ ح ف ١ م ذط ف ١ ز ج ط ١ ف ج ز ٠ ك ح ذ غ قؿ.
أ ٠ نح ج ضج ٠ ح ج ط ٠ مذ ح جي Button ج ؿ ١ س ج ط ١ ١ س ج ط ذ ح ٠ ى رش ؽ أ ٠ ض ١ حض ج رش ؿ ١ س ٠ مغ ح ئ أؾضجء ش س ٠ ى ئدجسض ح ج غ ١ يشز ١ ح ذغ س ف و ١ فس أ ١ ضز ؾذ ٠ س ٠ ش ٠ ذ أ ٠ ن ١ ف ح ج رش ؽ رش ح ؿ ح ١ ئال أ ٠ ؿذ قن ١ شز.. ف ج شز أخش.. ألقذ رؼ ؽحؽس ف ١ ق ١ ض ذغ ١ و ٠ ن ف ١ جي Button غ double ٠ نخ click ف ١ ح أسجد و د. ئرج أسجد ج رش ؽ أ ٠ ط مد يم ١ س ذش ح ؿ أ أ ٠ شجؾ أ ٠ ق ف ١ فس ح ف ١ ح ١ ئال أ ٠ ز د رحؽشز ئ Button رجش ج اللس ٠ رؼ ضكط. ج ىػ ١ ش ج رش ؿ ١ ٠ ط ذ وأفن أ غد أعش شو خ طك ١ ج ط ١ ف دجخ... و أذيح ضك دجخ ح أو جد ٠ ق ذج ح ؾشجش ذ ج ثحش ج ط ١ حش ج رش ؿ ١ س. و أذيح ضك دجخ ح أو جد فق ١ س ؾ ش ٠ س رش ح ؽ. جي Button ي ١ ع ج م ١ حد ٠ طك ؾحق ج ى د غم ال ٠ ؾى ح ق ص ١. ح ؾحء ج ؾر. زج جي Button ال ٠ ك ح ٠ غطكك ح س ؾ ١ ذز. TButton أ ؾ س ج محت ١ ذش ح ؽ د ف ف ز جإلفذجس جأل ي د ف ٠ ؿش ضغ ١١ ش أ ضي ٠ ش ج ئ ىح ١ س ئمحفس ف سز ح غخس د ف 2009. ؾ س ج رش ؿ ١ ق ١ رس فرشغ ح ٠ طك جي Button أ رحء ذشغ مخح س ج ط ١ ف ج ىط خ دجخ فا قنشز ج رش ؽ ال ٠ طى ف حء ئ يحء ئع كطش ١ ٠ ك ذ ح ٠ طك ف ؿذ ٠ رم جالع جالفطشجم ج ز ٠ أض ذ و ح وأ أد ؽأ ح أ ٠ غ ف ؿذ أع حء أذيح : Button1 ج ػح Button2 غ Button3 ىزج ق حس 1 ق حس 2 ق حس 3.
أ ح ؾ س أدذ ١ حش ج رش ؿ ١ حش ضم ١ حض ح ؿ ١ حض ح فا جي ٠ ط Button ضؿح ض ح ح ذشغ ك ضأغ ١ ش ض ع ؽ ر ١ ط وح ج جؾد ئفشجد ؿ ١ س أ ف ذش ؿ خحؿ ذ ٠ ى أ ٠ ى ئع : Programming Button Oriented ئخطقحسج BOP أ ج ك ج ضس رش ؿس أ ج رش ؿس ج ضس ٠ س أ ج رش ؿس ج ر ي ١ س. ٠ غططر زج ج طك ١ ذح ك ج ري ج طق ١ ج ري ىزج. ئرج عأ ط سأ ٠ : فأ ح أفن ضغ ١ س ز ج ؿ ١ س أ زج ج ف ذاع ر دال س أوػش ٠ غط ضشجغ ح ج ؾ ر ج ش ٠ ك ج طغ ١ س : )خ ؼ ٠ ح رحسن ذك حسن(. ح ض ؾذ ؿ ١ س ذطغ ١ س ؽر ١ س : Coding Cowboy أ ج رش ؿس ذيش ٠ مس س حز ج رمش ى و ح ضالق ضغ ١ ط أفن أوػش دال س. http://en.wikipedia.org/wiki/cowboy_coding ظا شة ال Button ح شز ج ط حد جي Button أ ذحألدق ئؾشجت ١ س ج كذظ ج خحؿ ذح مش جي Button ح شز طؾشز ذ أغ د ج رش ؿ ١. ج رطذت ج حسع ج كطشف. ح شز مر س رذت ١ ح خحفس ف ذ ١ ثس ذش ؿ ١ س شت ١ س عش ٠ س ور ١ ثس ضي ٠ ش د ف فا وطحذس ج ط ١ حش ج رش ؿ ١ س دجخ قذظ ج مش ج ضس ؽ ء ىر ١ ذذ ٠ فح رش ؽ ٠ طى ف حء ئ ؾحء ضغ ١ س ئؾشجت ١ س ؾذ ٠ ذز حء وطحذس أ ش جإلعطذ حء ح ذ فمو ج مش ج ضد ؼ ج ضس فطم د ف ض محت ١ ح ذا ؾحء جإلؾشجت ١ س أ ش جالعطذ حء ٠ ط أ ٠ نح آ ١ ح ذ ؿشد ج نغو ج ضس ذ ذ ضؾغ ١ ج رش ح ؽ. ج رطذت ٠ ؿذ جأل ش ط ح ع ال ف ج جل ٠ فش ذ ٠ لص ور ١ ش ٠ غطغ ف ج ط ش ف ذحل جق ج طي ٠ ش ج رش ؿس. أ ٠ نح ج حسع ر ج خرشز ج كطشف ٠ ؿذ جأل ش ع ال رحؽشج ئرج أسجد ج كطشف ضؿشذس فىشز ح أ ئ ذجد رؼ أ ك ؾى س ذش ؿ ١ س فا أع خ ج ىطحذس دجخ ج ضس أ ٠ نح أ ش ىر ١ مر ي.
.. أ ٠ نح كذ ح لذ ٠ ى جأل ش مر ال ئرج وح ج رش ح ؽ فغ ١ شج خف ١ فح ذؾحؽس جقذز أ جغ طح. ى غ ١ ش ر ه فا جأل ش ال ٠ ذ مر ال. ج رطذب ذ ذ أخز فىشز جإلىحس ج ح رش ؿس ئ ذجد ج طير ١ محش ٠ ؿد أ ٠ طخ ز ج حدز أ ٠ م ض ١ حض ج رش ؿ ١ س ٠ ص ح ف ئؾشجت ١ حش خحفس. ج كطشف ذ ذ أ ٠ خطرش ض ١ حض ٠ طأوذ فالق ١ ط ح ١ أ ٠ م ف سج ز ج ط ١ حش ئ ئؾشجت ١ س خحفس. ال ٠ طىحع زج جأل ش. ج ضس أ جي Button وأدجز أد جش جؾ س جإلعطخذج ٠ ؿد أ الضخط ف ١ فط غ ١ ش جألصسجس ج ط ؿذ ح ف ك ١ ي ح ج حػ. صس ئ حسز ج قرح ػال ١ فط فمو ئ يحء جإلؽحسز أ جأل ش قرح ج ز ٠ م ذح ح ج ف ١ س ١ س جإل حسز. صس ذذء ضؾ ١ غ ج طى ١١ ف ٠ ي جأل ش ؿ حص ج طى ١١ ف ١ م ذ أ أ ج ضس ف قذ رجض ال ٠ م ذ ح جإل حسز و ح أ ال ٠ م ذ ح ج طى ١١ ف. قذ ٠ ػ ح ج غحذك جي ٠ غكد Button أ ٠ نح ذحل أ ج حفش جؾ س جالعطخذج أ ج جألقذجظ ج ط ضغطمر ح ػ CheckBox ListBox Menu غ ١ ش ح.
يا را بعذ ال Button ج ٢ ذ ذ أ جضفم ح مش سز ج ط حد ئ ؾحء جإلؾشجت ١ حش procedure( )function, م ض ١ حض ح ج رش ؿ ١ س ف ١ ح طم ئ ج كذ ٠ ع جإلؾشجت ١ حش. ف ذذج ٠ حض ج رش ؿ ١ س قك فذ ٠ ك أعطحر ذأ أ ٠ س ئؾشجت ١ س ضرش ؿ ح ٠ ؿد أ ال ضطؿح ص ض ١ حض ح ج رش ؿ ١ س عر ض ١ حش ذأ ج م ج رؾش ألق ذد ج ي ١ حش ٠ ى أ ٠ طق س أ ٠ ط ح ف لص جقذ عر ال أوػش. ج فىشز ١ ظ أ طض ذ زج ج ذد ذح رو ع ١ ى جأل ش ف رح وػ ١ ش ح ) ى ١ ظ غطك ١ ال( ج فىشز أ ضى ى ي جإلؾشجت ١ حش أفغش ح ٠ ى ضكط أل ح ٠ ى ي ١ حش. ف ال ذح ير وأ ق ١ كس ضى أورش غط ج فا أ ذ ح ج ق ١ كس ج غح ١ س أ طشف: مذ و ص ق... أ ط ض شف. مذ ح ١ ص الص ص أ ح ط ١ ؿس ذ أخز ذ ز ج ق ١ كس ف ج ىػ ١ ش جألق ١ ح ئرج شش ؾى س ف ئقذ ذشج ؿ أقح ي أ أضطر ح إلفالق ح أ ض ذ ٠ ح أؾذ أ ج يمس ج ط ذ ح ج س غح رح ح ضى ف ئؾشجت ١ س دع س ى ٠ س ذ ح أقح ي أ أقذد ذح رو أ ٠ ى ج خيأ أ ج طشو ١ رس ج يم ١ س ج ط أدش ئ ١ أؾذ فغ شضرىح قحتشج أ ح ئؾشجت ١ س ى ٠ س ش ٠ نس ضطمذ ح فف ج طغ ١ شجش variables ضض ٠ ذ ج ػالغ ١ غ محى دع س و مي ال ٠ خ ق محش طذجخ س nested loops ؾ ؽشى ١ س if then و جقذز ح ضإد ألخش ح ١ ه ض ١ حش exit break ج ط ضطىشس ضط ص ذ ى ي جإلؾشجت ١ س. ج ط ١ ؿس أ لطح ور ١ شج أعطغشل كح س ف ح ضم ذ جإلؾشجت ١ س لطح أورش شفس ىح ج س. أق ١ ح ح ج س ضى ضحف س و غ ١ ح ال س أ جعط حي وحت object ض ضكش ٠ ش ى ىػشز جألعيش ضؾحذى ح ض ؿض ج ١ سؤ ٠ س ز ج س. ى ي جإلؾشجت ١ حش دعح ط ح أورش ىح ج ػغشجش ج ف ج رشج ؽ. و ح أ ح ضؾى أوػش ج مرحش أ ح ض ذ ٠ ج رش ح ؽ أ ضي ٠ ش أ م ذ ١ ثس ئ أخش أ ضشؾ ط غس ذش ؿ ١ س ئ غس غح ١ س. ذاخطقحس: ى ي جإلؾشجت ١ حش أورش حتك ف عر ١ ئدجسز ش س ى د.
فىش ف ج رش ح ؽ أ ؿ س ج كح ٠ حش أ ج ق حد ٠ ك و ئؾشجت ١ س ض ػ ف ذ لح ج ٠ ح أفن أ ٠ ى ذ ٠ ه ؾش ٠ ف ذ لح فغ ١ شج ذ ط ح ي ق ج ١ ذ ج جقذز و ف ذ ق ذ جقذ ج جد أ أ ٠ ى ذ ٠ ه غالغس ف حد ٠ ك ورحس و جقذ ح كؾ س ف ١ جد أ ج خط فس ض ؿض ق ذ فغه. ج ق حد ٠ ك ج قغ ١ شز ح وح ذد ح ع س ج ح س ٠ ى ه ض ١ ح ئدجسض ح ض ص ٠ كط ٠ حض ح ذح ى ١ ف ١ س ج ط ضش ٠ ذ ح. انخحكى في ط ل اإلجشائيت.. م أيش س م أ طشف ذأ ج طكى ف ى ي جإلؾشجت ١ س أ ش ف د ف ج رذج ٠ س. ذ ح ضرذأ ذح رش ؿس ض ه ج فىشز ج ؿ س ضغ ١ يش ١ ه ط ف ١ ز ح ضغحس ض ١ شز ج ى د ض ه ج فس ج شض ؾس إلمحفس خحف ١ س ؾذ ٠ ذز أ ضؿشذس غحس آخش غ ضؾغ ١ ج رش ح ؽ شفس ج ط ١ ؿس ج دز ى د نرو ذ ل جأل س أ ئمحفس جعطػ حء أ شفس حرج م ذىزج ذذال وزج و زج ٠ ؿ ج م ذ ١ ذج و ج ر ذ جال ط ح ذط ١ ج ى د أ ضرغ ١ ي أ ضمغ ١ ئ ئؾشجت ١ حش. أ ص عو شوس كطذ س أفحذ ه ضىحد ضمذ ؽشسج ال لص ذ ٠ ه طفى ١ ش ف أ س ض ١ ١ س ض غ ١ م ١ س س. ضغطشع جإلؾشجت ١ س ف ج ي ي و ض ١ س ؾذ ٠ ذز ض ذ ؾشز غ ١ ش ح خحفس ئرج و ص ذقذد ذش ؿس رجش اللس ذح شع ١ حش Graphics أ ذح نرو سف ج ىفحءز optimization فا جألعيش أ ح ه ضطذج ضط ج ذ قط ضق ١ ف جإلؾشجت ١ س ذكؿ ز ج مح س. ى ذ ذ ج ط حء ج شوس جى ث ح ه طحتؽ لر أ ض طم ئ م آخش قح ي أ ض ١ ذ ج ش ف جإلؾشجت ١ س ل ذطك ١ ح ضمغ ١ ح ئ ئؾشجت ١ حش أفغش فأفغش. ج لص ضؿذ فغه ض محت ١ ح ضفىش ذيش ٠ مس خط فس ذ وطحذس جإلؾشجت ١ حش ذذ حء ه ٠ م م ه ض محت ١ ح ذاؾرحسن ذ حء ئؾشجت ١ حش فف ١ شز خف ١ فس ز ج رذج ٠ س.
أفضم ان اسساث انبشيجيت طم ئ ذ ل أفن ج حسعحش ج م ج ذ ذ وطحذس جإلؾشجت ١ حش: عذد أقم ي األسطش قذد ذدج ١ ح جألعيش ف جإلؾشجت ١ س ج جقذز الضطؿح ص ج ر ل ٠ م ي خ غ عيشج ج ر ل ٠ م ي ؾش آخش ٠ فن خ غس ؾش عيشج. ج أ ٠ ى ذد جألعيش أل ح ٠ ى ضضج ٠ ذ حسجضه ج رش ؿ ١ س ض د م ه زج ج م ١ ذ: ل ذطم ١ ذد جألعيش و شز. أسطش قصيشة ال ضؿ عيش ج ط ١ حش ى ٠ ال. حن خو د ٠ غحس ج كشس قح ي أ ال ضطؿح ص. يسخ يا كحذ أقصى ال ضؿ ج ط ١ حش ضط ك ألوػش غط ١٠ وكذ ألق. ج طذجخ س ج ط ضرذ ػ ج غ ح ج كحدز: ضؿ د ج ك محش ج ؿ ج ؾشى ١ س while do while do while do while do while do do WhatEverYouWantToDo end end end end end if if if if do something end end end end
انخقهيم ي انخعهيقاث ج ط ١ محش Comments ج الق حش ج ط ١ حش ج رش ؿ ١ س أ ش ي خ ئرج وح ص ج ط ١ س ٠ ق د ف ح أ ف ط ح ى جألعحط حرج ىطد ض ١ حش ف رس ج ف و ح وح ص ج ط ١ حش ع س جمكس و ح وح ر ه أفن ذح طح غطغ ج ط ١ محش. جإلؾشجت ١ س ج ط ال ضكطحؼ ئ ض ١ ك أفن ض ه ج ط ضكطحؾ ح. ال حعيذ فس انك د يشحي ئرج ؾذش فغه ض غخ ض ١ حش ئؾشجت ١ س أخش ض ١ ذ ح ف زج إؽش أل ض ١ ذ ج طفى ١ ش ف ج ط ١ حش ج غ خس أ ضن ح ف ئؾشجت ١ س خحفس ذ ح. قى بح سبت اإلجشائيت في عقهك أ ال لر أ ضم ذحأل ش Compile رش ح ؿه طأوذ عال س ج ى د ج ىط خ قح ي أ ضم ذ ز ج ١ س ف م ه أ ال. سجؾ ذرقشن ج ط ١ حش ج ىط ذس ضطر ح عيشج عيشج قح ي أ ضىطؾف ج ذ فغه لر أ ٠ ىطؾف ح جي. compiler ج حسعس ج ذجت س ز ج حدز ع ١ ط م ه و ١ ف ٠ طؿ د ىح جألخيحء ج ط حدز ح ضم ذ ح. انخس يت ان اضحت انقصيشة ضغ ١ س جإلؾشجت ١ س ٠ ؿد أ ٠ ى دجال ح ضم ذ أ ال ٠ ى ى ٠ ال أ ال ٠ ى خطقشج ف قشف ١ أ غالظ. أفن ج طغ ١ حش ح وح ٠ ك و س جقذز أ و ط ١ وكذ ألق. ٠ م ي ج خرشجء ئرج وح ص ج طغ ١ س خطقشز ؾذج أ ى ٠ س ؾذج فمذ ٠ زج أ جالؾشجت ١ س ضم ذ ذز أ س ح ٠ ق د ١ ه ئ ٠ ؿحد ئع جمف ح ذى س أ جغ ط ١. زج ٠ م د ح ئ ج مح ذز ج س ج طح ١ س. ي ت احذة نكم إجشائيت جإلؾشجت ١ س ٠ ؿد أ ضم ذ س جقذز فمو ١ ظ أوػش جقذز. ئرج ال ق ص أ ج ط ١ حش جعطشع ص فمذ ٠ زج أ ح أخش ذذأش ذح س ؾد ئفشجد ئؾشجت ١ س فق س خحفس ذ ح.
ز سذ ح أ حسعس ٠ ؿد أ ض ط ه حسض ح. ج ط عشد ح ح ضطكمك ض محت ١ ح. ئرج قممص زج جأل ش فغطؿذ أ ذحل ج محه ان شاحعت انخ قيح ذ ١ و ق ١ آخش ل ذ شجؾ س ج ى د ىرك ١ حعرك ل ج ذ أؾ ف و شز أوػش ذغحىس م قح.
ج رش ؿس ذح ك ج ىحت ف د ف - ذم خانذ انشقش ي خط ة خط ة ج ؿضء ج ػح جف ح ذذأ ح ؾ الش ف ج مح س ج غحذمس ط شف أوػش فح ١ ج ك ىحت. انج نت انخايست ع ف م ج ٢ ذا ؾحء ف ف ١ س class ؾذ ٠ ذز ى ز ج شز عطى ؾطمس ف ف ١ س TPerson ج ق ف ١ س ج ؿذ ٠ ذز ش ٠ ذ ذ ح ض ػ ١ فثس ١ س جألفشجد فثس ج ف ١ ع غ ج ق ف ١ س ج ؿذ ٠ ذز TEmployee ع م ذط ش ٠ ف ز ج ق ف ١ س ف قذز uoop ضكص ض ش ٠ ف ف ف ١ س TPerson ر ه وح طح : TPerson = class(tobject) ------- ------- end; TEmployee = class(tperson);
و ح جمف أ ال ل ح فمو ذط ش ٠ ف ج ق ف ١ س ج ؿذ ٠ ذز ذ ١ ح أ ح ؾطمس. TPerson ن ف ١ ح أ قش آخش. ؿشخ ج ق ف ١ س TEmployee ألطش ح ئ ؾحء صس آخش Button2 طؿشذس ز ج ق ف ١ س. عطى ج ط ١ حش يحذمس ض ح ح ط ه ج ط دجخ Button1 ج طغ ١١ ش ج ق ١ ذ جعطخذج TEmployee ذذال TPerson ضغ ١ س ج طغ ١ ش ذاع Emp وح طح : procedure TForm1.Button2Click(Sender: TObject); var Emp: TEmployee; begin Emp := TEmployee.Create; try Emp.FirstName := 'Ahmad'; Emp.LastName := 'Hamza'; Emp.BirthDate := EncodeDate(1980, 3, 15); ShowPerson(Emp); finally Emp.Free; end; end; م ذطؿشذس ج رش ح ؽ ؾغ ج ضس جأل ي. Button2 ع ش أ ج ط ١ ؿس يحذمس ط ١ ؿس ج ضس حرج زج ج طيحذك ذشغ أ ض ش ٠ ف ج ق ف ١ س TEmployee ؾحء خح ١ ح أ ٠ س حفش أ ئؾشجت ١ حش. أل ج ق ف ١ س TEmployee ؾطمس ف ف ١ س TPerson ذح طح عطشظ ؾ ١ ففحض ح خقحتق ح. زج ٠ ى أل شف أ طغ ١ ش ج ق ف ١ س ج ؿذ ٠ ذ )ج طغ ١ ش Emp ف ػح ح( أ ٠ فز خقحت ج ق ف ١ س جألف ػ FirstNam أ.GetAge
جأل ش ج ٢ خش ج فص ش أ ح ل ح ذ ذجء فظ جإلؾشجت ١ س ShowPerson فرشغ أ ز جإلؾشجت ١ س ف ض ش ٠ ف ح ضغطمر ي TPerson ئال أ ح ض ح ذ ح شس ح ح ي TEmployee حرج أل ذح غرس ح ٠ كط TEmployee م ح ج.TPerson ض ٠ ذ جالعطىؾحف ٠ ى ح صس ج ى د ج طح ف ذذج ٠ س ض ف ١ ز جإلؾشجت ١ س: procedure TForm1.ShowPerson(P: TPerson); begin if P is TPerson then Caption := 'Person'; if P is TEmployee then Caption := Caption + ' Employee'; Caption := Caption + ' ' + P.ClassName;.... غطذ جالؾشجت ١ س ذ جعيس Button1 غ ذ جعيس Button2 الق غ غط طؽ ج فشق. ئمحفس خحف ١ س ؾذ ٠ ذز ن ١ ف ج ٢ خحف ١ س property ؾذ ٠ ذز ق ف ١ س Salary وح طح : TEmployee ض ػ ج شضد. ج خحف ١ س ئع ح TEmployee = class(tperson) private FSalary: integer; procedure SetSalary(const Value: integer); public property Salary: integer read FSalary write SetSalary; end; الق أ ز ج خحف ١ س ج ؿ ١ ذز ضخ فمو ج ق ف ١ س TEmployee ال اللس ح ذح ق ف ١ س TPerson ذح سجغس غ ضض ٠ ذ TEmployee ذ ٠ ح ؾ ١ ففحش جألف ١ س TPerson أ أ ١ ح ج خحف ١ س.Salary
ش ج ٢ و ١ ف طفح ز ج خحف ١ س ج ؿذ ٠ ذز. خز ج خحفس غ ذ ح ل ١ س: ف ج كذظ ج خحؿ ذح ضس Button2 غطخذ procedure TForm1.Button2Click(Sender: TObject);.............. Emp.LastName := 'Hamza'; Emp.BirthDate := EncodeDate(1980, 3, 15); Emp.Salary := 1200; ShowPerson(Emp);.............. end; غ ف جإلؾشجت ١ س جألخش. ShowPerson كح ي ئ حس ل ١ س ز ج خحف ١ س ج ؾحؽس م ج م ١ طزو ١ ش ض ١ حش جإل حس ف ئؾشجت ١ س ShowPerson وح طح : Canvas.TextOut(10, 10, P.FirstName); Canvas.TextOut(10, 30, P.LastName); Canvas.TextOut(10, 50, DateToStr(P.BirthDate)); Canvas.TextOut(10, 80, P.GetFullName); Canvas.TextOut(10, 100, IntToStr(P.Age)); ج ٢ أمف ح ج ط ١ س : Canvas.TextOut(10, 120, IntToStr(P.Salary); فا ج طشؾ ع ١ ي ١ ح سعح س خيأ ذأ Salary غ ١ ش شفس identifier).(undeclared ح ٠ مقذ ج خحف ١ س Salary ذ ح ؾحءش ذح غ ١ حق ج طغ ١ ش P أ.P.Salary ف حرج فا P ج ق ف ١ س TPerson ج ط ف جألف ال ضك ج خحف ١ س.Salary ئرج حرج جفمص جإلؾشجت ١ س جعطمرحي ج م ١ س ف ج ي P سغ أ ج م ١ س TEmployee و ح روش ح عحذمح: أل ذح غرس ح فا ٠ كط TEmployee م ح ج. TPerson
ئرج ج طشؾ جفك ئعطمرحي ل ١ س TEmployee ح دج زج ج ؾطك TPerson ى ٠ جفك حدجز ج خحف ١ س Salary ذح غ ١ حق P أل P شف ف جألف أ TPerson ج ز ال ٠ شف ز ج خحف ١ س. ح ج ك ج ك ذحعطخذج ضم ١ س ج قد أ ج م رس.Casting أ قد ج TPerson ف لح د TEmployee وح طح : TEmployee(P).Salary أ أ ح رظ P غ ١ حخ.TEmployee ح أؾرش ح ج طشؾ أ ٠ ح P أ TEmployee أل TEmployee ؾطك TPerson فا ال ٠ ح أ ٠ كطن P ج ط. TPerson ز ه ع ذي ض ١ س جإل حس طى وح طح : Canvas.TextOut(10, 120, IntToStr(TEmployee(P).Salary)); أل ج خحف ١ س Salary ؾ دز فمو ف ج TEmployee م ذامحفس ؾ س ؽشى ١ س ضطأوذ أ ل ١ س. TEmployee P if P is TEmployee then Canvas.TextOut(10, 120, IntToStr(TEmployee(P).Salary)); الق س: ج طح ١ س: ف د ف ٠ ى أ ٠ نح أ م ذ ١ س ج قد Casting( ج م رس ج ط ر ١ ظ( ذح يش ٠ مس (P as TEmployee).Salary جأل ش طش ن طفن ١ ج رش ؽ.
انخح س انخشك م Polymorphism ف أ شجف ج ك ىحت فظ ج ذج س function أ ج حؼ/جإلؾشجت ١ س method ض فز ذحوػش ىش ٠ مس رش ع غ س ج ق ف ١ حش ج ؾطمس ذ ل. ٠ ى أ ف ف ف ١ س TPerson ض ؾذ ج ذج س GetFullName ج ط ضم ذؿ جإلع جأل ي ج ػح. ٠ ى ح أ ؿ ج ق ف ١ س TEmployee ضم ذا حس جإلع ذق سز خط فس ج كفح فظ ئع ج ذج س. ط ف ١ ز ر ه م ذح طح : أ ال م ذامحفس ع virtual ف ض ش ٠ ف ج ذج س GetFullName ف ف ف ١ س :TPerson function GetFullName: string; virtual; زج ج ع ٠ ط ١ ف ق ف ١ حش ج ؾطمس أ ض ١ ذ ض ش ٠ ف فظ ج ذج س أ ضشظ ض ف ١ ز ح ئرج أسجدش. غح ١ ح ١ ذ ض ش ٠ ف فظ ج ذج س ف ف ف ١ س TEmployee ذح يش ٠ مس ج طح ١ س: TEmployee = class(tperson)...... public function GetFullName: string; override;......
الق ج ع override ف ح ٠ س ض ش ٠ ف ج ذج س ج ز ٠ ؾ ١ ش ئ أ ج ذ س ف ز ج ق ف ١ س عطغط ج ط ف ١ ز ج غحذك ف ج ذج س ج ؾطمس. ف ؾغ ج ذج س م ذادخحي ج ط ١ حش ج ؿذ ٠ ذز ج خحفس ذا حس جالع ح ح ج خ ١ حس ذأ مي ج اللس ج ط ف ١ ز ج غحذك كذد ض ف ١ زج ؾذ ٠ ذج ػ : function TEmployee.GetFullName: string; begin result := 'Mr.' + ' ' + LastName + ', ' + FirstName; end; أ غطخذ ج ط ف ١ ز ج غحذك ف ف ف ١ س TPerson ذ ل ج طك ٠ ش: function TEmployee.GetFullName: string; begin result := 'Mr. ' + inherited GetFullName; end; الق جأل ش inherited ج ز ٠ ض ف ١ ز ح س ظ. خطش أ ٠ ح ج ط ف ١ ز ٠ ؿشخ ط ١ ؿط ع الق جخطالف شك جالع ج ىح ذكغد ع ١ حق ج ذك ١ ع ض جعطذ حء زج ج ذج س ذح غ ١ حق ج TPerson ض شك جإلع ذق ١ غس ضخط ف ح ض جعطذ حؤ ح ذح غ ١ حق.TEmployee ج ق ف ١ س ج جقذز ٠ ى ح جؽطمحق أوػش ف ف ١ س فى ح ف ح ف ف ١ س TPerson جؽطمم ح ح ف ف ١ س TEmploye ٠ ى ح أ ٠ نح جؽطمحق ف ف ١ س أخش ػ. TChild ج ق ف ١ س ج ؾطمس ٠ ى أ ؾطك ف ف ١ س أخش. ف ف ١ س.TManager ػال ف ف ١ س TEmployee ؾطك ح ع غ س جالؽطمحلحش غ ١ ش كذ دز ج ذد و جقذز ضشظ خقحت ع و ١ حش ح لر ح.
انج نت انسادست ف ز ج ؿ س كح ي أ مطشخ ل ١ ال طف ىر ١ س ج طغ ١ شجش ج ط وحت. ك ف أ ػ ط ح ج غحذمس جعطخذ ح ج طغ ١ ش P ج طغ ١ ش Emp جأل ي TPerson ج ػح.TObject وال ح ض د ؾز س ح ئ ج جألف TEmployee ج طغ ١ ش وحت ٠ خط ف ج طغ ١ شجش جأل ج جألعحع ١ س ػ string integer و ال ٠ ك ل ١ س ج ف قذ رجض. مف أوػش ذ ح ش ف ج طغ ١ ش A أ integer غ ذ ل ١ س 10 ج طغ ١ ش ٠ ى قح ال ز ج م ١ س )لغ ف ج زجوشز ٠ ك ل ١ س A(. ضحذ فا var A, B, C: integer; begin A := 10; B := A; // 10 A := A + 5; // 15 ج طغ ١ ش B خق لغ آخش ف ج زجوشز أ ي ١ ح فظ ل ١ س A ذ أمحفس 5 م ١ س A فا A عطقرف ل ١ ط ح 15 ذ ١ ح B ال ضضجي ل ١ ط ح غحذطس. C := A + B; // 25 ج طغ ١ ش C لغ خحؿ ذ ف ج زجوشز أفركص ل ١ ط ج ٢ ؿ B A أ 25 ج طغ ١ شجش ج ػالظ و جقذ غطم ج ٢ خش ٠ ك ل ١ ج خحفس ذ ف لغ خحؿ ذ ف ج زجوشز.
ىرم ح فظ ج غ ١ حس ٠ ج طغ ١ شجش وحت : var oa, ob, oc: TPerson; begin oa := TPerson.Create; ob := oa; oc := oa; oa.firstname := 'Ahmad'; ob.lastname := 'Hamza'; Caption := oc.getfullname; oa.free; oa := nil; ob := nil; oc := nil; // 'Ahmad Hamza' ذ ح ؾغذ ح وحت ح TPerson أفرف زج ج ىحت ؾ د ف ىح ح ف ج زجوشز. ج طغ ١ ش oa ىح آخش ف ج زجوشز أ ٠ نح ى ال ٠ ك ج ىحت ئ ح ٠ ك ج ل ج ىحت ف ج زجوشز أ أ إؽش Pointer ئ ل ج ىحت ف ج زجوشز. ج طغ ١ ش ob لر أ غ ذ أ ٠ س ل ١ س ل ف ج زجوشز ى ال ٠ ك أ ٠ س ل ١ س رجش أ ذحألفف ٠ ك ل ١ س ؾ جت ١ س. ذ ذ ob =: oa ض جع حد ل ١ س oa ئ ج طغ ١ ش ob أ أ ج ٢ ٠ ك فظ ل ١ س oa ج ف ج زجوشز أ أ ٠ ؾ ١ ش ئ فظ ج ىحت ج ز ٠ ؾ ١ ش ئ ١ oa وزذه جأل ش ذح غرس طغ ١ ش. oc أ أ ج طغ ١ شجش ٠ ؾ ١ ش oc ob oa ج ٢ ئ فظ ج ىحت. ذ زج ٠ ى ح أ فز ىحت خالي ج طغ ١ ش oa ػال ي ل ١ س خحف ١ س FirstName ) Ahmad ( أ ٠ نح فز فظ ج ىحت خالي ج طغ ١ ش ob ي ل ١ س خحف ١ ط ( Hamza ) LastName ز ه ج يم ضر ح ز ه جعطفغش ح ل ١ س. Ahmad Hamza فغ ١ ي ١ ح: oc خالي GetFullName ذ ذ جإل ط حء ض ح ح ج ىحت ض ضكش ٠ ش أ ئ حؤ. خالي جأل ش.oA.Free
oc.free ob.free ىر ح ك ج ٢ حرج طر جأل ش ج غحذك ذأ ش ذ ذ ضكش ٠ ش ج ىحت ل ح ذح طأو ١ ذ أ ج طغ ١ شجش ج ٢ ال ضؾ ١ ش ئ أ ؽ ء ر ه ذطخق ١ ل ١ س nil ى ح. ٠ ى أ ٠ نح ضكش ٠ ش ج ىحت ضقف ١ ش ج طغ ١ ش ف لص جقذ ىش ٠ ك جإلؾشجت ١ س. FreeAndNil() FreeAndNil(oA); ز جإلؾشجت ١ س ضم ذطكش ٠ ش ج ىحت ج ز ٠ ؾ ١ ش ئ ١ ج طغ ١ ش oa غ ضم ذا يحء ل ١ س nil طغ ١ ش. صائح ع ذ انخعايم يع انكائ اث - ٠ ؿد ج ط ح ج ىحت حش ذح طرح ؾذ ٠ س. - مش سز ئ حء ج ىحت ئف حؤ ذ ؿشد ج ط حء ج كحؾس ئ ١. - مش سز ضقف ١ ش أ طغ ١ ش ٠ ؾ ١ ش ئ زج ج ىحت. - أ ضى ذشج ؿه ج ط ١ حش ف ١ ح أوػش ١ ى س ض ١ ح. يزانق يجب اإل خبا إني ا الق س: ج مغ ج طح ٠ ط ح ي ىر ١ س ج ط ح ج ىحت حش ذطفق ١ أوػش فارج ؾذش ف ذس ف ضطر ج ٢ ٠ ى ه ضخي ١ جال طمحي رحؽشز ئ ج ؿ سج طح ١ س. و ح أؽش ح ٠ ؿد ج ط ح ج طغ ١ شجش ج ج ىحت ذؾ ء جال طرح أ د أ فغ ح آ ١ س ح قط ال م ف يرحض ح.
ف ١ ح ٠ ع ططر ع ن ج طغ ١ شجش فك ل ١ ح لشخ. var oa: TPerson; begin ض ض ش ٠ ف ج طغ ١ ش TPerson oa ز ج طغ ١ ش ال ٠ ؾ ١ ش ئ أ وحت. ى لذ ٠ ك ل ١ س ؾ جت ١ س ال ح ف ع ١ حق ذش ح ؿ ح. خالي ج ط ١ س Pointer(oA). ٠ ى ح شفس ز ج م ١ س oa := TPerson.Create; ض ئ ؾحء وحت TPerson ف فظ ج لص ض ضخق ١ ل ١ س طغ ١ ش oa ز ج م ١ س إؽش ىحت ج ز ض ئ ؾحؤ. ح ل ١ س oa ج ٢ سل ٠ ؾ ١ ش ئ ج ل ف ج زجوشز. شفس زج ج شل غطخذ ج ط ١ س Pointer(oA) ) خالي ؽحؽس Evaluate/Modify ػال( oa.firstname := 'Ahmad'; oa.lastname := 'Hamza'; خالي ج طغ ١ ش oa فز ح ئ خحف ١ س ف ج ىحت FirstName أ ي ١ ح ح ل ١ س :."Ahmad" أ ي ١ ح ل ١ س خحف ١ س "Hamza" : LastName. ئرج ئ زج ج كذ ض ج ط ح ج ىحت ئ يحء ل ١ خحف ١ ط ١ ف ١. oa.free; ح جعطخذ ح ج طغ ١ ش oa فحر ىحت ى ر ح ضذ ١ ش فغ ئ حء ؾ د. ج ىحت ج ٢ ال ؾ د ف ج زجوشز. قح ح خحىرس ج ىحت شز أخش خالي ج طغ ١ ش oa فغ ١ طؽ ر ه خيأ ف لص ج طؾغ ١. أل ج ىحت ٠ ذ ؾ د. ج غإجي ج طغ ١ ش oa ضغ ١ شش ل ١ ط ذ ذ ضكش ٠ ش ج ىحت ذك ١ ع ال ٠ ؾ ١ ش ئ ؽ ء
ضفكق ح ل ١ س ج طغ ١ ش )Pointer(oA)( oa ع ؿذ ح غحذطس ضطغ ١ ش. أ ال ضضجي ضك ل ١ س ج ج ج مذ ٠ ىحت ج ز ٠ ذ ؾ د! ز ؾى س. ف طخ ١ ػال أ وحت ح ح لذ ض ضكش ٠ ش ئ حؤ ف ىح ح ف ج رش ح ؽ غ ٠ م ج رش ؽ ف ىح آخش ج رش ح ؽ ذ كح س ج ط ح زج ج ىحت حدز ٠ ؿأ ج رش ؽ ئ فك ل ١ س ج طغ ١ ش أ ال ج طأوذ ؾ د ل ١ س لر ج ط ح ج ىحت ر ه ىش ٠ ك ج ذج س : Assigned() if Assigned(oA) then... أ ىش ٠ ك جالعطفغحس ئرج وح كط ج ح ال ٠ غح :nil if oa <> nil then... if Pointer(oA) <> nil then... ج ط ١ حش ج غحذمس و ح ع ف ضشد ذحإل ٠ ؿحخ! ف ١ خذ ج رش ؽ ؾش جء ر ه ٠ أ ج ىحت ال ٠ ضجي ق ١ ح ف ج زجوشز ٠ رذأ ف ج ط ح زج ج ىحت ج شق ح ضم ج ؾحو. ض ؾذ ىش ٠ مس رحؽشز طأوذ ذ ح أ ج طغ ١ ش ٠ ػ ف ال وحت ح لحت ح ف ج زجوشز ئ قذ ال ض ؾذ! جإلؾشجء ج حعد رش ؽ أ ٠ طخز ع ١ حعس دفح ١ س ذأ ٠ م ذطقف ١ ش ج طغ ١ ش ذ ذ ضكش ٠ ش ئ حء ج ىحت. ز ه ىشس ذأ ٠ ؿد جإل طرح ذ ج ط ح ج ىحت حش أ ٠ ى قحمشج ف ر ح دجت ح مش سز ئ حء ج ىحت ذ ذ ج طفحء ج كحؾس ئ ١ ذ ٠ غطكغ أ م ذىطحذس ض ١ حش ئ حء ج ىحت ف س وطحذس ض ١ حش جإل ؾحء لر وطحذس أ ٠ س ض ١ حش ضط ح. ج ط ص ج ؿ س!
٠ غ ف ذح ؾش جإل ىطش أ جاللطرحط أ ج م ئ ٠ ط جإلؽحسز ئ د ف شخ ال ٠ غ ف ذأ ؽى أؽىحي ج ؾش ج سل د ئر خي غرك. طذ د ف شخ ى ئ ١ ى عح ف ضي ٠ ش ذ ؾحسوطه ف ج طذ ف ؿ س طذ د ف شخ ؾحسوطه ف محالش ج ؿ س أسع فمو ج مح س ذأقذ ج ق ١ غ Doc/Docx/ODF د ض غ ١ ك غرك ئ ئدجسز ج طذ delphi4arab@gmail.com