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

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

إستفسار فى إستدعاء وظيفة من ملف دل فى النظام

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

  • إستفسار فى إستدعاء وظيفة من ملف دل فى النظام

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

    أهلا ومرحبا بكم

    سؤالى عن كيفية إستدعاء وظيفة ChooseFontA ديالوج إختيار فونت ووظيفة ChooseColorA ديالوج إختيار لون من ملف الدل comdlg32.dll

    حاولت كالتالى دون جدوى :

    كود:
    result = DLL.CallFunction("comdlg32.dll", "ChooseColorA", "ChooseColor", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);

  • #2
    فعل الاضافة ميمورى ثم ضع هذا الكود فى زر

    كود:
    function ColorDlg(Hndl,Basicolor,NewColor)
    	
    	local ret=nil
    	local TblClr={}
    	local CLR = Memory.CreateArray(ARRAY_LONG, 16);
    	local ChoseColor = Memory.CreateStructure("long, long, long, long, long, long, long, long, long");
    
     if NewColor then
     	for i=1, 16 do
      if NewColor[i] then 
      	Memory.SetArrayData(CLR, i-1, NewColor[i]);
      else
      	Memory.SetArrayData(CLR, i-1, 0);
      end
     	end
     end
     
     Memory.SetStructureData(ChoseColor, 1, 0, Memory.Size(ChoseColor), "");
     Memory.SetStructureData(ChoseColor, 2, 0, Hndl, "");
     Memory.SetStructureData(ChoseColor, 4, 0, Basicolor, "");
     Memory.SetStructureData(ChoseColor, 5, 0, CLR, "");
     Memory.SetStructureData(ChoseColor, 6, 0, 259, "");
     local result = DLL.CallFunction("comdlg32.dll", "ChooseColorA", ChoseColor, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
     if result ~= 0 then
     	local RgbRes = Memory.GetStructureData(ChoseColor, 4, 0, "")
     	return1 = RgbRes
     
     	for i=1, 16 do
      TblClr[i] = Memory.GetArrayData(CLR, i-1, ARRAY_LONG);
     	end	
     	return2 = TblClr
     	
     end	
     Memory.FreeArray(CLR);
    	Memory.FreeStructure(ChoseColor);
    	return return1, return2
    end
    
     ColorDlg(Application.GetWndHandle(),255,NewColor)

    تعليق


    • #3
      تسلم إيدك أستاذ



      شرح الكود إن أمكن " التعامل مع الميمورى " وهل كان لابد من إستخدام الميمورى ؟ وكيف تكون الطريقة مع ChooseFontA
      التعديل الأخير تم بواسطة عبود عبود; الساعة 15-04-2017, 04:44 AM. سبب آخر: تعديل جزء من السؤال بعد الفهم الجزئى للجواب

      تعليق


      • #4
        المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
        وهل كان لابد من إستخدام الميمورى ؟
        لابد
        المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
        وكيف تكون الطريقة مع ChooseFontA
        عليك الرجوع الى Msdn دائما قبل الشروع فى استدعاء الدوال
        ChooseFontA مثلها مثل ChooseColorA
        كلاهما pointer to a structure

        راجع الدالة هنا
        https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
        ثم راجع المؤشر ChooseFontA هنا
        https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

        موفق

        تعليق


        • #5
          المشاركة الأصلية بواسطة المـهاجر مشاهدة المشاركة
          لابد

          عليك الرجوع الى Msdn دائما قبل الشروع فى استدعاء الدوال
          ChooseFontA مثلها مثل ChooseColorA
          كلاهما pointer to a structure

          راجع الدالة هنا
          https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
          ثم راجع المؤشر ChooseFontA هنا
          https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

          موفق
          طيب إن أمكن مثال ChooseFontA لأنى مش فاهم قوى ولكن أحاول الفهم من خلال المثال

          تعليق


          • #6
            بعد استدعاء مربع انتقاء الخطوط ستكون هناك نتيجة بعد الانتقاء من المربع
            لكنها لن تكون فى هيئة نص بسيط
            ستكون فى صورة تشكيل من عدة متغيرات (مصفوفة غير متجانسة)
            المتغيرات بداخل ستكون غير متجانسة قد يكون بعضها نصوص او حروف او بوليان و احيانا جداول
            ما الحل ؟؟
            ان تقوم بتجهيز التشكيل Structure قبل البدءفى استدعاء الدالة
            و لابد من الاضافة ميمورى لأنك ستستخدم ذواكر النظام و ليس اللوا

            أنصحك بإستخدام الاضافة ShellDialogs
            فبها مربع الألوان و مربع الحروف معا
            موفق

            تعليق


            • #7
              المشاركة الأصلية بواسطة المـهاجر مشاهدة المشاركة
              أنصحك بإستخدام الاضافة ShellDialogs
              فبها مربع الألوان و مربع الحروف معا
              موفق
              أحســنت

              تعليق


              • #8
                و حتى لا يكون المرور بدون ترك أثر هاهي محاولة في بناء دل يخاطب
                النظام فقط خصصت العمل للون الخط وحجمه و نوعه أي لم أكمـــل
                الملف
                https://up.top4top.net/downloadf-470jblf41-rar.html

                الأكـــواد و تطبيقها على عنصر Label1 صدرت نواتج الإختيار إلى القرص سي ثم استدعائها

                كود PHP:
                result DLL.CallFunction("AutoPlay\\Docs\\4.dll""BELKISS"""DLL_RETURN_TYPE_INTEGERDLL_CALL_CDECL);
                tamer TextFile.ReadToTable("C:\\belkiss.txt");
                tblLabelProps = {};
                tblLabelProps.FontName tamer[1];
                tblLabelProps.FontSize =  tamer[2]
                tblLabelProps.ColorNormal =Math.HexToNumber(tamer[3])
                Label.SetProperties("Label1"tblLabelProps); 

                هـــي محاولة بناء حسب الطلب لا غير موفق

                تعليق


                • #9
                  هناك ايضا ملف مفتوح ل وورم على ما اتذكر
                  بالمرفقات
                  الملفات المرفقة

                  تعليق


                  • #10
                    مرور طيب وكريم ومتوقع منك أبوبلقيس
                    التعديل الأخير تم بواسطة عبود عبود; الساعة 20-04-2017, 06:31 PM.

                    تعليق

                    مواضيع تهمك

                    تقليص

                    المنتدى: القسم العام نشرت بواسطة: 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