الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعرف متغير static

مغلق
بدأه POWER _GIRL في 12 مارس 2005 · 16 رد · 1,747 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم .........

General
Static nameU As String

.................. هذا الكود يطلع رساله خطأ لماذا ؟!

انا احتاج لأن اعرفه فـ General كذالك لحفظ قيمته طوال عمل البرنامج أرجوا الحل وشكرا,,

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#2

لتعريف متغير عام يجب أن يكون في Decleration في Main Sub

Public nameU As String

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#3

أخي انا اريده =static=

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 12 مارس 2005 في 22:34

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#4

ضعي هذا التعريف في مديول

Global nameU As String

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#5

المتغيرات الاستاتيكيه هي متغيرات محلية يصرح عنها داخل الاجراءات والطرق والخصائص فقط وهي لا تفقد قيمتها بعد انتها الاجراء

لاحظ ان جميع المتغيرات التي تصرح داخل الاجراءات تفقد قيمتها بعد انتهاء الاجراء ماعدا النوع الاستاتيكي

مستحيل مستحيل ان تصرح عنه في قسم النعريفات العامه اذا هو يشرح نفسه ليش لازم نصرح به داخل الاجراءات والطرق والخصائص !

#6

اشكرك اخي HnHn على الحل ولكن ..انا اريد انا احفظ القيمه حتى بعد غلق البرنامج..

اخي علي مشاري شكرا على المعلومه لم اكن اعرف ان مدى المتغيرات الاستاتيك لاتتجاوز الاجراء ولكني كنت اريد تعريفه على مستوى البرنامج

مستحيل ان تصرح عنه في قسم النعريفات العامه اذا هو يشرح نفسه ليش لازم نصرح به داخل الاجراءات والطرق والخصائص !

انا كنت اريد تعريفه بشكل عام حتى اتمكن من استخدامه على فورم اخر ..نرجوا الحل وشكرا

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#7

في بعض الاحيان يحتاج المبرمج الى وضع متغير لايفقد قيمته وبنفس الوقت لا يريد ان يكون عاما وزي ما قلت ان المتغيرات داخل الاجراءات

تفقد قيمتها بعد انتهاء الاجراء

اذا اردت تعريف متغير وتسطيع الوصول اليه وتعديل قيمته من جميع اجراءات form مثلا فاستخدم لتعريف المتغير الكلمة dim او private

في قسم التصريحات العامه وهذا لا يفقد قيمته الا بموت الكائن الموجود فيه مثل اغلاق الفورم

اذا اردت تعريف متغير تستطيع الوصول اليه من جميع الفورمات والفئات وغيرها وايضا المشاريع الاخرى استخدم الكلمة public لتعريف المتغير

في قسم التصريحات العامه وهذا لا يفقد قيمته الا بموت الكائن الموجود فيه

#8

مالكم بس مكبرين الحكاية كده ليه، مش انتي عاوزة متغير تستخدميه في أي مكان من البرنامج و كمان يحتفظ بقيمته... سهلة جدا جدا جدا و كمان أسرع لأن المتغير ال static بطيء و ممل و اليكي الكود

global x as string 



و في أي حتة من البرنامج:
oldxvalue = oldxvalue + newxvalue

و حيشتغل 100% ، وأخرجوا لسانكم للمتغير الاستاتيكي :D

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#9

اختي العزيزة 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

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#10

شكرا اخي علي مشاري..

كل الكلام الي قلتوا اوكي بس ماادري بالنسه لحظ القيمه حتى بعد موت الكائن!؟

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#11

romantic_boy انا مافهمت كودك مره

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#12

Thanks Prof_1982

Can U Tell Me How! With Registry

!I Find Problem.. The Code Start Value &

Look Here Please

PG.rar

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 15 مارس 2005 في 13:39

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#13

ممكن تشوفوا المثال!

هوا يخزن فالتكست ولكن يبدأ من الصفر

..لا يقرأ من التكست!

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 19 مارس 2005 في 15:46

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#14

أختي Power_Girl

أفضل من ذلك استخدمي الريجستري عن طريق savesetting و getsetting

قمت بالتعديل في مثالك المرفق

PG.zip

ani.gif
#15

يعطيك الـــــــــــــف مليــــــــــــــــــون عافية

: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>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#16

لدينا بعض الإجراءات والوظائف المتعلقة بالريجستري

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] متغير اختياري ويمثل اسم مدخل القيمة الذي سنحذفه.

أتمنى أن أكون وضحت شيئاً ..

وفي حال غموض الأمر يمكنك السؤال ..

كما أنه يمكنك تحميل كتاب الريجستري في منتدى الشبكات لفهم نظام الريجستري بشكل أكبر ..

بالتوفيق ..

ani.gif
#17

ما ادري ايش اقول لساني اتعقد..

اول مره من جد فهمت 100% مافي اي تعليق الله يبارك فيك

THANKS AGAIN B)

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

هذا الموضوع مغلق.

مواضيع مشابهة