PDA

View Full Version : پایان دادن به کار تابع های صدا زده شده قبلی ؟!



سپهر-111
سه شنبه 05 فروردین 1393, 19:14 عصر
سلام دوستان و بزرگواران
سال نو به همه دوستان تبریک عرض میکنم
چطور میتونیم از درون تابع ، تابعهای باز شده قبلی را ببندیم ؟
مثلا در این نمونه برنامه که گذاشتم
میخوام وقتی برنامه به تابع چهار رسید توابع قبل از اون صدا زده شده ، بسته بشه و برنامه پایان پیدا کنه
با چه کدی میتوان این کار را انجام داد ؟؟ ممنون میشم راه حلی نشونم بدید



Public Sub cmdCommand1_Click()
Call Sub_1
End Sub

Public Sub Sub_1()
Call Sub_2
MsgBox "Sub_1"
End Sub

Public Sub Sub_2()
Call Sub_3
MsgBox "Sub_2"
End Sub

Public Sub Sub_3()
Call Sub_4
MsgBox "Sub_3"
End Sub

Public Sub Sub_4()
"این جا کدی باشه که به کار توابع قبلی پایان بده"
MsgBox "Sub_4"
End Sub

vbhamed
چهارشنبه 06 فروردین 1393, 16:53 عصر
سلام
تابع هاي قبلي رو كه نمي‌تونيد ببنديد مگر اينكه يك متغير سراسري تعريف كنيد كه اگر در تابع چهارم مثلا مقدارش 1 شد توابع قبلي خودشون از خودشون با دستور exit sub خارج بشن

اما براي خاتمه كلي برنامه مي‌تونيد از دستور end استفاده كنيد، نيازي به خروج از توابع قبلي هم نيست

سپهر-111
پنج شنبه 07 فروردین 1393, 00:54 صبح
سلام اقا حامد سال نو مبارک داداش .
ممنون که جواب دادی .
پس با این حساب باید حتما در درورن اون سه تا تابع قبلی ، تو هر کدوم یک شرط گذاشت که با چک کردن اون از تابع خارج بشه ؟؟. اگه این امکان داشت که با یک دستور به توابع قبلی خاتمه داد خیلی عالی میشد ...(البته توی برنامه نویسی میکرو کنترلر میشه این کار انجام داد . البته اونم با اسمبلی !)

program2vb
پنج شنبه 07 فروردین 1393, 17:30 عصر
سلام .


Dim et As Integer
Dim i As Long
Private Sub test()
i = 0
Beep
While Not (et = 0)
i = i + 1
Me.Caption = i
DoEvents
Wend
Beep
Exit Sub
End Sub
Private Sub Command1_Click() '====> Stop
et = 0
End Sub
Private Sub Command2_Click() '====> Start
et = 1
test
End Sub


موفق و پیروز باشید در پناه خدا .... یا علی