• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

ORWA

الخبراء المعتمدون
  • عدد المشاركات

    1,375
  • تاريخ الانضمام

  • تاريخ اخر زياره

مشاركه بواسطة ORWA




  1. وحدات مكتبة أدوات دلفي الداعمة للغة العربية

    لتحسين دعم بيئة دلفي للغة العربية 

    1- تحسين اتجاه الكثير من المكونات لتصبح من اليمين إلى اليسار 


    يشمل مكونات مثل : 
    - ToolBar
    - TreeView
    - PageControl
    - DateTimePicker
    - StatusBar
    - ListView
    - الخ ..

    [صورة مرفقة: 1.png]

    2- إظهار صناديق الرسائل باللغة العربية 
    يشمل تعريب الأزرار وضبط إتجاه الرسائل بشكل صحيح :
    [صورة مرفقة: 2.png]


    3- تحسين دعم ActionBars 
    - يشمل تحسين ضبط اتجاه القوائم الرئيسية والقوائم المنبثقة الخاصة بالمكونات Actionmanager 
    - إضافة إلى تعريب نافذة تخصيص القوائم وأشرطة الأدوات 
    [صورة مرفقة: 3.png]


    4- تحسين تعريب بعض النصوص القياسية وبعض الرسائل التي تظهر في زمن التشغيل 
    بعض النصوص مثل أسماء الأشهر والتواريخ والوحدات وغير ذلك وبعض الرسائل التي يظهرها البرنامج عند التشغيل :
    [صورة مرفقة: 4.png][صورة مرفقة: 5.png]


    _______________
    عروة علي عيسى
     http://www.orwah.net
     http://www.sy-it.com

    0

  2.   Arabic Delphi VCL Units
     
    وحدات مكتبة أدوات دلفي الداعمة للغة العربية
     
     
    - دعم صناديق الرسائل العربية
    - تحويل مكونات هامة إلى اليمين 
    - تعريب الكثير من الرسائل التي قد تظهر في زمن التشغيل
    - لايحتاج استخدامها لإضافة أي كود
    1.png
    _______________
    طريقة التشغيل :
     فقط قم بارفقات ملفات الوحدات التي يستخدمها برنامجك
    وضعها بنفس المجلد مع بقية ملفات برنامجك 
    وسيتم التعامل معها اليا من دون تغير اي سطر في الكود
     
    _______________
    البيئات المدعومة حاليا :
    - Delphi 10.1 Berline
     
     
    _______________
    المشاكل المعروفة :
    - ToolBar DrawingStyle = dsNormal :
     يتسبب بانقلاب الصور , يمكن تلافي ذلك باختيار 
    DrawingStyle = dsGradient 
     
     
    _______________
    روابط :
     
    - سيتم تطوير هذه الملفات بشكل دوري وتوفير نسخ احدث منها
    لمتابعة تطوير الملفات : من هنا GitHub
     
    - للحصول على آخر نسخة من الملفات : حمل من هنا
     
    - للمزيد من المعلومات والشروحات : من هنا Wiki
     
    _______________
    عروة علي عيسى
     www.orwah.net
     www.sy-it.com
    0

  3. شكرا للأخ فراس ولجميع الأخوة , :lol:

    مع اني حصلت على نسخة منها منذ فترة من الزمن , ولكني البارحة فقط حتى جربت ان اقوم بمثالي الأول على delphi 4 php .

    تبدو الامور تسير على ما يرام خاصة من ناحية البيئة المتكاملة , ومكتبة الادوات التي توفر طريقة تصميم وتطوير أسهل من المحرارات الحالية لphp والتي تعتمد على كتابة الاكواد . كذلك مكتبة الأدوات التي تحوي خصائص شبيهه بDelphi كثيرا .. , ..

    لمست ان البيئة بحاجة لبعض التطويرات من عدة جوانب , ويوجد بعض البطء , وبعض النقص بالادوات ... أنها تقريبا شبيهه بالإصدارة الأولى من دلفي Delphi1 ...

    بالنسبة لي فقد استخدمت الإصدارة الأولى من Delphi4php وهناك إصدارة احدث منها . الإصدارة الاحدث فيها تحسينات عديدة وتلافي للكثير من القصور في الإصدارة الأولى , وسأحاول ان اجربها قريبا ..

    رفع الملفات وتشغيلها على الموقع تطلب بعض الشروط بالسيرفر , وبعض التعديلات بملفات VCL التي يجب رفعها , كما ان تطبيق قاعدة بيانات صغيرة سوف يتطلب رفع وحدات VCL المتعلقة بقواعد البيانات كلها مثل AdoDB وغيرها وهذا يأخذ حجم وعدد ملفات إضافية , تكون محطوطة في مجلد جانبي اسمة VCL أشبة ما يكون بمكتبة runtime للموقع..

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

    وضع مكون قاعدة البيانات ومكون الجدول table ومكون datasource , ثم مكونات إظهار اخرى مثل navigator و dbgrid و غيرها . وتكفي بضعة سطور للإضافة والحذف والتحكم ..

    إنطباعي الأول أن الإصدارات اللاحقة منها سيكون لها مستقبل مشرق غالبا , الإصدارة الحالية (التي جربتها) ماتزال متخلفة بعض الشيء قياسا لبيئات لغات برمجة عليا مثل دلفي او سي شارب او غيرها, ولكنها يمكن ان تعتبر ثورة قياسا لمحررات php المتوافرة حاليا والتي تعتمد على كتابة الكود ولايوجد فيها بيئة مكونات ولا مكتبة ادوات مريحة ولا مصمم نماذج ..

    ربما وخلال إصدارة أو إصدارتين قادمتين من Delphi4php يمكن أن نحصل على بيئة متكاملة محسنة جاهزة للإستخدام الثقيل (تطبيقات العالم الحقيقي وخاصة المشاريع الكبيرة) ..

    مثال على تطبيق بسيط جدا أعد خلال فترة قصيرة بالفأرة وسطر واحد من الكود :

    http://orwah.net/d4php/

    سأعمل بالفترة القادمة على تجربتها على نطاق أوسع والحصوص على الإصدارة الأحدث , وربما رفع بعض المواقع والأمثلة التي بنيت على هذه البيئة ..

    0

  4. ماذا تعرف عن CodeGear !!

    آخر الأخبار : إنتهاء عملية فصل لغات البرمجة بشركة مستقله عن بورلاند , وإنطلاق CodeGear الشركة الجديدة التي ستصدر النسخة القادمه من دلفي وبقية بيئات التطوير وتوقعات بإنتاج بيئات تطوير جديدة .

    كتبت مقاله صغيرة عن الموضوع هنا :

    http://www.orwah.net/modules/news/article.php?storyid=109

    0

  5. جربت للتو faimo Database والنتائج الأولى عليها أنها رائعة ..

    لم استطع اختبارها على نطاق واسع بسبب الوقت , ولكن لاحظت أنها كفوءة وسريعة .

    لايوجد عيوب لدي حتى الآن , كل شيء يعمل كما هو متوقع , جربت اضافة كمية هائلة من السجلات وتم الموضوع بسرعة , البحث والتنقل كله يتم بسرعة , مزايا المحرك جيدة ومناسبة

    باختصار العلامة الأولية حتى الآن هي 10\10 .. لاسيما كون التطبيق الناتج محمول ولايحتاج تنصيب المحرك , ودعم تنسيقات مناسبة للعربية

    البرنامج المرفق المخصص لإنشاء وادارة قواعد البيانات والجداول يعمل بشكل جيد

    ساتابع اختبار الادوات على مراحل , واتمنى ان يستمر الأخ عبد الرحمن بالحديث عن مزايا faimoDB ويوضح اختلافها مع باقي الأدوات المنتشرة حاليا

    وأنا سأقدم كل مساعدة ممكنة من ناحيتي

    0

  6. إذا كانت هذه الأدوات فعلا من صنعك , وأثبتت أنها تستحق التقدير ..

    لك مني هدية اطلاق موقع مخصص لهذه الادوات مجانا على الويب مع التصميم والاستضافة والدومين وإذا احتجنا ندعم الدفع الالكتروني فيه فهو لك ..

    ولكن يجب أن نعرف المزيد عنها أولا ..

    عروة

    0

  7. السبب أن برامج دلفي تريد أن يتم ضبط اللغة بشكل كامل من لوحة التحكم وبالأخص الصفحة الأولى standards and forms التي تحوي تنسيق العملات وما الى هنالك , والصفحة الأخيرة advanced أيضا ..

    على كل حال إذا كنت تحب ان تريح نفسك من عناء معرفة إذا كان الزبون قد ضبط لوحة التحكم بشكل جيد واظهار رسالة له تساعدة على القيام بذلك , أنصحك باستخدام : ArMan

    فهو يريحك بعمل ذلك ..

    كما أنه يحوي عدة مزايا مفيدة للمبرمج العربي ..

    اضطلع على الموضوع هنا :

    http://www.orwah.net/modules/newbb/viewtop...=24#forumpost24

    0

  8. عندي صورة واريد تحويلها الى تدرج رمادي .. بدون دوال مساعدة ..,,, ممكن الفكرة فقط : ) ,,

    لدي هذه الطريقة , ولكني اعتمدت على تحديد قيم تدرج رمادي معرفة سابقا لكل لون :

    طبعا بدلفي :

    procedure TForm1.Button1Click(Sender: TObject);

    Var

    X, Y: Integer;
     P   : TColor;
     r,g,b: byte;
     RP,GP,BP:single;
     Red,Green,Blue:integer;
    begin
      Red:=299;
      Green:=587;
      Blue:=114;
      x:=Red+Green+Blue;
      RP:=Red/x;
      GP:=Green/x;
      BP:=Blue/x;
      For X := 0 to Img1.Width do begin
       Img2.Repaint;
         For y := 0 to Img1.Height do begin
           P := Img1.Canvas.Pixels[X, Y];
           r := (P and $0000FF);
           g := (P and $00FF00) shr 8;
           b := (P and $FF0000) shr 16;
           Img2.Canvas.Pixels[X, Y] :=  round (
           r * RP + g * GP + b*BP) * $010101;
         end;
     end;
    end;

    الملف المرفق يحوي البرنامج والتنفيذي ..

    gryascale.zip

    0

  9. دالات التجميع تعيد قيمة واحدة , ولا تستطيع وضع معها حقل قد يعيد مجموعة من القيم ..

    لذلك تأكد أن الاستعلام لايحوي سوى دالات تجميع ..

    إلا إذا كنت تستخدم Group by

    ملاحظة , أحذر من بعض التنسيقات الخاصة بالSql الذي يقبلة بعض البرامج فقط ,(بعض تنسيقات الأكسس والعبارات التي تضاف مع استعلاماته قد لاتكون مقبولة , تأكد منها)

    أنصح بوضع الكود كالتالي :

    with AdoQuery1.sql do
    begin
    clear;
    add('SELECT  Sum(free_area), Count(*)  ');
    add ('FROM participations order');
    open;
    end;

    0

  10. إذا كنت تعرف القليل عن بنية الملف التنفيذي بالأسمبلي مثلا أو بلغة الآلة , لوجدت أنه توجد ثلالث مقاطع مقطع الكود Code segment ومقطع data segment ومقطع stack segment أو المكدس .

    لنسخ عملية جديدة نقوم بتهيئة هذه الثلاث مقاطع وكأننا ملف تنفيذي جديد حمل للذاكرة

    أما لنسخ thread جديد فلا داعي لتحميل سوى جزء stack segment جديد ويتشارك في بقية الأجزاء كجزء الشفرة وجزء البيانات مع الThread الذي نسخ عنه ..

    وبالتالي الthread مناسب لتكرار نفس العمل أكثر من مرة مع اكثر من طرف بدلا من إضافة اعمال جديدة ,

    مثال مخدم Appachi للويب , يقوم بتخديم عدد كبير من الزبائن الذين يطلبون موقع ويب معين , يلزمنا في هكذا حالة ان نعيد تنفيذ نفس الخطوات تماما مع كل مستخدم وبالتالي لاداعي لإنشاء Process جديد بل نستخدم thread جديد لكل زبون بحيث كل ما طلب مستخدم جديد الموقع يتم فتح thread جديد له ينفذ نفس المهمة وهذا مرن وسريع جدا ولا يستهلك موارد ..

    هذه مثلا إحدى الحالات .. ما عدا ذلك يستخدم في عدة حالات اخرى مثلا قد يستخدم برمجيا للفصل عن الملف التنفيذي عن توقع حدوث جمود في التطبيق نتيجة طلب مهمة ما , فإذا قام أحد الأوامر الموجوده في التطبيق بطلب القراءة من منفذ وانتقل التنفيذ إلى ذلك المنفذ واستغرق بعض الوقت الزائد فإن التطبيق سيكون في حالة تجمد أثناء ذلك ريثما يتم عودة الإجراء , لحل ذلك يمكننا إنشاء thread جديد وفصل إجراء طلب المنفذ بهذا الthread وبالتالي لن يتجمد التطبيق حتى لو تأخرت استجابة المنفذ لإن التنفيذ يتم في مجرى آخر مستقل عن التطبيق ..

    يعني هذه بعض المعلومات الإضافية عن ما ذكرة الأخوة

    0

  11. في النظم القديمة يمكن استخدام :

     
       Date := string (PChar (Ptr ($FFFF5)));

    لإعادة التاريخ من البيوس ,

    ولكن في XP والنظم الحديثة مجال الذاكرة الخاص بالبيوس أصبح محمي ومن الصعب الوصول اليه .. لذلك يتم الإعتماد على الرجستري في ذلك

    الملف المرفق يحوي مثال من أجل XP

    biosdate.zip

    0

  12. بالنسبة للتاريخ من البيوس ,, لا أعرف إذا كان نفسة تاريخ النظام ولا لا .. ولكن إذا كنت تقصد تاريخ النظام :

    استخدم المتحول Date المعرف سابقا أو المتحول now الذين يعيدا تاريخ اليوم

    بالنسبة لموضوع الشبكة تعرض فقط سجلات اليوم

    إما 1- استخدم Query وضع فيه عبارة select بحيث يكون بجزء الشرط where أن التاريخ يساوي تاريخ اليوم

    أو 2- استخدم خاصية الفلترة Filter في الجدول وفق شرط أن التاريخ يساوي تاريخ اليوم وبهذه الحال تريح نفسك من موضوع الجدول الثاني بالتحكم بالنتائج التي يجب أن تظهر فقط من الجدول الأول

    خاصية readonly لل DBGride تجعلها غير قابلة للتحرير

    إذا كنت تريدها فقط للعرض يفضل تعديل الخاصيتيه RowSelect من Options والتي تجعل التحديد ينطبق على السطر كلة بدل أحد حقولة

    0

  13. المقصود أن معظم الناس يضعون الخاصية Active مفعلة للعنصر AdoTable1 منذ التصميم ,

    وبالتالي منذ إقلاع البرنامج يكون الجدول مفتوح وجاهز للعمل ..

    المشكلة هنا أنه لو تركنا الجدول مفتوح منذ التصميم فإن البيانات الموجودة في الجدول ستخزن في البرنامج وتزيد من حجم الملف التنفيذي

    ولكن بدلا من ذلك يفضل أن نضع الجدول مغلق أثناء التصميم (Active=false) وفي حدث إنشاء الفورم نكتب :

    AdoTable1.Active:=true;

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

    0