كيفية الوصول إلى خاصية التحقق من زر الشريط Delphi 2009 في وقت التشغيل؟

StackOverflow https://stackoverflow.com/questions/1084659

  •  23-08-2019
  •  | 
  •  

سؤال

أريد إعادة تعيين خاصية "فحص" لجميع كائنات TACTAL من الشريط إلى False عند النقر على أي زر الشريط ثم قم بتعيينه صحيحا فقط على الزر المضغوط. لكنني لم أجد بعد وسيلة للوصول إلى جميع خصائص "فحص" لأفعال ActionManager. أعتقد أنني بحاجة إلى حلقة من خلال قائمة عمل ActionManager ... لكنني لم أجد بعد في الطريق الصحيح للقيام به. سأكون سعيدا جدا إذا كان شخص ما يمكن أن يعطيني بعض التلميح على هذا.

شكرا!

هل كانت مفيدة؟

المحلول

TActionManager ينزل من TCustomActionList, ، لذلك كل ما يمكنك القيام به مع الأخير، يمكنك القيام به مع السابق. لديها خصائص ستحتاج إلى استخدامها، Actions, ، والتي هي خاصية الصفيف التي تمنحك الوصول إلى جميع أفعال القائمة، و ActionCount, ، الذي يخبرك كم هناك. استخدمها لكتابة حلقة عادية، مثل هذا:

var
  i: Integer;
  Contained: TContainedAction;
  Action: TCustomAction;
begin
  for i := 0 to Pred(ActionList.ActionCount) do begin
    Contained := ActionList[i]; // shorthand for ActionList.Actions[i]
    if not (Contained is TCustomAction) then
      continue; // Doesn't have Checked property

    Action := TCustomAction(Contained);
    Action.Checked := False;
  end;
end;

قوائم العمل يمكن أن تعقد الكثير من أنواع الإجراءات، وليس لديهم جميعا Checked الخصائص. يتم تقديم هذه الخاصية في TCustomAction, ، لذلك يقوم الكود أعلاه أيضا بتصفية الأشياء التي لا تنحدر من تلك الفئة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top