PDA

View Full Version : ایجاد مکث در برنامه (pause)



user2535
پنج شنبه 05 آذر 1388, 10:41 صبح
با سلام می خواهم در عملیات اجرای برنامه مکث ایجاد شود و جهت ادامه با تایید کاربر ادامه دهد

از msgbox نمی خواهم استفاده بشه و یک فرم یا تابع عمومی که طراحی کرده ام نشان داده شود بهترین راه چیه؟
ممنون

Hossis
جمعه 06 آذر 1388, 08:54 صبح
باید دو متغیر در سطح کلاس فرم تعریف کنید، یکی برای تشخیص هنگام توقف و دیگری برای ذخیره محل مکث
مثلا وقتی در یک حلقه For هستید، در هر دفعه که این حلقه اجرا می شود، چک می کنید که آیا شرط توقف حاصل شده یا نه؟ اگر حاصل شده باشد،‌ شماره دفعه در متغیر دوم ذخیره شده و از حلقه For خارج می شود، و شما در یک خط دیگر بررسی می کنید که اگر مثلا تعداد به بیش از 30 درصد رسیده، برنامه متوقف شود
برای از سر گیری کافی است که حلقه For از شماره ذخیره شده در متغیر دوم شروع شود.
اگر این توضیحات گیج کننده بود، یک مثال می زنم که خودم اجرا کرده ام:


Dim Pause, Stope As Boolean
Dim PauseId As Integer
Private Sub CmdFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdFind.Click
Dim I, gp As Integer
Dim tx As String
Dim Node As TreeNode
Pg2.Visible = True
Pause = False : Stope = False
Dim u() As String = IO.Directory.GetFiles("d:\Books\", "*.htm*", IO.SearchOption.AllDirectories)
For I = PauseId To UBound(u)
tx = IO.File.ReadAllText(u(I))
If InStr(tx, TxtFind.Text, CompareMethod.Text) Then
Node = LsFind.Nodes.Add("F" & I, u(I))
End If
My.Application.DoEvents()
gp = (I * 100) / UBound(u) - 1
If gp > 0 Then Pg2.Value = gp
Lpg2.Text = "%" & Pg2.Value.ToString
If Stope Then Exit For
If Pause Then PauseId = I : Exit For
Next
Pg2.Visible = False
End Sub
Private Sub CmdClose_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btStop.Click
Stope = True
End Sub
Private Sub btPouse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btPouse.Click
Pause = True
End Sub