Ctrl+- (Ctrl+Hyphen-Minus) كمفتاح اختصار؟
-
01-10-2019 - |
سؤال
قد يبدو من الطبيعي استخدام كنترول + +, كنترول + -, ، و كنترول + 0 كاختصارات لتكبير التطبيق ، والتكبير ، واستعادة الإجراءات الافتراضية (عادة 100 ٪). الآن ، في دلفي ، أنا قادر على التخصيص كنترول + + و كنترول + 0 كاختصارات. السابق ، رغم ذلك ، يتطلب أن يتم استخدام علامة Plus للجزء الرئيسي من لوحة المفاتيح ؛ لا يمكن استخدام علامة plus من لوحة المفاتيح العددية.
ومع ذلك ، تنشأ المشكلة عندما أرغب في التخصيص كنترول + - كاختصار. إنه ببساطة لا يعمل. إذا قمت بتعيين "Ctrl+-" في IDE ، فإن القيمة المخزنة في ShortCut
الممتلكات 16495
. إذا طرحنا ssCtrl
من هذا ، نحصل على 111. وسيعتقد المرء ، ShortCut := 45 + ssCtrl
, ، أو مكافئ، ShortCut := Menus.ShortCut(45, [ssCtrl])
, ، لان ord('-') = 45
. لكن هذا لا يعمل.
ومع ذلك ، فقد وجدت حل عمل: ShortCut := 189 + ssCtrl
. اخترت 189 لأن هذا هو الرقم الذي أتلقاه عندما أزعج المفتاح "-" والاستماع إلى KeyDown
حدث.
فلماذا لست سعيدًا بهذا؟ حسنًا ، أخشى أن يكون الثابت 189 صالحًا فقط لوحات المفاتيح السويدية. لقد حاولت أن أقرأ عن هذا ، وكالعادة ، وثائق MSDN واضح إلى حد ما ، ولكن بعد ذلك ، من يعرف كيف تتعامل دلفي للأشياء.
المحلول
رمز المفتاح 189 هو VK_OEM_MINUS
في windows.pas, ، وبالتالي فإن الحل الخاص بك ليس فقط للسويديين.
نصائح أخرى
صحيح لاستخدام اختصار القائمة على اللوحة الرقمية
كنترولNUM + لـ [+
كنترولNUM - ل [-
هناك مساحة بين NUM + و NUM -
لست متأكدًا لماذا تحصل على 16495 كنترول + -. عندما أضيف هذا الاختصار إلى إجراء ما ، فإنه يعطيني 16573 ، ويظهر في القائمة كـ كنترول + -, ، وهذا الاختصار يعمل.
ومع ذلك ، فأنت محق في ذلك Menus.ShortCut(ord('-', [ssCtrl])
لا يعمل. يعطي القيمة 16429 ويظهر في القائمة مثل كنترول + الإقرار, ، و كنترول + الإقرار يعمل كاختصار.
ربما هذه مشكلة مع Delphi 2009 وبعد ذلك منذ أن أضافوا Unicode.