معرفة جميع مكونات (Components) لفورم Form
#1
السلام عليكم ورحمة الله وبركاته ،
في الحقيقة كانت مناسبة هذا الموضوع هي كالتالي :
أستعمل الفاست ريبورت في مشروعي ، و أنا على مقربة من الانتهاء من البرمجة ، اكتشفت أنني تركت في تقاريري  امكانية التعديل عنه Sad 
أي أن الخاصية  Edit  للمكون frxReport  مفعلة ،
فانتابني اليأس على المرور في جميع النوافذ (Forms)  و تغيير خاصية جميع المكونات الفاست ريبورت ، واحدة واحدة...
ولك أن تتخيل التعب و النصب ، وربما أمر على مكون ما دون تغيير هذه الخاصية.... Angry
فانتابني سؤال و هو : كيف لي معرفة جميع المكونات من نوع FastReport  لكن برمجيا ، وكان هذا الحل :
للبحث عن جميع مكونات من نوع label :

كود :
Var i:Integer; begin   For i:=0 To ComponentCount-1 Do   If Components[i] Is TLabel Then     TLabel(Components[i]).Caption:='AAA'; end;

الأن مع الفاست ربورت و تغيير خاصية Edit :

كود :
For i:= 0 To ComponentCount-1 Do    If Components[i] Is TfrxReport Then       TfrxReport(Components[i]).PreviewOptions.Buttons := [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbNavigator, pbExportQuick] ;

أو حال آخر بسيط :
كود :
For i:= 0 To ComponentCount-1 Do     If Components[i] Is TfrxReport Then        TfrxReport(Components[i]).PreviewOptions.Buttons := TfrxReport(Components[i]).PreviewOptions.Buttons - [pbEdit];





وكانت النتيجة رائعة و فرحة كبيرة... Blush 
وضعتها هنا للاستفادة.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 3 users say قال شكرا ل أبو معاذ على المشاركة المفيدة
  • h-farid, wadoud, bassem_43
الرد
#2
و عليكم السلام و رحمة الله و بركاته

لدي استفسار أستاذي: هل ComponentCount يشمل مكونات جميع الفورمات أم الفورم الحالي فقط ؟
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#3
يشمل الفورم الحالي فقط.
جزاك الله خيرا على المرور الطيب.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#4
و ماذا لو اردت من حلقتي المرور على جميع مكونات جميع الفورمات, هل يمكن ؟

فكرت في أن أغير الـ Caption للمكونات حسب اللغة المختارة في برنامج متعدد اللغات, و كما ترى فحلقة من هذا الصنف تغني عن عمل كبير , ناهيك عن كمية البايتات المكتسبة في الملف التنفيذي و هي
الذاكرة حين التشغيل.

بارك الله لك في علمك و جزاك عن جهدك و يسر لك سعيك.

المعذرة على ثقل ظلي عليك.
من قال حاد عن أصله أو قال مات فقد كذب
[-] كل من 1 user says قال شكرا ل h-farid على المشاركة المفيدة
  • أبو معاذ
الرد
#5
السلام عليكم
بارك الله فيكما,
أخي اعتقد ان تجميع كل تقارير البرنامج إذا كانت كثيرة في فورم واحد تسميه تقارير مثلا سيسهل التعامل معها مستقبلا.
الخوف من أي محاولة جديدة طريق حتمي للفشل.
[-] كل من 2 users say قال شكرا ل wadoud على المشاركة المفيدة
  • أبو معاذ, h-farid
الرد
#6
(31-05-2016, 09:30 PM)h-farid كتب : و ماذا لو اردت من حلقتي المرور على جميع مكونات جميع الفورمات, هل يمكن ؟

فكرت في أن أغير الـ Caption للمكونات حسب اللغة المختارة في برنامج متعدد اللغات, و كما ترى فحلقة من هذا الصنف تغني عن عمل كبير , ناهيك عن كمية البايتات المكتسبة في الملف التنفيذي و هي
الذاكرة حين التشغيل.

بارك الله لك في علمك و جزاك عن جهدك و يسر لك سعيك.

المعذرة على ثقل ظلي عليك.

السلام عليكم استخدم screen.formcount
http://delphi4arab.net/forum/showthread.....formcount
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 3 users say قال شكرا ل S.FATEH على المشاركة المفيدة
  • أبو معاذ, h-farid, wadoud
الرد
#7
عجز اللسان (أو بالأصح الكيبورد Big Grin ) عن شكرك أستاذ فاتح.
شكرا.
من قال حاد عن أصله أو قال مات فقد كذب
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم