PDA

View Full Version : خطا دادن در تعریف Const



samiasoft
یک شنبه 16 شهریور 1393, 23:21 عصر
سلام دوستان

من در برنامم یه کدی دارم بصورت مقابل هست

Const a As String = "sami"

خب میخواستم فقط مقادیر تکست باکس رو برای این تعریف کنم
اما بصورت زیر که مینویسم برنامه برای Text خطا میگیره.

Const a As String = Text1.Text

به نظرتون باید تکست باکس رو چطوری برای این تعریف کنم؟

مجید آرتا
دوشنبه 17 شهریور 1393, 08:42 صبح
چیزی که بنده فهمیدم اینه که ثوابت رو نباید با پراپرتی یک کنترل برابر کرد
از اونجایی که خودتون می دونید پراپرتی تکست کنترل تکست باکس قابل تغییر که این در مورد ثوابت مستثناس،ثوابت هم یک مقدار بیشتر قبول نمی کنند

ایلیا آخوندزاده
دوشنبه 17 شهریور 1393, 08:47 صبح
سلام دوستان

من در برنامم یه کدی دارم بصورت مقابل هست

Const a As String = "sami"

خب میخواستم فقط مقادیر تکست باکس رو برای این تعریف کنم
اما بصورت زیر که مینویسم برنامه برای Text خطا میگیره.

Const a As String = Text1.Text

به نظرتون باید تکست باکس رو چطوری برای این تعریف کنم؟

من یه مشکلی شبیه شما داشتم و اونم در آدرس دهی فایل پخش برای اجرای موزیک در بکگراند بود وقتی نوشتم Text1.Text ارور داد ولی وقتی نوشتم:
Trim(Text1.Text)

مشکلم حل شد شماهم امتحان کنید ببینید حل میشه یا نه؟

ایلیا آخوندزاده
دوشنبه 17 شهریور 1393, 08:52 صبح
چیزی که بنده فهمیدم اینه که ثوابت رو نباید با پراپرتی یک کنترل برابر کرد
از اونجایی که خودتون می دونید پراپرتی تکست کنترل تکست باکس قابل تغییر که این در مورد ثوابت مستثناس،ثوابت هم یک مقدار بیشتر قبول نمی کنند


البته فراموش نکنید که میتونید تکس رو ثابت کنید اما وقتی که تغییر میدیم هم مشکلی پیش نمیاد.

مجید آرتا
دوشنبه 17 شهریور 1393, 10:26 صبح
مشکلم حل شد شماهم امتحان کنید ببینید حل میشه یا نه؟

بنده تست کردم جواب نداد

samiasoft
دوشنبه 17 شهریور 1393, 13:37 عصر
اره متاسفانه جواب نمیده

دوستان سورس برناممو ضمیمه کردم ببنید ایا اصلا کاری نمیشه کرد؟ من حتما نیاز دارم که اینConst رو برای تکست باکس تعریف کنم:متفکر:

vbhamed
دوشنبه 17 شهریور 1393, 21:20 عصر
سلام
ماهيت دستور Const براي تعريف كردن ثوابت هست نه متغيرها، اگر قرار باشه تغيير كنه كه پس ديگه چه ثابتي

ضمنا وقتي برنامه كامپايل ميشه در تمام كد شما به جاي اون ثابتي كه تعريف كرديد مقدارش قرار مي‌گيره مثلا كد زير :
Const a As String = "<p>"
j = InStr(1, Text, a, vbTextCompare)

تبديل ميشه به :
j = InStr(1, Text, "<p>", vbTextCompare)
البته اينكار مستقيما در سورس اصلي شما انجام نميشه ولي كامپايلر ابتدا براي خودش اينكار رو انجام ميده بعد برنامه رو كامپايل مي‌كنه، به همين دليل نميشه ثابت رو در طي برنامه تغيير داد چون ثابت مثل متغير، فضايي از حافظه نيست كه بشه عوضش كرد بلكه در حقيقت قسمتي از خود كد برنامه هست كه براي راحتي در تغيير اون كد توسط برنامه نويس به اين شكل تعريف ميشه تا اگر نياز بود مقداري ديگه اي باشه لازم نباشه كل كد برنامه رو جستجو و مقادير رو تغيير بديم

ضمنا شما تو برنامتون به راحتي مي‌تونيد دو تا متغير a و b تعريف كنيد، اصلا چرا از داريد از ثابت استفاده مي‌كنيد ؟