المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : إستفسار فى إستدعاء وظيفة من ملف دل فى النظام


عبود عبود
14-04-2017, 07:50 PM
السلام عليكم ورحمة الله وبركاته

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

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

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

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

:abc_113:

المـهاجر
14-04-2017, 08:32 PM
فعل الاضافة ميمورى ثم ضع هذا الكود فى زر

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)

عبود عبود
14-04-2017, 09:37 PM
تسلم إيدك أستاذ http://www.abc4web.net/vb/images/icons/icon_z.gif



شرح الكود إن أمكن " التعامل مع الميمورى " وهل كان لابد من إستخدام الميمورى ؟ وكيف تكون الطريقة مع ChooseFontA

المـهاجر
15-04-2017, 05:23 AM
وهل كان لابد من إستخدام الميمورى ؟
لابد

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

راجع الدالة هنا
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646914%28v=vs.85%29.aspx
ثم راجع المؤشر ChooseFontA هنا
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646832%28v=vs.85%29.aspx

موفق

عبود عبود
15-04-2017, 05:28 AM
لابد

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

راجع الدالة هنا
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646914%28v=vs.85%29.aspx
ثم راجع المؤشر ChooseFontA هنا
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646832%28v=vs.85%29.aspx

موفق

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

المـهاجر
15-04-2017, 03:32 PM
بعد استدعاء مربع انتقاء الخطوط ستكون هناك نتيجة بعد الانتقاء من المربع
لكنها لن تكون فى هيئة نص بسيط
ستكون فى صورة تشكيل من عدة متغيرات (مصفوفة غير متجانسة)
المتغيرات بداخل ستكون غير متجانسة قد يكون بعضها نصوص او حروف او بوليان و احيانا جداول
ما الحل ؟؟
ان تقوم بتجهيز التشكيل Structure قبل البدءفى استدعاء الدالة
و لابد من الاضافة ميمورى لأنك ستستخدم ذواكر النظام و ليس اللوا

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

ثامر أبو بلقيس
15-04-2017, 05:04 PM
أنصحك بإستخدام الاضافة ShellDialogs
فبها مربع الألوان و مربع الحروف معا
موفق

أحســنت :abc_138:

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

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

result = DLL.CallFunction("AutoPlay\\Docs\\4.dll", "BELKISS", "", DLL_RETURN_TYPE_INTEGER, DLL_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);


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

المـهاجر
15-04-2017, 06:02 PM
هناك ايضا ملف مفتوح ل وورم على ما اتذكر
بالمرفقات

عبود عبود
15-04-2017, 09:18 PM
مرور طيب وكريم ومتوقع منك أبوبلقيس