как слелать "возврат"?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
badDRAGON
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 103
Зарегистрирован: 07.11.2003 (Пт) 11:16
Откуда: krasnodar

как слелать "возврат"?

Сообщение badDRAGON » 07.05.2005 (Сб) 13:57

как прервать выполнение кода на определенном месте ...желательно чтобы во время "перерыва" проверялось определенное условие в таймере,при выполнении данного условия в таймере нужно дать команду продолжить код с того места,где была осановка...,Без использования sleep=так как прога в окне задач указана,как зависшая...а нужно,чтобы она функционировала.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 07.05.2005 (Сб) 14:22

Код: Выделить всё
dim flag1 as boolean, flag2 as boolean

...

'breakpoint 1
do while flag1=true
doevents
loop

...

'breakpoint 2
do while flag2=true
doevents
loop

...

badDRAGON
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 103
Зарегистрирован: 07.11.2003 (Пт) 11:16
Откуда: krasnodar

Сообщение badDRAGON » 07.05.2005 (Сб) 18:28

не....ладно,щас обьясню...
вот пример кода:
Данный пример позволяет "перебрать" все подпапки одной определенной директории. К примеру, вам необходимо в каждой подпапке подсчитать количество файлов, или выполнить стандартную процедуру над каждым файлом, да мало ли какое применение. Данный код я использую в своей программе FPkiller. Разместите на форме элементы FileListBox, DirListBox, DriveListBox а также элемент CommandButton.

Затем вставьте следующий код, и ваша программа заработает. Все необходимые, на мой взгляд, пояснения даны в примере. Как вы понимаете, в данном примере основной процедурой является процедура ScanFolders(). Ваш код для обработки каждой папки должен помещаться между /// и \\\.

Код: Выделить всё
Dim InitialFolder
Dim OldDrive As String
Dim TotalDir 'переменная для обозначение общего количества папок

Private Sub Command1_Click()
ChDrive Drive1.Drive
ChDir Dir1.Path
InitialFolder = CurDir
ScanFolders
End Sub

Sub ScanFolders()
Dim SubFolders As Integer
'///начало обращения к внешней процедуре
'в данный блок вы можете вставить любую процедуру обработки текущей папки
'MsgBox CurrentFolder(Dir1.Path) 'просмотр текущей папки
'снимите маркер, если хотите получить общее количество папок, включая начальную
'TotalDir = TotalDir + 1

'\\\конец обращения к внешней процедуре
SubFolders = Dir1.ListCount
If SubFolders > 0 Then
For i = 0 To SubFolders - 1
ChDir Dir1.List(i)
Dir1.Path = Dir1.List(i)
File1.Path = Dir1.List(i)
Form1.Refresh
ScanFolders
Next
End If
File1.Path = Dir1.Path
MoveUp
End Sub

Sub MoveUp()
If Dir1.List(-1) <> InitialFolder Then
ChDir Dir1.List(-2)
Dir1.Path = Dir1.List(-2)
End If
End Sub
Private Sub Dir1_Change()
ChDir Dir1.Path
File1.Path = Dir1.Path
End Sub
Private Sub Dir1_Click()
With Dir1
.Path = .List(.ListIndex)
End With
End Sub
Private Sub Drive1_Change()
On Error GoTo ErrHan
ChDrive Dir1.Path
Dir1.Path = Drive1.Drive
Dir1.Refresh
'присвоение этой переменной значение Drive1.Drive для исключения ошибки
OldDrive = Drive1.Drive
Exit Sub
ErrHan:
Drive1.Drive = OldDrive
End Sub
Private Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Private Function CurrentFolder(sFolderPath)
Dim str1() As String
str1 = Split(sFolderPath, "\")
CurrentFolder = str1(UBound(str1))
End Function

вот...мне нужно,чтобы поиск происходил не "мгновенно",а

папка/peremennaia

,где peremennaia-задаваемое пользователем время...например

скорость сканирования одна папка в 5 минут...вот
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 170

    TopList