السلام عليكم ورحمة الله.
أولا أريد أن أشكر كل القائمين على هذا المنتدى الممتاز
وبعد
كما هو ظاهر في العنوان :D ، فقد خطرت لي فكرة بسيطة منذ زمن لكني ترددت في طرحها إلى اليوم فقررت طرحها. وهي تتلخص فيما يلي:
أن نقوم بجمع ما في الاستطاعة من أكواد دلفي سواء api أو أكواد التعامل مع الذاكرة والنظام أو أي شيء ويتم وضعها في مكتبات ديناميكية DLL على شكل دوال بأسماء دالة عليها مبتعدين في ذلك عن التعقيد الموجود في دوال api
مثلا، بدل وضع هذا الكود:
function RegisterOcx(OcxPath: string; bRegister: boolean): boolean; type TDllProc = function: HResult; stdcall; var hModule: THandle; DllProc: TDllProc; begin result := false; hModule := LoadLibrary(PChar(OcxPath)); if hModule=0 then exit; if bRegister then @DllProc := GetProcAddress(hModule, 'DllRegisterServer') else @DllProc := GetProcAddress(hModule, 'DllUnregisterServer'); if @DllProc=nil then exit; result := DllProc=S_OK; FreeLibrary(hModule); end;
نستبدله بهذا:
Function register_ocx(filename: string; bRegister: booloan): boolean; external 'api_codes.dll';
حيت نوفر المساحة المستهلكة ونضمن تجزيء البرنامج لعدة ملفات (والذي يصعب معه كسر البرنامج بسهولة)
. بعدها تجمع كافة الملفات لتكون مترابطة فيما بينها بشكل ديناميكي، ويعطى لها اسم معين تختلف إصداراته واكو اده، الفكرة تشبه إلى حد ما مايكروسوفت فريم وورك.
إذا استحسنتم الفكرة، سأبدأ إن شاء الله بوضع أول لبنة وهي ملف dll يحتوي على أكواد يمكن استدعائها من أي تطبيق تكتبونه
والسلام عليكم ورحمة الله