18-07-2010, 10:12 AM
السلام عليكم ورحمة الله وبركاته
الكثير من المبرمجين يبحث عن مكونات جديدة لاستخدامها ويرفقها مع مشروعه إن كان مفتوح المصدر، أو يجد تلك المكونات مُرْفَقة مع المشروع فيضطر لتركيبها.
ولكن الكثير منا يستاء من إجباره على إضافة مكونات جديدة لأجل تشغيل بعض المشاريع والأمثلة، وهو لا يرغب أصلاً في تركيب هذه المكونات ثم يحذفها بعد مشاهدة المثال.
الحل الآن الذي أنصح به لا يغني تركيب هذه المكونات لتلك المشاريع المبرمجة بل لا يغني عمل مكونات وباكجات جديدة، ولكني أنصح به في التعديلات البسيطة التي تجريها على المكونات
الأصلية الموجودة بالدلفي ، وأراه يغني ويخفف الكثير من الحالات المرهقة لعمل تلك المكونات وإضافتها.
ففي حالة استخدام مكونات دلفي وترغيب في وجود مناهج أو إجراءات أو خصائص عن متوفرة فيها فعليك استخدام إحدى الطريقتين :
الطريقة الأولى : عليك كتابة المكوّن الجديد قبل التصريح عن نموذج النافذة
هذا مثال تخيلي من عندي :
مثال عملي كامل تجده هنا :
والتحميل من هنا :
الطريقة الثانية : استخدام : TMyHelper = class helper for TNeedObject
ولعل الطريقة هذه فقط في delphi2010
والطريقة وجدتها عن استخدامي للوحدة superobject.pas
وجدت أن جميع الكائنات الأصلية في الدلفي بلا استثناء فيها الإجرائين : toJson و FromJson . ثم وجدت السر هنا :
بالتوفيق ومن كان عنده إضافة علم فلا يحرمنا منها .
الكثير من المبرمجين يبحث عن مكونات جديدة لاستخدامها ويرفقها مع مشروعه إن كان مفتوح المصدر، أو يجد تلك المكونات مُرْفَقة مع المشروع فيضطر لتركيبها.
ولكن الكثير منا يستاء من إجباره على إضافة مكونات جديدة لأجل تشغيل بعض المشاريع والأمثلة، وهو لا يرغب أصلاً في تركيب هذه المكونات ثم يحذفها بعد مشاهدة المثال.
الحل الآن الذي أنصح به لا يغني تركيب هذه المكونات لتلك المشاريع المبرمجة بل لا يغني عمل مكونات وباكجات جديدة، ولكني أنصح به في التعديلات البسيطة التي تجريها على المكونات
الأصلية الموجودة بالدلفي ، وأراه يغني ويخفف الكثير من الحالات المرهقة لعمل تلك المكونات وإضافتها.
ففي حالة استخدام مكونات دلفي وترغيب في وجود مناهج أو إجراءات أو خصائص عن متوفرة فيها فعليك استخدام إحدى الطريقتين :
الطريقة الأولى : عليك كتابة المكوّن الجديد قبل التصريح عن نموذج النافذة
هذا مثال تخيلي من عندي :
كود :
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;
بالتوفيق ومن كان عنده إضافة علم فلا يحرمنا منها .
وإن تقدم ذو تقوى بصالحةٍ *** قدمتُ بين يديه عبرة الندمِ