منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "Main";
الأرشيف الحالي: 2004.12.12;
تنزيل: [xml.tar.bz2];

إلى

FormMouseMove البحث عن فروع مماثلة


начинающий 2   (2004-11-27 15:53) [0]

أخبرني ما الخطأ ، إليك الرمز:

الداخلي TForm1.FormMouseMove (المرسل: TObject ؛ Shift: TShiftState ؛ X ،
Y: عدد صحيح) ؛
بدأ
إذا GetCapture = 0 بعد ذلك
SetCapture (Form1.Handle)؛
إذا PtInRect (مستطيل (Form1.Left ، Form1.Top ،
Form1.Left + Form1.Width، Form1.Top + Form1.Height)،
ClientToScreen (نقطة (س ، ص))) ثم تبدأ
........
........
نهاية آخر تبدأ
........
........
ينتهي.
الغاية؛

باختصار ، حدد ما إذا كان المؤشر في النموذج أم لا ، واعتمادًا على مكانه ، يتم تنفيذ هذا الإجراء أو ذاك. هذه هي الطريقة التي تعمل بها ، إذا تجاهلت حقيقة أن الأزرار الموجودة في النموذج لا يتم تنشيطها من النقرة الأولى ، مثل المكونات الأخرى. إذا قمت بوضع * SetCapture (Form1.ClientHandle) ؛ * ، فكل شيء على ما يرام مع المكونات ، والإجراءات بعد * النهاية تبدأ * لن تنفذ. أو من يعرف خيار آخر.



Пыч   (2004-11-27 17:04) [1]

> باختصار ، يمكنني تحديد ما إذا كان المؤشر في النموذج أم لا ...

لتحديد ما إذا كان المؤشر في النموذج غير ضروري:
...
إذا GetCapture = 0 بعد ذلك
SetCapture (Form1.Handle)؛
إذا PtInRect (مستطيل (Form1.Left ، Form1.Top ،
Form1.Left + Form1.Width، Form1.Top + Form1.Height)،
ClientToScreen (نقطة (س ، ص))) ثم تبدأ ...

إذا كان "المؤشر على النموذج" ، ثم يحدث الحدث FormMouseMove ،
خلاف ذلك لا يحدث ...



Начинающий2   (2004-11-27 17:35) [2]

> Pech (27.11.04 17: 04) [1]
إذا كان "المؤشر على النموذج" ، ثم يحدث الحدث FormMouseMove ،
خلاف ذلك لا يحدث ...


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

الداخلي TForm1.FormMouseMove (المرسل: TObject ؛ Shift: TShiftState ؛ X ،
Y: عدد صحيح) ؛
بدأ
إذا كانت x أو y> = 0 ، فابدأ
label1.Caption: = "المؤشر في النموذج"؛
الارتفاع: = 400 ؛
العرض: = 600 ؛
نهاية آخر تبدأ
الارتفاع: = 10 ؛
العرض: = 20 ؛
الغاية؛
الغاية؛

سيتم تغيير حجم النموذج أثناء وجود المؤشر في النموذج.



Пыч ©   (2004-11-27 18:28) [3]

...
فار
Form1: TForm1؛
CursorOnForm: Boolean = False؛

التنفيذ

{$ R * .dfm}

الإجراء TForm1.Timer1Timer (المرسل: TObject) ؛
فار
Pt: TPoint؛
بدأ
Pt: = ScreenToClient (Mouse.CursorPos)؛
إذا PtInRect (ClientRect ، حزب العمال) ثم
بدأ
إن لم يكن CursorOnForm ثم
Windows.Beep (50، 50)؛
CursorOnForm: = True؛
نهاية آخر
بدأ
إذا CursorOnForm ثم
Windows.Beep (100، 50)؛
CursorOnForm: = False؛
ينتهي.
الغاية؛
...



начинающий 2   (2004-11-28 13:42) [4]

> Pych © (27.11.04 18: 28) [3]

اللعنة ، شيء عن * CursorOnForm * لم أكن أعتقد أنه يجب أن يعمل. شكرا للمعلومات.



صفحات: 1 فرع كامل

المنتدى: "Main";
الأرشيف الحالي: 2004.12.12;
تنزيل: [xml.tar.bz2];

الطابق العلوي





الذاكرة: 0.55 ميغابايت
الوقت: 0.048 ج
14-1101004505
Dumkin
2004-11-21 05:35
2004.12.12
عيد ميلاد سعيد لك! 21 نوفمبر


8-1094539043
serg128
2004-09-07 10:37
2004.12.12
كيفية دغدغة TMediaPlayer؟


4-1098805815
غروم
2004-10-26 19:50
2004.12.12
اصطياد دوران عجلة الماوس على أيقونة الدرج


14-1100885645
wolf1979
2004-11-19 20:34
2004.12.12
مترجم جافا / مترجم


1-1101249250
من --- ثم
2004-11-24 01:34
2004.12.12
كيف تتعقب مكان حدوث تسرب للذاكرة بالضبط؟





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch English الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский