إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيف تحذف الخانات الفارغة في grid او ListBox

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • #16
    المشاركة الأصلية بواسطة المحترف اقلي مشاهدة المشاركة
    السلام عليكم
    ما كنت لاجيب كما اجبت استاذ
    شكرا لك و للشيخ عبود
    لم أكن أعلم أنك تعرف ولذلك وجب لفت الإنتباه أنه : عندما تستخدم pairs فإنه هناك شيئ إسمة مفتاح وآخر قيمة داتا "معلومات"
    ولذلك فهناك التكرار :

    for i=1,5 do أى أن التكرار يكون من الرقم 1 وحتى 5 فليس من الضرورى إستخدام pairs

    والتكرار بإستخدام مفتاح وقيمة وهو :

    for i,d in pairs(s) do أى نريد إستخدام التكرار العددى لقيم ما موجودة فى جدول ومعرفة بيانات الجدول من خلال القيمة d

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


    تحياتى لكم

    تعليق


    • #17
      المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
      [COLOR="Magenta"]لم أكن أعلم أنك تعرف
      لم اقصد ما فهمته تماما....... بل لقد استفدت من اجابة الاستاذ و من مداخلتك الان ........ انما صححت مفاهيمي اصلا رغم استعمالي كثيرا للكود

      تعليق


      • #18
        السلام عليكم ورحمة الله وبركاته

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

        كود PHP:
        Grid.GetProperties("Grid1");
        Grid.SelectAll("Grid1");
        Grid.EditCopy("Grid1");
        str Clipboard.GetText();
        tamer = {};     
        for 
        line in string.gfind(str"[^".."\r\n".."]+") do  
        if 
        String.Length(line) >Grid.GetColumnCount("Grid1")  then 
        table
        .insert(tamerline);  
        result2 Table.Concat(tamer"\r\n"1TABLE_ALL);  
        end 
        end
        Clipboard
        .CopyText(result2);
        Grid.DeleteAllItems("Grid1");Grid.SetProperties("Grid1"x);
        Grid.EditPaste("Grid1"); 
        تقديري

        تعليق


        • #19
          المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
          السلام عليكم ورحمة الله وبركاته

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

          كود PHP:
          Grid.GetProperties("Grid1");
          Grid.SelectAll("Grid1");
          Grid.EditCopy("Grid1");
          str Clipboard.GetText();
          tamer = {};     
          for 
          line in string.gfind(str"[^".."\r\n".."]+") do  
          if 
          String.Length(line) >Grid.GetColumnCount("Grid1")  then 
          table
          .insert(tamerline);  
          result2 Table.Concat(tamer"\r\n"1TABLE_ALL);  
          end 
          end
          Clipboard
          .CopyText(result2);
          Grid.DeleteAllItems("Grid1");Grid.SetProperties("Grid1"x);
          Grid.EditPaste("Grid1"); 
          تقديري
          اعدك بمراجعته
          لكن هناك ملحوظه هامه
          لا يمكنك عمليا إستخدام الكود
          كود PHP:
          Grid.SelectAll("Grid1"
          بدون مواجهة مشكلة خطيرة قد لا تكون منتبه لها

          سيقوم هذا الكود بتشغيل كافة أكواد الجريد الموجودة فى الحدث on selection changed الخاصة بالجريد الذى وجهت اليه الكود
          جرب و ضع فى هذا الحدث رسالة مثلا
          و نفذ الكود و ستفهم

          أيضا سيتسبب الكود
          كود PHP:
          Grid.EditPaste("Grid1"); 
          قى تشغيل كافة أكواد الجريد الموجودة فى الحدث on cell changed بدون سابق إنذار

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


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

          كود PHP:
          for i=1Grid.GetRowCount("Grid1")+do
                if 
          Grid.GetCellText("Grid1"i1) == "" then
                Grid
          .SetRowHeight("Grid1"i0true);
                
          end
             end 
          حل بسيط جدا و لا يعانى من مشاكل كود الحذف
          بالتوفيق

          تعليق


          • #20
            المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
            عندما نستخدم pairs فإنه هناك شيئ إسمة مفتاح وآخر قيمة داتا "معلومات"
            ولذلك فهناك التكرار :

            for i=1,5 do أى أن التكرار يكون من الرقم 1 وحتى 5 فليس من الضرورى إستخدام pairs

            والتكرار بإستخدام مفتاح وقيمة وهو :

            for i,d in pairs(s) do أى نريد إستخدام التكرار العددى لقيم ما موجودة فى جدول ومعرفة بيانات الجدول من خلال القيمة d

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


            تحياتى لكم
            شكرا الأستاذ عبود على هذه الالتفاتة و هذا التذكير المفيد بارك الله فيك


            شكرا أخي المهاجر بارك الله فيك ملاحظات مفيدة جدا شكرا

            تعليق

            مواضيع تهمك

            تقليص

            المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
            المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
            المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
            المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
            المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
            يعمل...
            X