الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

DB TreeView + smart Loading

بدأه asdk2003 في 6 مارس 2008 · 12 رد · 2,220 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوتي الاعزاء بعد مجهود وصلت إلى نتيجة وهي كالتالي اضافة البنود الرئيسية ومن ثم عند الضغط على كل بند يتم تحميل ابنائه

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

testtree2.rar

عبد القادر المبيض-فلسطين غزة

#2

طريقة جميلة و لكن بها الكثير من المشاكل, أولا ظهور إشارة + بجانب عقدة قد لا يكون لها أبناء + بطء اثناء استعراض عناصر كل عقدة حيث أنه سوف يقوم بجلب البيانات من قاعدة البيانات

المشكلة التي تواجهك, هو عندما لا يكون هناك اي عقدة محددة و بالتالية تكون ال Selected = Nil و عندما تكون العقدة Nil لا يمكنك استدعاء اي تابع للعقدة!

لأنه عندما تنقر على المكان الابيض في ال Tree لا تتحدد اي عقدة و تكون ال Selected هي Nil.

لحل المشكلة في ال Expanding event أضف الكود التالي:

if (tv1.Selected=nil) then
 tv1.Items[0].Selected:= true
else
  tv1.Selected.getFirstChild;

طبعا هذا بعد التأكد من عدد العقد يجب أن يكون أكبر من صفر

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 8 مارس 2008 في 19:17

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

بسم الله الرحمن الرحيم

المشكلة التي تحدث في النقر لأول مرة هي حدوث استثناء (Exception) وذلك في العبارة

if (tv1.Selected=nil) then tv1.Selected.getFirstChild; //a

عندما يكون tv1.Selected=nil فإنه لا توجد به أي قيمة وأي عملية تجرى على هذا العنصر تكون خاطئة وتؤدي إلى استثناء مثلما هو الحل مع العملية tv1.Selected.getFirstChild لأن tv1.Selected غير موجود ولقد كان من الأحرى أن تكتب

if (tv1.Selected=nil) then tv1.Selected := tv1.Items[0]; //a

وبهذا يتم تحديد أول عنصر من القائمة

تم تعديل هذه المشاركة بواسطة B.M.AbdelAziZ في 18 أبريل 2008 في 09:39

#4

الان لدي مشكلةوهي عند النقر عل الجزر اشارة الزائد لا يتم تفعيل اي شيء ماالحل برأيكم

عبد القادر المبيض-فلسطين غزة

#5
asdk2003 كتب:
الان لدي مشكلةوهي عند النقر عل الجزر اشارة الزائد لا يتم تفعيل اي شيء ماالحل برأيكم

هناك الكثير من الامور تحتاج إلى عملها لكي يصبح الأمر جاهزا...

لكي تريح رأسك من هذا الامر على الاخر و تدعيلي, استخدم المكون ExpressDBTree, من شركة http://www.devexpress.com و قد قامت ببرمجته مؤخرا

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

لتفعيل SmartLoadingفي هذا العنصر إذهب إلى Option-> trsmartRecordLoad .

لتحميل العنصر مجانا من هـــــــنا, النسخ غير محدودة سارع بالتحميل:D

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

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#6

اخي العزيز قمت بتنزيل الكود للdbtreeview ولكني لم استطع تركيبه يخبرني بما معناه انها ليست نسخة للتصميم هل ىبالامكان تعريفي كيفية تنصيبه

ولك جزيل الشكر

عبد القادر المبيض-فلسطين غزة

#7
asdk2003 كتب:
اخي العزيز قمت بتنزيل الكود للdbtreeview ولكني لم استطع تركيبه يخبرني بما معناه انها ليست نسخة للتصميم هل ىبالامكان تعريفي كيفية تنصيبه

ولك جزيل الشكر

أولا قم بإضافة المسارات الخاصة بمجلدات ال Source, الموجودة في كافة المجلدات التالية:

ExpressCommon Library

ExpressDBTree Suite

ExpressMemData

XP Theme Manager

بعدها لو فرضنا أنك تريد تنصيبها على Delphi2007 قم البحث عن

*d11*.dpk

قم بفتح نتائج البحث drag&drop على بيئة الدلفي, بعدها قم بعمل Compile للجميع و من ثم INstall لل Packges التي تبدأ ب Dcl فقط

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 14 أبريل 2008 في 16:33 — السبب: خطأ في الكتابة

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#8

قمت بتنفيذ التعليمات ولكنه اخبرني

ان ملف

xmdsre.res

مفقود هل من حل لديك

او إذا بالامكان نسخة كاملة من طرفك بدون نقصان

عبد القادر المبيض-فلسطين غزة

#9

انتبه إلى التالي:

اقتباس
بعدها قم بعمل Compile للجميع و من ثم INstall لل Packges التي تبدأ ب Dcl فقط

يجب ان تقوم بتنصيب بالترتيب التالي:

XP Theme Manager

ExpressMemData

ExpressCommon Library

ExpressDBTree Suite

لا يوجد نقص النسخة كاملة و قمت بتنصيبها عندي و استخدمها الان....

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

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#10

اخي العزيز

قمت بتنفيذ تعليماتك على جهاز آخر ونجحت بشكل كامل

ولكن المشكلة انني قمت بتنصيب خاطئ في البداية على جهازي

هل بالامكان ان اقوم بعملية تنظيف على جهازي

مع العلم انني استخدمت الامر clean

ام اقوم بفرمتتة الجهاز كيف استطيع التنصيب مرة اخرى

عبد القادر المبيض-فلسطين غزة

#11

لم تجب طلبي ماالعمل

عبد القادر المبيض-فلسطين غزة

#12

عليك بحذف الملفات التالية dcl*.bpl

ثم قم بإعادة التثبيت

#13

من وين احذفهم معلش غلبتك معي

عبد القادر المبيض-فلسطين غزة

مواضيع مشابهة