تعلم معي كيف تتعامل مع البرامج الخارجيّة
#21
إقتباس :بارك الله فيك ,,

وفيكم بارك الله اهي الكريم,,

إقتباس :في مايخص StayOnTop بسيط !!! إدا كان البحث بإسم الصنف مثلا و كان هناك واجهتين تحمل نفس إسم الصنف

فإذا أرسلنا رسالة لهده الواجهة فإنها تصل الواجهة الأولى (StayOnTop) وعليه حاول اول ترتيب الواجهات المفتوحة

اخي الكريم,, هل لك ان توضح قليلا بارك الله لك ,, لم افهم ماذا تقصد :o ؟ وحب ذا لو بمثال او بسورس بارك الله لك ,, ممكن يكون عن البرنامج Win X فهو فيه خاصّية ال StayOnTop ؟

جزاك الله خيرا ومنكم نستفيد اخي الحبيب
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#22
أولا أخي أشكرك على الدرس الجميل .. بارك الله فيك ,,

1- نفرض أن لدينا واجهتين (1) و (2) لهما نفس إسم الصنف (إسم الأرضية) مثلا :

فاتح 2 من الـ NotePad كيف تحدد المستقبل ؟؟ :

- عن طريق GroundHand أو بالتدرج التنازلي يعني NotePad1 فوق NotePad2 فإن الرسالة
تصل NotePad1 لأنه Top بالنسبة NotePad2 .

هدا برنامج بسيط يعطيك قيم الهندل و الصنف وفق وضعية المؤشر على الشاشة .

2- ****ا أن تتطرق أيضا PostMessage/SendMessage مع الفروق بينهما :



الملفات المرفقة
.rar   TF6_FHw.rar (الحجم : 40.27 ك ب / التحميلات : 152)
I'M Fly Like A G6

الرد
#23
السلام عليكم ,,

في سياق الموضوع ,,

كيف أستطيع أن أحدد أحد العناصر في البرنامج إذا كان هناك عنصرين يحملان نفس اسم الصنف ,, ؟

فـ مثلا في برنامج Win X يوجد أكثر من TButton ,, إذا كتبنا TButton هكذا فإنه سيذهب للموجود في الأعلي من اليسار !!!

ماذا لو أردت الزر الآخر ؟ كيف ذلك ؟

وشكرا
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#24
إقتباس :الأعلي من اليسار !!!

كنت أقصد : الأعلى من اليمين ,,
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#25
1- أخي الكريم بما أنا طبيعة المعطيات المرسلة عبارة عن متغيرات من نمط String

فقط يجب الإشارة الى : إذا كان s متغير من نمط String و z من نمط ShortString

فإن S[0]1 ستحمل عدد محارف السلسلة مثلا 'S:= 'Isaam فإن S[0]1 تساوي 5 (بالهيكس)

لكن هذا غير منطقي لأن s سيشغل 4 byte من الداكرة (أصغر قيمة 0000 h و أكبر h ffff) إذا

S[0]1 لا يمكن أن يمثلها لدا إستعنا بالدالة SetLength في مثال الأخ ... بارك الله فيه ,, التي ستقوم
بإلزام طول محدد (غير ديناميكي للسلسلة) .

لكن لو إستعملنا بالمتغير z فلن نحتاج للتعليمة SetLength لأن z يأخد 1 byte ا(0 255) و بالتالي

z[0]1 يمثل السلسلة تمثيل دقيق (لأنه مستحيل أن يفوق طول السلسلة 256 محرف و هي قيمة
قابلة للعرض في 1 بايت 'FF') .
I'M Fly Like A G6

الرد
#26
2- طبيعة السلال الحرفية أنها تخزن بصفة تسلسلية وفق :

1 - عنوان البايت الاول من السلسلة .
2 - عدد الحروف الممثلة بالهيكس في هدا البايت .

3- في ما يخص وجود أكثر من عنصر له نفس إسم الصنف فقط تدكر أن الدالة FindWindow

لها بارامتران : (1,2)FindWindow

(1) إسم العنصر بدلالة صنفه .
(2) إسم العنصر بدلالة إسمه الفعلي .

وعليه قمة بوضع هدا المثال البسيط الدي يوضح الفكرة :

[صورة: 121w.jpg]

[صورة: 122q.jpg]

4- كيف الأن لنا أن نستغني على SetLength ؟؟؟؟ ... بالتوفيق ,,


الملفات المرفقة
.rar   SendM_ByName.rar (الحجم : 45.24 ك ب / التحميلات : 157)
I'M Fly Like A G6

الرد
#27
السلام عليكم ,,

نعم بارك الله فيك أخي الحبيب ,, كان علي أن أتعب وأبحث قليلا ,, فعذرا على الإزعاج !!


إقتباس :4- كيف الأن لنا أن نستغني على SetLength ؟؟؟؟

مممم ,,

عن طريق تعريف متغير النص بــ ShortString بدلا من String ! ( كما فهمت Big Grin )


والله اعلم

وبارك الله فيكم جميعا أخواني الكرام
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#28
ههههههههههه

صحيح لكن هناك تغيير بسيط على الكود Text[0]
لأننا سنبدأ منه لأن به حاجتنا (عدد حروف السلسلة) لأنه لو كان من String لألزمنا بكتابة طول السلسة بانفسنا (setlenght) و نبدأ من Text[1]

بالتوفيق ,,
I'M Fly Like A G6

الرد
#29
بارك الله فيك اخي الحبيب tf6mehboul
الأمر واضح الآن وضوح الشمس Cool

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


بارك الله لكم وأشكرك كثيرا...
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#30
شــــــــــــــــــــــــــــــــــرح ممتــــــــــــــــــــــاز اخي الكريم
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم