السلام عليكم .........
General Static nameU As String
.................. هذا الكود يطلع رساله خطأ لماذا ؟!
انا احتاج لأن اعرفه فـ General كذالك لحفظ قيمته طوال عمل البرنامج أرجوا الحل وشكرا,,
السلام عليكم .........
General Static nameU As String
.................. هذا الكود يطلع رساله خطأ لماذا ؟!
انا احتاج لأن اعرفه فـ General كذالك لحفظ قيمته طوال عمل البرنامج أرجوا الحل وشكرا,,
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
لتعريف متغير عام يجب أن يكون في Decleration في Main Sub
Public nameU As String
اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب
لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون
أخي انا اريده =static=
تم تعديل هذه المشاركة بواسطة POWER _GIRL في 12 مارس 2005 في 22:34
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
ضعي هذا التعريف في مديول
Global nameU As String
المتغيرات الاستاتيكيه هي متغيرات محلية يصرح عنها داخل الاجراءات والطرق والخصائص فقط وهي لا تفقد قيمتها بعد انتها الاجراء
لاحظ ان جميع المتغيرات التي تصرح داخل الاجراءات تفقد قيمتها بعد انتهاء الاجراء ماعدا النوع الاستاتيكي
مستحيل مستحيل ان تصرح عنه في قسم النعريفات العامه اذا هو يشرح نفسه ليش لازم نصرح به داخل الاجراءات والطرق والخصائص !
اشكرك اخي HnHn على الحل ولكن ..انا اريد انا احفظ القيمه حتى بعد غلق البرنامج..
اخي علي مشاري شكرا على المعلومه لم اكن اعرف ان مدى المتغيرات الاستاتيك لاتتجاوز الاجراء ولكني كنت اريد تعريفه على مستوى البرنامج
مستحيل ان تصرح عنه في قسم النعريفات العامه اذا هو يشرح نفسه ليش لازم نصرح به داخل الاجراءات والطرق والخصائص !
انا كنت اريد تعريفه بشكل عام حتى اتمكن من استخدامه على فورم اخر ..نرجوا الحل وشكرا
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
في بعض الاحيان يحتاج المبرمج الى وضع متغير لايفقد قيمته وبنفس الوقت لا يريد ان يكون عاما وزي ما قلت ان المتغيرات داخل الاجراءات
تفقد قيمتها بعد انتهاء الاجراء
اذا اردت تعريف متغير وتسطيع الوصول اليه وتعديل قيمته من جميع اجراءات form مثلا فاستخدم لتعريف المتغير الكلمة dim او private
في قسم التصريحات العامه وهذا لا يفقد قيمته الا بموت الكائن الموجود فيه مثل اغلاق الفورم
اذا اردت تعريف متغير تستطيع الوصول اليه من جميع الفورمات والفئات وغيرها وايضا المشاريع الاخرى استخدم الكلمة public لتعريف المتغير
في قسم التصريحات العامه وهذا لا يفقد قيمته الا بموت الكائن الموجود فيه
مالكم بس مكبرين الحكاية كده ليه، مش انتي عاوزة متغير تستخدميه في أي مكان من البرنامج و كمان يحتفظ بقيمته... سهلة جدا جدا جدا و كمان أسرع لأن المتغير ال static بطيء و ممل و اليكي الكود
global x as string و في أي حتة من البرنامج: oldxvalue = oldxvalue + newxvalue
و حيشتغل 100% ، وأخرجوا لسانكم للمتغير الاستاتيكي :D
Oracle 10G Certified Professional Developer.
عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي
اختي العزيزة POWER _GIRL
كما فهمت من سؤالك تريدي ان تقومي باستخدام ما هو موجو في متغير معين خارج اطار النموذج Form التي تعملي عليه ، وهذه بسيطة عن طريق ادراج Module وتعريف متغير من النوع المطلوب كـString او Long او .... الخ . بطريقة Public اي عام .
Public MyVar As String
وهذا نوع عام لمتغير نصيي يمكنك استخدامه في كافة ارجاء المشروع .
اما الشق الثاني حسب ما فهمت ايضا ، تريدي الاحتفاض بقيمة المتغير حتي بعد اغلاق المشروع وهذا مستحيل بالطريقة السابقة لان المتغير ينتهي عمله بانتهاء التطبيق وحتي لو كان عام Public .
الحــــــــــــــــــــــــــــــــــل :
هو استخدام وسيط خارجي لتخزين قيمة المتغير ، مثلا استخدام ملفات نص TXT بالطريقة التالية :
Open "C:\MyFile.txt" For Append As #1 Print #1, MyVar Close #1
بالطريقة السابق نحفظ قيمة المتغير MyVar في ملف نص اسمه MyFile.txt علي القرص الصلب c: .
او استخدام التخزين عن طريق الـRegistry
مع تغيير الاعدادت اللاواحق السابقة بما يتناسب مع شغلك
او استخدام التخزين في قواعد البيانات المختلفة ، الامثلة كثيرة في المنتدي .
تحياتي لك
تم تعديل هذه المشاركة بواسطة prof_1982 في 15 مارس 2005 في 11:21
الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.
إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.
شكرا اخي علي مشاري..
كل الكلام الي قلتوا اوكي بس ماادري بالنسه لحظ القيمه حتى بعد موت الكائن!؟
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
romantic_boy انا مافهمت كودك مره
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
ممكن تشوفوا المثال!
هوا يخزن فالتكست ولكن يبدأ من الصفر
..لا يقرأ من التكست!
تم تعديل هذه المشاركة بواسطة POWER _GIRL في 19 مارس 2005 في 15:46
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
يعطيك الـــــــــــــف مليــــــــــــــــــون عافية
:lol:
Private Sub Form_Load() Text1.Text = GetSetting(App.EXEName, "Setting", "Text1", "Nothing") End Sub Private Sub Command1_Click() SaveSetting App.EXEName, "Setting", "Text1", Text1.Text End Sub
يايرت تشرحلي السطرين عششان افهم كمان.
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
لدينا بعض الإجراءات والوظائف المتعلقة بالريجستري
SaveSetting وتقوم بالإضافة أو الحفظ في الريجستري
GetSetting ويقوم بالاسترجاع من الريجستري
DeleteSetting ويقوم بالحذف من الريجستري
تحدث هذه العمليات في المسار التالي في الريجستري:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
الإجراء SaveSetting
ونقوم بتمرير أربع متغيرات إليه، هي على التوالي:
AppName ويشكل اسم المفتاح الرئيسي الذي سيتم التسجيل به في الريجستري، ويمكن استخدام أي اسم، وفي مثالنا استخدمنا App.EXEName والتي تعيد اسم الملف التنفيذي، ويمكننا استبداله بأي اسم آخر.
Section وهو عبارة عن مفتاح فرعي داخل المفتاح الرئيسي، ونستخدمه من أجل التنظيم، فمثلاً إعدادات الألوان يتم وضعها في مفتاح فرعي خاص نسميه Color، وإعدادات النظام يتم وضعها في مفتاح فرعي آخر نسميه System ... وهكذا، وهذه الأسماء غير إلزامية أي أنه يمكن استبدالها بأي اسم آخر.
Key ويمثل اسم مدخل القيمة الذي سيحتوي على القيمة التي سنحفظها، ويفضل أن يكون اسمه دالاً على محتواه.
Setting وهي القيمة التي سيتم حفظها داخل مدخل القيمة السابق.
الوظيفة GetSetting
ونقوم بتمرير أربعة متغيرات إليها، هي على التوالي:
AppName ويشكل اسم المفتاح الرئيسي الذي ستتم عملية القراءة أو الاسترجاع منه.
Section وهو عبارة عن المفتاح الفرعي الذي تم اختياره أثناء الحفظ.
Key ويمثل اسم مدخل القيمة الذي يحتوي على القيمة التي نريد استرجاعها.
[Default] وهذا المتغير اختياري، أي أنه يمكن أن نتجاهله، وبأي حال فهو يحتوي على قيمة يتم إرجاعها في حال لم تجد الوظيفة المفتاح المراد الاسترجاع منه.
بعد تمرير هذه المتغيرات فإن الوظيفة GetSetting تقوم بإرجاع القيمة المحفوظة التي تم الاستفسار عنها.
الإجراء DeleteSetting
ونقوم بتمرير ثلاث متغيرات إليه، هي على التوالي:
AppName ويشكل اسم المفتاح الرئيسي الذي نريد الحذف منه، وفي حال الاكتفاء بهذا المتغير وعدم ذكر المتغيرات الاختيارية التالية فإنه سيتم حذف المفتاح الرئيسي بأكمله.
[section] متغير اختياري وهو عبارة عن المفتاح الفرعي الذي نريد الحذف منه، وفي حال الاكتفاء بهذا المتغير وعدم ذكر المتغير الاختياري التالي فإنه سيتم حذف المفتاح الفرعي بكل ما يحويه.
[Key] متغير اختياري ويمثل اسم مدخل القيمة الذي سنحذفه.
أتمنى أن أكون وضحت شيئاً ..
وفي حال غموض الأمر يمكنك السؤال ..
كما أنه يمكنك تحميل كتاب الريجستري في منتدى الشبكات لفهم نظام الريجستري بشكل أكبر ..
بالتوفيق ..
ما ادري ايش اقول لساني اتعقد..
اول مره من جد فهمت 100% مافي اي تعليق الله يبارك فيك
THANKS AGAIN B)
<< CLICK TO START>>

ليس أن تجد حلا بل أن تجد الافضل
أن تصـــنع الخـيال هذا هوا الأفضل</span>
هذا الموضوع مغلق.