ورود

View Full Version : سوال: چک کردن روال برنامه در هر بار که برنامه اجرا میشود+جایگزینی یک رشته عدد بجای یک رشته دیگر



ashkan1234
چهارشنبه 08 آذر 1391, 09:48 صبح
با درود فراوان!
دوستانم سه تا مشکل دارم:

1-فرم شماره یک:وقتی برای بار اول برنامه اجرا میشود یک مقایسه انجام میشود(تکست دو را با تکست یک مقایسه میکند)اگر باهم یکی بودند،باید فرم یک بسته شود و دیگر در اجراهای بعدی برنامه نمایش داده نشود!
حال باید هر بار که برنامه اجرا میشود ، بدون اینکه کاربر ببیند،این مقایسه را انجام دهد و اگر تکست دو برابر با تکست یک نشد،هر بار که برنامه اجرا میشود فرم یک اجرا شود تا زمانی که کاربر کد صحیح را وارد کند!دقیقا مثل قفل سریالی!

2-در فرم شماره دو:وقتی یک رشته عدد رو میخوام جایگزین کنم،این عمل رو درست انجام نمیده!درصورتی که با حروف هیچ مشکلی نداره!
از راههای دیگه هم رفتم،مثلا یک نمونه اش اینکه:تک تک رقم ها رو جدا کردم داخل چندین متغیر ریختم،ولی بازم همینجوری بود!

3-در فرم شماره سه:دقیقا میخوام بجای ذخیره مقادیر تکست باکس،رادیو باکس،چک باکس در ریجستری(منظورم توابع Savesetting و Getsetting هستش)،در دیتا بیس ذخیره بشن!

اینم سورس:
95711

محسن واژدی
چهارشنبه 08 آذر 1391, 11:03 صبح
سلام علیکم
ضمیمه را بررسی کنید انشاءا... درست هست

موفق باشید

ashkan1234
چهارشنبه 08 آذر 1391, 20:07 عصر
سلام علیکم
ضمیمه را بررسی کنید انشاءا... درست هست

موفق باشید

دستتون درد نکنه جناب واژدی!
مثل همیشه عالی!
فقط یک مشکلی با فرم یک باقی میمونه!
باید هر بار یک روالی رو چک کنه که اگر تکست یک تغییر کرد (یا تکست دو با تکست یک مقدارش برابر نبود) فرم یک دوباره نمایش داده بشه!
الان امتحان کنید،بعد از یکبار وارد کردن مقدار صحیح میبینید که اگه مقدار تکست یک رو تغییر بدیدو برنامه رو دوباره اجرا کنید،فرم یک نمایش داده نمیشه!
جناب واژدی بی زحمت اگه فرصت داشتید یک توضیحی در مورد کدهای فرم دو بدید لطفا،چون خیلی متوجه نشدم(منظور جایگزینی اعداده)
باسپاس!

محسن واژدی
چهارشنبه 08 آذر 1391, 21:42 عصر
دستتون درد نکنه جناب واژدی!
مثل همیشه عالی!
فقط یک مشکلی با فرم یک باقی میمونه!
باید هر بار یک روالی رو چک کنه که اگر تکست یک تغییر کرد (یا تکست دو با تکست یک مقدارش برابر نبود) فرم یک دوباره نمایش داده بشه!
الان امتحان کنید،بعد از یکبار وارد کردن مقدار صحیح میبینید که اگه مقدار تکست یک رو تغییر بدیدو برنامه رو دوباره اجرا کنید،فرم یک نمایش داده نمیشه!
جناب واژدی بی زحمت اگه فرصت داشتید یک توضیحی در مورد کدهای فرم دو بدید لطفا،چون خیلی متوجه نشدم(منظور جایگزینی اعداده)
باسپاس!
سلام علیکم، خواهش میکنم

باید هر بار یک روالی رو چک کنه که اگر تکست یک تغییر کرد (یا تکست دو با تکست یک مقدارش برابر نبود) فرم یک دوباره نمایش داده بشه!
الان امتحان کنید،بعد از یکبار وارد کردن مقدار صحیح میبینید که اگه مقدار تکست یک رو تغییر بدیدو برنامه رو دوباره اجرا کنید،فرم یک نمایش داده نمیشه!

واقعیتش زیاد متوجه نشدم، چون دکمه ای در سورس نمونه برای باز کردن دوباره Form1 ندیدم
اگه بخواهیم در صورت تغییر Text1 یا Text2 بلافاصله Form1 باز بشه میتوانیم از کدی مشابه زیر استفاده کنیم:
Private Sub Text1_Change()
ChkAgainShow
End Sub
Private Sub Text2_Change()
ChkAgainShow
End Sub

Sub ChkAgainShow()
If Text1 <> Text2 Then
Call DeleteSetting(App.Title, "Settings", "T1")
Me.Show vbModal
End If
End Sub

موفق باشید

ashkan1234
چهارشنبه 08 آذر 1391, 22:25 عصر
واقعیتش زیاد متوجه نشدم، چون دکمه ای در سورس نمونه برای باز کردن دوباره Form1 ندیدم
اگه بخواهیم در صورت تغییر Text1 یا Text2 بلافاصله Form1 باز بشه میتوانیم از کدی مشابه زیر استفاده کنیم:
نه نمیخواستم با دکمه دوباره باز کنم!فکرکنم اشتباه از من بود!کد شما درست بوده!
ولی کدهای جدیدی که گفتید عمل نمیکنه!!!!