المشاركات : 77
المواضيع 17
:
: 73
الإنتساب : Feb 2018
السلام عليكم , لدي مشكل بال Frames .
لا يمكن الوصول لمكونات frame1 من Frame2 ما المشكل ؟
كود :
https://www.upload.ee/files/11685767/New_folder.rar.html
المشاركات : 211
المواضيع 38
:
: 34
الإنتساب : Aug 2017
السلام عليكم
PHP كود :
Frame2.Button1.Caption := 'Test';
:: من يملك المعلومة يملك الميدان ::
المشاركات : 77
المواضيع 17
:
: 73
الإنتساب : Feb 2018
(12-05-2020, 11:01 PM)AX302 كتب : السلام عليكم
PHP كود :
Frame2.Button1.Caption := 'Test';
لم تفهم قصدي
في الFrame2 في حدث الضغط على الزر TFrame2.Button1Click أريد أن اغير احد حصائص button خاص ب Frame3 هكذا :
كود :
frame3.button1.Caption := 'Hello';
ليس في ال Main form في حدث TForm1.Frame21Button1Click
ان شاء الله يكون توضح السؤال
المشاركات : 145
المواضيع 2
:
: 44
الإنتساب : Aug 2019
أنت تحاول تغيير قيمة في الكلاس أو القالب, tframe3 هي فقط قالب وخصائصها موضوعة في ملف unit3.dfm, لا يمكنك الوصول الى button مباشرة
أي لا يمكنك مثلا أن تغير على الكلاس مباشرة يجب أن تنشئ object ل tframe3, لاحظ في unit1 في الفورم وضعت frame3 وتلقائيا لما الفورم3 تنشأ تنشئ معها object للمكونات التي عليها.
أما الكود الذي في unit2 والذي وضعت فيه متغير من نوع tframe3 لن تستطيع الوصول اليه لأنه ليس في الذاكرة بعد أي ليس هناك انشاء له creation
وليس هو نفس frame الذي في unit1 كل واحد هو object في الذاكرة لا علاقة له باللآخر.
المشاركات : 77
المواضيع 17
:
: 73
الإنتساب : Feb 2018
(12-05-2020, 11:35 PM)sofiane201 كتب : أنت تحاول تغيير قيمة في الكلاس أو القالب, tframe3 هي فقط قالب وخصائصها موضوعة في ملف unit3.dfm, لا يمكنك الوصول الى button مباشرة
أي لا يمكنك مثلا أن تغير على الكلاس مباشرة يجب أن تنشئ object ل tframe3, لاحظ في unit1 في الفورم وضعت frame3 وتلقائيا لما الفورم3 تنشأ تنشئ معها object للمكونات التي عليها.
أما الكود الذي في unit2 والذي وضعت فيه متغير من نوع tframe3 لن تستطيع الوصول اليه لأنه ليس في الذاكرة بعد أي ليس هناك انشاء له creation
وليس هو نفس frame الذي في unit1 كل واحد هو object في الذاكرة لا علاقة له باللآخر.
شكرا على الشرح , ما الحل ؟ اذا امكن مثال بسيط وشكرا
المشاركات : 145
المواضيع 2
:
: 44
الإنتساب : Aug 2019
حل ماذا؟ لم لا تغيره مباشر على form1؟ لو بينت اكثر مالذي تريد تحقيقه حتى نحاول ايجاد حل.
المشاركات : 17
المواضيع 5
:
: 23
الإنتساب : Oct 2015
انا حاولت ووجدت هذا الحل لكن لا ادري اهو حل جيد ام لا
في frame2
تغير في الحدث onclick لل button1 بهذا الشكل
var
Form: TCustomForm;
begin
Form := GetParentForm(self);
TFrame3(Form.FindComponent('frame31')).Button1.Caption := 'Hello';
او بهذا
var
Form: TCustomForm;
begin
Form := GetParentForm(self);
TButton(TFrame(Form.FindChildControl('frame31')).FindChildControl('Button1')).Caption := 'Hello';
او انك تقو بالتغير في FORM1 في الحدث ONCLICK مباشرة
frame31.button1.Caption := 'Hello';
المشاركات : 145
المواضيع 2
:
: 44
الإنتساب : Aug 2019
13-05-2020, 01:08 AM
(آخر تعديل لهذه المشاركة: 13-05-2020, 01:11 AM بواسطة sofiane201.)
المتغير frame31 الذي على الفورم ليس هو frame3 الذي في frame2, لقد غيرت خاصية في button التابع للمتغير frame31 في الفورم الرئيسي.
على ما يبدو هو كان يريد أن يغير على frame3 المصدر وكان يظن انه لو غير في شيء من frame3 سيتغير اي frame آخر ما دام يرث من نفس الاطار وهو TFrame3.
المشاركات : 77
المواضيع 17
:
: 73
الإنتساب : Feb 2018
(13-05-2020, 12:06 AM)sofiane201 كتب : حل ماذا؟ لم لا تغيره مباشر على form1؟ لو بينت اكثر مالذي تريد تحقيقه حتى نحاول ايجاد حل.
لنفرض ان لدي برنامج به Frame اسمها Home و اخرى اسمها settings وواحدة database ... كيف يمكن لكل واحدة مخاطبة الاخرى , وضع الكود ف الفورم مباشرة ينتج عنه اخطاء اخرى . احد الاخطاء التي اواجهها , في ال Home هناك edit و في ال database هناك dbgrid , لا استطيع اضافة بيانات و اخطاء كثيرة اخرى .
المشاركات : 145
المواضيع 2
:
: 44
الإنتساب : Aug 2019