إقتباس :بارك الله فيك ,,
وفيكم بارك الله اهي الكريم,,
إقتباس :في مايخص StayOnTop بسيط !!! إدا كان البحث بإسم الصنف مثلا و كان هناك واجهتين تحمل نفس إسم الصنف
فإذا أرسلنا رسالة لهده الواجهة فإنها تصل الواجهة الأولى (StayOnTop) وعليه حاول اول ترتيب الواجهات المفتوحة
اخي الكريم,, هل لك ان توضح قليلا بارك الله لك ,, لم افهم ماذا تقصد :o ؟ وحب ذا لو بمثال او بسورس بارك الله لك ,, ممكن يكون عن البرنامج Win X فهو فيه خاصّية ال StayOnTop ؟
جزاك الله خيرا ومنكم نستفيد اخي الحبيب
أولا أخي أشكرك على الدرس الجميل .. بارك الله فيك ,,
1- نفرض أن لدينا واجهتين (1) و (2) لهما نفس إسم الصنف (إسم الأرضية) مثلا :
فاتح 2 من الـ NotePad كيف تحدد المستقبل ؟؟ :
- عن طريق GroundHand أو بالتدرج التنازلي يعني NotePad1 فوق NotePad2 فإن الرسالة
تصل NotePad1 لأنه Top بالنسبة NotePad2 .
هدا برنامج بسيط يعطيك قيم الهندل و الصنف وفق وضعية المؤشر على الشاشة .
2- ****ا أن تتطرق أيضا PostMessage/SendMessage مع الفروق بينهما :
السلام عليكم ,,
في سياق الموضوع ,,
كيف أستطيع أن أحدد أحد العناصر في البرنامج إذا كان هناك عنصرين يحملان نفس اسم الصنف ,, ؟
فـ مثلا في برنامج Win X يوجد أكثر من TButton ,, إذا كتبنا TButton هكذا فإنه سيذهب للموجود في الأعلي من اليسار !!!
ماذا لو أردت الزر الآخر ؟ كيف ذلك ؟
وشكرا
إقتباس :الأعلي من اليسار !!!
كنت أقصد : الأعلى من اليمين ,,
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') .
2- طبيعة السلال الحرفية أنها تخزن بصفة تسلسلية وفق :
1 - عنوان البايت الاول من السلسلة .
2 - عدد الحروف الممثلة بالهيكس في هدا البايت .
3- في ما يخص وجود أكثر من عنصر له نفس إسم الصنف فقط تدكر أن الدالة FindWindow
لها بارامتران : (1,2)FindWindow
(1) إسم العنصر بدلالة صنفه .
(2) إسم العنصر بدلالة إسمه الفعلي .
وعليه قمة بوضع هدا المثال البسيط الدي يوضح الفكرة :
4- كيف الأن لنا أن نستغني على
SetLength ؟؟؟؟ ... بالتوفيق ,,
السلام عليكم ,,
نعم بارك الله فيك أخي الحبيب ,, كان علي أن أتعب وأبحث قليلا ,, فعذرا على الإزعاج !!
إقتباس :4- كيف الأن لنا أن نستغني على SetLength ؟؟؟؟
مممم ,,
عن طريق تعريف متغير النص بــ ShortString بدلا من String ! ( كما فهمت
)
والله اعلم
وبارك الله فيكم جميعا أخواني الكرام
ههههههههههه
صحيح لكن هناك تغيير بسيط على الكود Text[0]
لأننا سنبدأ منه لأن به حاجتنا (عدد حروف السلسلة) لأنه لو كان من String لألزمنا بكتابة طول السلسة بانفسنا (setlenght) و نبدأ من Text[1]
بالتوفيق ,,
بارك الله فيك اخي الحبيب
tf6mehboul
الأمر واضح الآن وضوح الشمس
وبرنامجك الذي صممته... جميل جدا... وأعطاني فكرة جيدة..
بارك الله لكم وأشكرك كثيرا...
شــــــــــــــــــــــــــــــــــرح ممتــــــــــــــــــــــاز اخي الكريم