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

كيفية قراءة كلمة من adobe Reader عند وضع المؤشر عليها

رائج
بدأه Wael Dalloul في 28 يونيو 2006 · 60 رد · 11,191 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#26

إذاً حين ترون الوقت المناسب أخبروني .. ربما حينها أكون قد أنهيت الكود :P

حتى أنا سأكون مشغول هذا الاسبوع وربما لن أستطيع دخول المنتدى لظروف العمل حيث أني مضطر للذهاب لمدينة أخرى لكم يوم ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#27
اقتباس
إذاً حين ترون الوقت المناسب أخبروني .. ربما حينها أكون قد أنهيت الكود

يبدو أنه تم نسيان هذا الموضوع ...

ما علينا ...

حتى لا يقال أننا نكتم المعلومات :

بعد تنزيل Adobe Acrobat 7.0 SDK , لمن أراد تطبيق الأمثلة يمكن إستخدام Visual C++ 6.0 وبعد أن يتم عمل build بنجاح بإمكانك وضع الـ plugin الناتج في المجلد plug_ins لبرنامج Adobe Acrobat Professional 7.0 .. لايمكن إستعمال هذه الـ plugins مع Adobe Reader إلا بعد دفع مبلغ لشركة Adobe ويمكن الرجوع للوصلة التي ذكرت في بداية الموضوع ...

المجلد الذي نضع فيه الـ plugin هو "Adobe\Acrobat 7.0\Acrobat\plug_ins" ...

أي معلومات في هذا المجال إن كان بمقدوري توفيرها إن شاء الله سأقوم بذكرها لمن أراد بحيث يكون قد قرأ جزء كبير من المعلومات في الـ SDK ...

هذا جزء مما توصلت له ...

الصورة الأولى :

Get word when left click mouse button + CTRL

الصورة الثانية :

Add word to the context menu

post-62922-1158681944_thumb.jpg

post-62922-1158681987_thumb.jpg

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#28
اقتباس
يبدو أنه تم نسيان هذا الموضوع ...

لا لم يتم نسيان الموضوع ابداً فانا ما ازال اعمل على الامر و احيانا احلم به :D امهلني فقط الى بعد انتهاء المدة التي في توقيعي بقليل وسوف اعود

دائما يا اخي cipher يكون هناك امور تشغلك عن الامور التي تشعر و انت تعمل بها بمتعة لا مثيل لها

و سوف اعود لمناقشة هذا الامر و لن انساه حتى احقق ما اريده

اقتباس
هذا جزء مما توصلت له ...

الصورة الأولى :

Get word when left click mouse button + CTRL

الصورة الثانية :

Add word to the context menu

هل استطعت الحصول على key :D يبدوا ذلك

شيئ عظيم اخي cipher ان تحقق ما تريد

انا كنت مشغول بدعم اللغة العربية و سوف اعرض بعض النتائج التي توصلت اليها عما قريب بعد انتهاء الفحوصات :huh:

فما زلت في بداية الطريق (h)

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

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

#29
اقتباس
هل استطعت الحصول على key يبدوا ذلك

لا .. راجع ما قلت هنا ..

اقتباس
بإمكانك وضع الـ plugin الناتج في المجلد plug_ins لبرنامج Adobe Acrobat Professional 7.0 .. لايمكن إستعمال هذه الـ plugins مع Adobe Reader إلا بعد دفع مبلغ لشركة Adobe ويمكن الرجوع للوصلة التي ذكرت في بداية الموضوع ...

أنا أستعمل Adobe Acrobat Professional 7.0 لتنفيذ الأمثلة ...

في حالة أني أريد أن يدعم برنامجي -طبعاً تجاري حينها- الـ Adobe Reader سأقوم بشراء الـ KEY ..

اقتباس
انا كنت مشغول بدعم اللغة العربية و سوف اعرض بعض النتائج التي توصلت اليها عما قريب بعد انتهاء الفحوصات

دعم اللغة العربية أين ؟

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#30
اقتباس
دعم اللغة العربية أين ؟

في برنامج للحصول على الكلمة من تحت الماوس :D و سوف اعرض بعض النتائج عما قريب باذن الله B)

و بعد ذلك نكمل النقاش.

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

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

#31
اقتباس
في برنامج للحصول على الكلمة من تحت الماوس و سوف اعرض بعض النتائج عما قريب باذن الله

منتظر صور عن النتائج لبرنامجك ...

حالياً مشكلة الـ Adobe أستطيع أعتبرها محلولة ... طبعاً هناك ملفات PDF لن تستطيع الحصول على النص الأصلي (حتى الـ Adobe نفسها لا تقدر على ذلك ) إلا باستخدام OCR ...

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

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#32
اقتباس
منتظر صور عن النتائج لبرنامجك ...
إن شاء الله فقط انتظر قليلا حتى انهي الامتحانات و اصلح بعض المشاكل
اقتباس
طبعاً هناك ملفات PDF لن تستطيع الحصول على النص الأصلي (حتى الـ Adobe نفسها لا تقدر على ذلك ) إلا باستخدام OCR ...

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

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

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

#33

بابيلون يستخدم API Hook و OCR ...

بالنسبة لملفات الـ PDF فهو يستعمل طريقة في الأغلب مشابه للتي إستخدمتها ويستخدمها yahoo plugin .. سأتاكد من هذا لاحقاً بمحاولة فهم طريقة Babylon & Yahoo plugin بعمل Disassembling ..

بابليون لديهم مشاكل بالنسبة للغة العربية و أظن للغات أخرى فأحياناً كثيرة النتيجة تكون خاطئة وأحيانا تكون مقاربة في حالة إختياره للنتيجة من OCR ...

في بعض حالات ستجده يخبرك أن adobe acrobat لا يسمح بالحصول على محتويات الصفحة في ملف الـ PDF ... لكن Yahoo plugin قادر على الحصول على نفس الكلمة ...

اقتباس
إن شاء الله فقط انتظر قليلا حتى انهي الامتحانات و اصلح بعض المشاكل

هل أصبحت قادر على الحصول على الكلمة باللغة العربية ؟ حتى وإن كانت لغة الواجهه للبرامج non-unicode ليست العربية ؟

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#34
اقتباس
هل أصبحت قادر على الحصول على الكلمة باللغة العربية ؟ حتى وإن كانت لغة الواجهه للبرامج non-unicode ليست العربية ؟

لقد اصبحت قادر على جلب الكلمة باللغة العربية و ذلك في حال كانت لغة الواجهة للبرنامج هي Unicode فقط حيث قمت باستخدام وحدة SynUnicode من مشروع SynEdit و ذلك للحصول على توابع تدعم Unicode مثل GetTextExtentPointW, StrCopyW.....

و قمت ايضا باستخدام عناصر Tnt و ذلك لعرض نصوص ال Unicode في التطبيق

مشكلة دعم اي لغة في حال كانت الواجهة لا تدعم Unicode كنت اعمل عليها و لكن بخصوص الفحص توقفت و إن شاء الله سوف اكمل بعد الفحص

هل المشكلة تكمن في نسخ القيمة من نص لا يدعم Unicode الى نص يدعم Unicode؟ ان افكر في هذا و احاول حل المشكلة

فاذا كانت هذه هي المشكلة يمكن استخدام التابع IsWindowUnicode لمعرفة هل هو Unicode ام لا و بعد ذلك اتخاذ الاجراء المناسب للنسخ :) إن شاء الله اكمل نقاشك بعد الفحص

و لن انسى الموضوع :D

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

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

#35
اقتباس
هل المشكلة تكمن في نسخ القيمة من نص لا يدعم Unicode الى نص يدعم Unicode؟

لم اعد استطيع ترك الموضوع :D (h) شييييييييق للغاية

يبدوا انّ المشكلة اكبر من هذا فجميع اللغات التي يتم رسمها من اليسار الى اليمين يتم الحصول عليها بشكل صحيح و حتى و لو لم تكن الواجهة تدعم Unicode

اما اللغات التي يتم رسمها من اليمين الى اليسار فتحدث المشكلة بها اذا كانت الواجهة لا تدعم Unicode

لقد بحثت كثيرا عن المشكلة ولم استطع حلها!! :blink: صراحة لا اعرف اين المشكلة حتى اقوم بحلها

يبدوا انه من قام بدعم الحصول على اللغة العربية او اي لغة (RTL) قد عانى كثيرا حتى فعلها. :^)

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

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

#36
اقتباس
يبدوا انّ المشكلة اكبر من هذا فجميع اللغات التي يتم رسمها من اليسار الى اليمين يتم الحصول عليها بشكل صحيح و حتى و لو لم تكن الواجهة تدعم Unicode

اما اللغات التي يتم رسمها من اليمين الى اليسار فتحدث المشكلة بها اذا كانت الواجهة لا تدعم Unicode

لقد بحثت كثيرا عن المشكلة ولم استطع حلها!! صراحة لا اعرف اين المشكلة حتى اقوم بحلها

يبدوا انه من قام بدعم الحصول على اللغة العربية او اي لغة (RTL) قد عانى كثيرا حتى فعلها

:P

قلت هذا قبل فترة طويلة (تقريباً أكثر من ثلاث سنوات :D )...

شخصياً توصلت للحل كما لاحظت ذلك في مدونتي ...

منتظر أرى حلك لهذه المشكلة ...

عليك أولاً بمعرفة ماهي المشكلة وما سببها ... سأظل معك في النقاش إن شاء الله ...

بإمكانك الإطلاع على حل Babylon للمشكلة ;)

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#37

اذكر لك القصة من اولها اذاً:

هل تعلم اخي cipher لقد قرأت المشاركة التي في قسم ال API اكثر من عشر مرات حتى استطعت ان افهم ماذا علي ان افعل واسمح لي ان اعلق عليها

اولاً:A`WaR

اقتباس
والطريقة الصعبة ( كما شاهدتها في احدي البرامج الصينية ) بحيث لا يحتاج المستخدم لتظليل الكلمة، فقط وضع الماوس لعدة ثوان ..

1 - استخدام hook لاستلام استدعاء دالة مثل TextOutA/W الخ

2 - الحصول علي موقع مؤشر الماوس x/y

3- ومقارنته مع الاحداثيات التي تم تمريرها لدالة TextOut ..وحساب حجم الخط المستخدم، للحصول علي بداية اول حرف للكلمة المراد ترجمته والتي تم وضع مؤشر الماوس عليها ..

هذه هي لب الموضوع و تلخص فكرته بثلاث خطوات و هي اكثر مشاركة مفيدة في كل الموضوع

بعد ذلك تحدث الاخ Developer .NET

اقتباس
1- تقوم بغرز ملف dll الخاص بال hook داخل جميع المسالك thread ال GUI التي تعمل في النظام.

2- تقوم بإستبدال عنوان دالة TextOut بدالة خاصة بك في ال DLL لها نفس ال signature .

3- هذا الدلة تقوم تقوم بمعالجة Data struct لحفظ الاحداثيات و حجم الخط عند مناداته لكل نافذة. ال data struct هذا له تصميم خاص .... إلى الان ما تخيلت كيف راح يكون.

4- عند استقبال اي رسالة WM_PAINT، يجب تنظيف قائمة السطور التي حفظت لأي نافذة، لان بيانات الأحداثيات السابقة سوف تتغير كلها .

5- راح تستقبل ال Mouse Move لكل نافذة، عند توقف الماوس في مربع صغير لمدة معينة، سوف تقوم بالبحث في ال data structr لديك لأيجاد اين الكلمة التي فوقها المؤشر.

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

و بعد ذلك جاء الاخ هاني الاتاسي ليوضح هذا الشيئ في قوله

اقتباس
ليس من الداعي حفظ كل الكلمات بعد ارسال رسالة WM_PAINT طبعا بعض البرامج لا تعالج كل النافذة ولكن تعالج فقط نافذة صغيرة حدث التغيير فيها ..

لذلك المفروض فقط مراقبة ال Textout API .. ومن أجل اجبار البرنامج على استدعاء هذا التابع عندما يتوقف مؤشر الفأرة وقت معين فوق الكلمة أو عند ضغط زر معين على الكيبورد ، يقوم الكود باستعداء ValidateRect والتي بدورها تستدعي WM_PAINT ويقوم كودهم باستدعاء TextOut ..

خطأ صغير ..

يتم استدعاء .. InvalidateRect .. ومن ثم UpdateWindow من أجل فورية المعالجة للرسالة WM_PAINT

حيث انّ الطريقة السليمة هي استدعاء التابع InvalidateRect لاعادة رسم المنطقة التي يتواجد بها النص و بالتالي استدعاء لتوابع الرسم

The InvalidateRect function adds a rectangle to the specified window's update region. The update region represents the portion of the window's client area that must be redrawn.

بعد ذلك تمت الاشارة من قبل cipher الى carl Kenner

اقتباس
أثناء تصفحي لبعض الاسئله في google groups وجدت احد المبرمجين اسمه carl kenner قضى مده كبيره يستعمل softice وdisasm ... ليعرف فكره القاموس

بحثت عن كل شيئ في الانترنت له علاقة ب carl kenner الذي استطاع فعل ما يريد و لكن الاكواد المذكورة له كانت لا تعمل تحت win nt و بها العديد من المشاكل قد اشار اليها بنفسه

على ما اعتقد انّ هذا الشخص استطاع ان يفعل ما يريد بعد عناء طويل طويل .... حيث انّ اغلب المعلومات المفيدة المتوفرة في الانترنت عن هذا الموضوع كانت من carl kenner

اقتباس
قلت هذا قبل فترة طويلة (تقريباً أكثر من ثلاث سنوات )...

شخصياً توصلت للحل كما لاحظت ذلك في مدونتي ...

منتظر أرى حلك لهذه المشكلة ...

هل تقصد ذلك عندما قلت في المشاركة التي في قسم API

اقتباس
السلام عليكم

أعلم ان الموضوع مر عليه سنة وبضع ايام , لكن حبيت أستعيد الذكريات.

أعلم ان الاخوة الذين شاركوا في الموضوع لن يشارك اي منهم فيه ثانية لأسباب عديدة ( بعضها تعلمها ادارة الموقع ) ...

حبيبت فقط أني أطلع الشباب الجدد على المنتديات العربية بأنها ما زالت ضعيفة جدا جدا جدا .

المشكله في الموضوع السابق هي اللغات RTL كالعربية و العبرية ... أما اللغات LTR فلا مشكله فيها ....

اليوم وانا اتحدث مع Carl Kenner المذكور سابقا في احدى ردودي أبدى الترحيب بالمساعدة حين تتاح له فرصة . أسلوبه في الحديث معي جعلني أعرف الفرق الكبير بين مبرمجينا العرب و بين المبرمجين الأجانب ... شتان ...

أتمنى للجميع التوفيق ...

هل الى هنا كنت ما تزال تقوم بحل مشكلة العربي؟ هل ساعدك carl kenner في شيئ ما؟

بعد ذلك جاء الاخ راكان الحنيطي و حاول في الموضوع و لكنه كان بعيداً نوعا ما, حيث على ما اعتقد كان في ذلك الزمن مفهوم ال Hook غير واضح بالنسبة للمبرمجين العرب.

بعد ذلك انتهى الموضوع و مات و لم يعد احد يناقش فيه :)

نعود الان الى الحاضر بعد جولة في الماضي:

نبدأ الان

اقتباس
عليك أولاً بمعرفة ماهي المشكلة وما سببها ... سأظل معك في النقاش إن شاء الله ...

بإمكانك الإطلاع على حل Babylon للمشكلة

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

كيف يمكنني الاطلاع على حل Babylon للمشكلة لم افهم عليك بالضبط هل تقصد عمل disasm له

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

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

#38
اقتباس
هل الى هنا كنت ما تزال تقوم بحل مشكلة العربي؟ هل ساعدك carl kenner في شيئ ما؟

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

أول مرة توصلت للحل هي أول مرة أضع فيها النتائج في مدونتي (حالياً enashir مغلقة) ...

بالنسبة لـ Carl Kenner كان أبدى الترحيب بالمساعدة ولكنه أخبرني أن له وقت كبير حين قام بالبحث في ذلك الشئ لذا لم أتحدث معه بعدها فكما أعلم هو مشغول ..

اقتباس
كيف يمكنني الاطلاع على حل Babylon للمشكلة لم افهم عليك بالضبط هل تقصد عمل disasm له

نعم .

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#39

اولا بالنسبة ل

اقتباس
لقد اصبحت قادر على جلب الكلمة باللغة العربية و ذلك في حال كانت لغة الواجهة للبرنامج هي Unicode فقط حيث قمت باستخدام وحدة SynUnicode من مشروع SynEdit و ذلك للحصول على توابع تدعم Unicode مثل GetTextExtentPointW, StrCopyW.....

فقد اخطأت في ذلك فمن المعروف انّ التابع GetTextExtentPointW

هو تابع API و موجود ولا حاجة للحصول عليه من اي مكتبة اخرى

لقد عرفت المشكلة من اين!!؟حيث انّ التابع

 function UTF8Decode(const S: UTF8String): WideString;

يعمل في حال النص rtl اما اذا كان النص RTL فلا يعمل, حيث يقوم باعادة لا شيئ اذا كان النص RTL اما اذا كان LTR

فيعمل بشكل صحيح

لقد تتبعت هذا التابع و وجدت انه يستدعي تابع اخر للتحويل و هو

function Utf8ToUnicode(Dest: PWideChar; MaxDestChars: Cardinal; Source: PChar; SourceBytes: Cardinal): Cardinal;

لا اعلم ما هي المشكلة التي لا تجعل هذا التابع يقوم بالتحويل و لكن سوف ابحث في الانترنت عن مشاكل مع RTL لهذا التابع

و اذا لم اجد شيئ فسوف اقوم بفعل ذلك بنفسي

هل هذا Bug ضمن API؟ :huh:

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

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

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

#40

Utf8ToUnicode:

اقتباس
Converts a string of UTF-8 characters to a Unicode string.

لاحظ الجزء باللون الأزرق

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#41
cipher كتب:
Utf8ToUnicode:

لاحظ الجزء باللون الأزرق

شكرا اخي cipher فقد استخدمت التابع AnsiToUtf8 لكي اقوم بالتحويل الى UTF-8 و بعد ذلك استخدمت التابع Utf8ToUnicod للتحويل الى unicode

و نجحت العملية

سؤال: الا يوجد تابع يقوم بالتحويل بشكل مباشر من Ansi الى Unicode؟

الان اصبحت قادر على الحصول على الكلمة العربية من التوابع التالية:

TextOutA,ExtTextOutA,DrawTextA وبقية عصابة اخرج النص على الشاشة من نوع A

اما بالنسبة الى عصابة اخرج النص من النوع w فقد اصبحت قادر على الحصول على اي كلمة من لغة LTR فقط

لماذا التوابع هذه لا تحضر الكلمة بشكل صحيح في حال كانت اللغة RTL لا اعلم و لكن هنا تكمن المشكلة و يجب معرفة سبب ذلك

حيث انه بعد عمل hook للتابع ExtTextOutw مثلا قمت بعرض رسالة تحتوي على النص الذي قام هذا التابع بجلبه و ذلك باستخدام التابع MessageBoxW لكي اعرف من اين المشكلة

فعلا الكلمة تظهر بشكل صحيح من اي لغة LTR اما اذا كانت اللغة RTL فيجلب مجموعة من الاحرف, لا اعرف من اين لا علاقة لها بالنص الموجود تحت مؤشر الماوس :blink:

و هذه هي المشكلة التي يجب حلها الان! :s

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

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

#42
waeldalol كتب:
فعلا الكلمة تظهر بشكل صحيح من اي لغة LTR اما اذا كانت اللغة RTL فيجلب مجموعة من الاحرف, لا اعرف من اين لا علاقة لها بالنص الموجود تحت

حاول النظر اليها مقلوبة :D

d4baa0.gif
#43
اقتباس
حيث انه بعد عمل hook للتابع ExtTextOutw مثلا قمت بعرض رسالة تحتوي على النص الذي قام هذا التابع بجلبه و ذلك باستخدام التابع MessageBoxW لكي اعرف من اين المشكلة

فعلا الكلمة تظهر بشكل صحيح من اي لغة LTR اما اذا كانت اللغة RTL فيجلب مجموعة من الاحرف, لا اعرف من اين لا علاقة لها بالنص الموجود تحت مؤشر الماوس

و هذه هي المشكلة التي يجب حلها الان

هي المشكلة هنا صحيح ... لكن لم تقم إلى الآن بمعرفة ما الذي صار ... :P

سأظل معك حتى تصل لسبب المشكلة ولحلها إن شاء الله

إقرأ شرح MSDN للدالة ExtTextOut

هناك إحدى النقاط المهمة جداً وهي مفتاح معرفة ما يجري ... إقرأ ما ورد هناك عشرات المرات

كتاب Windows Graphics Programming Win32 GDI and DirectDraw by Feng Yuan سيفيد كثيراً في فهم الكثير من الأشياء ...

اقتباس
حاول النظر اليها مقلوبة

سنحتاج إلى النظر إليها مقلوبة في حالات كثيرة لكن بعد أن نراها ;)

waeldalol :

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

ركز على النقاط التي أشير إليها باللون الأزرق ...

ستقول لي كتاب Feng Yuan كبير !

طيب نختصر عليك الوقت إقرأ الباب رقم 15 .. قد تحتاج لقراءة أجزاء أخرى من الكتاب

حظ موفق

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

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

هذا ما اريده اخي cipher انا الان اصبحت لا احب اي حل جاهز لانه هناك متعة حقيقية في مشاكل مثل هذه.

سوف اقوم بقرأة ما اشرت اليه شكرا لك :)

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

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

#45

cipher:

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

و سوف اقوم بالعمل على ما سبق. و الله ولي الامر والتوفيق

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

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

#46
اقتباس
سؤال: الا يوجد تابع يقوم بالتحويل بشكل مباشر من Ansi الى Unicode؟

اسف جدا لسؤالي هذا السؤال مع وجود الانترنت فلقد اطلعت على الرابط التالي

Globalization Step-by-Step

و لقد افادني كثيرا في معرفة الكثير من المعلومات عن Unicode و اصبحت الان اميز بين UTF-8 و بين UTF-16 و الذي يساوي النمط Widechar

اريد ان اشكرك كثيرا على الكتاب الذي اعطيتني اسمه فهو فعلا مفيد جدا و قد توضحت لي الكثير من الامور حيث كنت اقرأ في MSDN احيانا عن توابع او بنى ل datatypes ولا افهم كثيراً.

نعود لدعم ال RTL:

ليس هناك مشكلة مع لغات RTL و ذلك في التوابع drowtextw, textoutw و انما هي فقط في Exttextoutw

بنية Exttextout المصرح عنها هي

BOOL ExtTextOut(
  HDC hdc,		  // handle to DC
  int X,			// x-coordinate of reference point
  int Y,			// y-coordinate of reference point
  UINT fuOptions,   // text-output options
  CONST RECT* lprc, // optional dimensions
  LPCTSTR lpString, // string
  UINT cbCount,	 // number of characters in string
  CONST INT* lpDx   // array of spacing values
);

بعد قراءة شرح MSDN لهذا التابع اكثر من مرة لم استطع ان احدد سبب المشكلة ولكن قد تكون من احد الامور التالية:

المصفوفة lpstring للتابع exttextout هي عبارة عن مصوفة يتم اعادتها الى التابع ExtTextOut من التابع GetCharacterPlacement حيث يتم معالجة امور اللغة و لا يجب على التابع ExtTextOut عمل اي شيئ سوى اخراج النص

cipher: لقد لفت انتباهي الكلام التالي:

اقتباس
For ExtTextOutW, the glyph indexes are saved to a metafile. However, to display the correct characters the metafile must be played back using the same font. For ExtTextOutA, the glyph indexes are not saved.

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

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

#47
اقتباس
سؤال: الا يوجد تابع يقوم بالتحويل بشكل مباشر من Ansi الى Unicode؟

يوجد ..

إن كنت تبحث في الـ unicode ولم يمر عليك المواقع الآتي ذكرها (خصوصاً وانك تبرمج بدلفي) فيعني أنك لم تبحث جيداً :P

Mike Lischke له باع في الـ unicode ستجد في موقعه ما يفيدك

http://www.lischke-online.de

Delphi Fundamentals

http://www.tntware.com

وغيرها ...

اقتباس
اريد ان اشكرك كثيرا على الكتاب الذي اعطيتني اسمه فهو فعلا مفيد جدا

أنت تأمر .. Feng Yuan يعتبر GDI geek وكتابه من أفضل الكتب في هذا المجال ..

اقتباس
the glyph indexes are saved to a metafile

رائع .. You got the point ...

حاول أن تعرف قيم fuOptions في حالة كون النص RTL حينها قد تدرك شيئاً ...

حالياً عليك معرفة ما معنى ما هو باللون الأزرق ...هنا مفتاح اللغز ...

حتى لا تضع الكثير من الوقت :

مرة أخرى إقرأ كتاب Feng الجزء 14.1 WHAT'S A FONT?

ثم

15.3 SIMPLE TEXT DRAWING

15.4 ADVANCED TEXT DRAWING

منتظر ردك في هذه النقطة ...

بعدها ستحتاج لقراءة GetCharacterPlacement ... هي معقدة نوعاً ما لذا فهناك حل جديد من MS سأذكره لاحقاً (هو مذكور في كتاب Feng وفي احد الأجزاء التي أشرت إليها قبل قليل :P ) ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#48
اقتباس
إن كنت تبحث في الـ unicode ولم يمر عليك المواقع الآتي ذكرها (خصوصاً وانك تبرمج بدلفي) فيعني أنك لم تبحث جيداً

بالفعل انا لم ابحث جيدا, او لم يكن لدي الوقت الكافي لفعل ذلك :P

اقتباس
هو مذكور في كتاب Feng وفي احد الأجزاء التي أشرت إليها قبل قلي

هل تقصد Uniscribe لقد قرأت شيئ ما عنه في MSDN

اقتباس
مرة أخرى إقرأ كتاب Feng الجزء 14.1 WHAT'S A FONT?

لقد قرأت الفصل 14 و لكن لم افهم كثيرا سوف اعيد القراءة مرة اخرى

شكراً لك على المساعدة

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

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

#49
اقتباس
حاول أن تعرف قيم fuOptions في حالة كون النص RTL حينها قد تدرك شيئاً ...

في حال كان النص المعروض عربي او عبري(RTL) تكون القيم المفعلة في fuOptions هي ETO_GLYPH_INDEX + ETO_CLIPPED

اي يتم اخراج النص على شكل مصفوفة من glyph indexes و ليس من character codes دائما في حال كان النص RTL و لا يتم استخدام قيمة ETO_RTLREADING لعرض النص من اليمين الى اليسار. اي انّ النص يعرض بشكل صحيح باستخدام glyph indexes دون الحاجة الى القيمة ETO_RTLREADING لعرض النص من اليمين الى اليسار لذلك لا يكون هناك معنى من استخدام ETO_RTLREADING مع ETO_GLYPH_INDEX لان الامر قد تم معالجته و هذا ما تمت الاشارة اليه في:

اقتباس
The ETO_GLYPH_INDEX and ETO_RTLREADING values cannot be used together. Because ETO_GLYPH_INDEX implies that all language processing has been completed, the function ignores the ETO_RTLREADING flag if also specified

و بما انّ هذا الخيار مفعل دائما عندما تكون اللغة RTL فهذا يعني انّ النص العائد من التابع lpstring دائما يكون من التابع GetCharacterPlacement و هي تكون معالجة لامور اللغة.

و هنا تكمن المشكلة التي يجب حلها و هي انّ النص عائد من التابع GetCharacterPlacement هو glyph indexes و ليس character codes و يجب علينا الان معرفة كيف يتم الحصول على النص من glyph indexes. و هذا سوف اقوم بالعمل عليه غدا تعبت اليوم :huh:

Cipher: لا تضع شيئ سوف اكمل (h)

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

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

#50

كنت البارحة سأكتب رد لكن حصلت مشكلة في المنتدى

اقتباس
هل تقصد Uniscribe لقد قرأت شيئ ما عنه في MSDN

نعم

اقتباس
لقد قرأت الفصل 14 و لكن لم افهم كثيرا سوف اعيد القراءة مرة اخرى

أردتك أن تقرأه مرة أخرى لتفهم ما معنى Glyph و Glyph index و غيرها من الأشياء التي قد تفيد ...

اقتباس
و هنا تكمن المشكلة التي يجب حلها و هي انّ النص عائد من التابع GetCharacterPlacement هو glyph indexes و ليس character codes و يجب علينا الان معرفة كيف يتم الحصول على النص من glyph indexes.

رائع فعلاً .. هي المشكلة هنا فعلاً...

هل أدركت ما معنى Glyph وما معنى Glyph index ؟

اقتباس
Cipher: لا تضع شيئ سوف اكمل

لن أضع شيئاً فلقد توصلت للمشكلة وعليك محاولة التوصل للحل ...

هنا نقطة هامة في كتاب Feng مفيدة لموضوعنا (ليست لحل المشكلة ).

الشكل Figure 15-1. GDI typography terminology هام جداً ..

تم تعديل هذه المشاركة بواسطة cipher في 8 أكتوبر 2006 في 10:44

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…