كيفية الوصول إلى خاصية التحقق من زر الشريط Delphi 2009 في وقت التشغيل؟
سؤال
أريد إعادة تعيين خاصية "فحص" لجميع كائنات 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
, ، لذلك يقوم الكود أعلاه أيضا بتصفية الأشياء التي لا تنحدر من تلك الفئة.