المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طريقتان مغنيتان عن إضافة مكوّنات جديدة


أبو محمد اللحياني
18-07-2010, 11:12 AM
السلام عليكم ورحمة الله وبركاته

الكثير من المبرمجين يبحث عن مكونات جديدة لاستخدامها ويرفقها مع مشروعه إن كان مفتوح المصدر، أو يجد تلك المكونات مُرْفَقة مع المشروع فيضطر لتركيبها.

ولكن الكثير منا يستاء من إجباره على إضافة مكونات جديدة لأجل تشغيل بعض المشاريع والأمثلة، وهو لا يرغب أصلاً في تركيب هذه المكونات ثم يحذفها بعد مشاهدة المثال.

الحل الآن الذي أنصح به لا يغني تركيب هذه المكونات لتلك المشاريع المبرمجة بل لا يغني عمل مكونات وباكجات جديدة، ولكني أنصح به في التعديلات البسيطة التي تجريها على المكونات

الأصلية الموجودة بالدلفي ، وأراه يغني ويخفف الكثير من الحالات المرهقة لعمل تلك المكونات وإضافتها.

ففي حالة استخدام مكونات دلفي وترغيب في وجود مناهج أو إجراءات أو خصائص عن متوفرة فيها فعليك استخدام إحدى الطريقتين :
الطريقة الأولى : عليك كتابة المكوّن الجديد قبل التصريح عن نموذج النافذة
هذا مثال تخيلي من عندي :

type
TAlignText = (atCenter, atRight, atLeft);
TEdit = class(StdCtrls.TEdit)
private
FalignTex : TAlignText;
procedure setAlignText(const Value: TAlignText);
published
property alignText : TAlignText read FalignTex write setAlignText;
end;

TForm1 = class(TForm)
Edit1 : TEdit;
.
.
.


مثال عملي كامل تجده هنا :
http://www.stevetrefethen.com/blog/UsingGoogleMapsFromVCLSampleApplication.aspx
والتحميل من هنا :
http://www.stevetrefethen.com/files/googlemap.zip


الطريقة الثانية : استخدام : TMyHelper = class helper for TNeedObject

ولعل الطريقة هذه فقط في delphi2010

والطريقة وجدتها عن استخدامي للوحدة superobject.pas

وجدت أن جميع الكائنات الأصلية في الدلفي بلا استثناء فيها الإجرائين : toJson و FromJson . ثم وجدت السر هنا :

TSuperObjectHelper = class helper for TObject
public
function ToJson(ctx: TSuperRttiContext = nil): ISuperObject;
constructor FromJson(const obj: ISuperObject; ctx: TSuperRttiContext = nil); overload;
constructor FromJson(const str: string; ctx: TSuperRttiContext = nil); overload;
end;



بالتوفيق ومن كان عنده إضافة علم فلا يحرمنا منها .

ALSOUF
18-07-2010, 11:49 AM
شكرا استاذ .
جاري الاطلاع على كامل الموضوع