Avko |
17.04.2015 10:15 |
Predmet:DoEvents naredba
imam 2 pitanja:
1. da li DoEvents naredba zamjenjuje Timer, tj zaustavlja proces i omogucuje druge naredbe?
2. da li sam dobro stavio Tab-ove u ovoj funkciji, koristio sam notepad++ sa sintaksom VB?
PreuzmiIzvorni kôd (Visual Basic):Public Sub DownloadFile(strURL As String, strDestination As String) 'As Boolean
Const CHUNK_SIZE As Long = 1024
Dim intFile As Integer
Dim lngBytesReceived As Long
Dim lngFileLength As Long
Dim strHeader As String
Dim b() As Byte
Dim i As Integer
Dim ip As String
Dim ipurl As String
ipurl = "http://www.icentar.ba/ip.php"
ip = Inet1.OpenURL(ipurl, icString)
MsgBox ip
DoEvents
With Inet1
.url = strURL
.Execute , "GET", , "Range: bytes=" & CStr(lngBytesReceived) & "-" & vbCrLf
While .StillExecuting
DoEvents
Wend
strHeader = .GetHeader
End With
strHeader = Inet1.GetHeader("Content-Length")
lngFileLength = Val(strHeader)
DoEvents
lngBytesReceived = 0
intFile = FreeFile()
Open strDestination For Binary Access Write As #intFile
Do
b = Inet1.GetChunk(CHUNK_SIZE, icByteArray)
Put #intFile, , b
lngBytesReceived = lngBytesReceived + UBound(b, 1) + 1
DownloadProgress (Round((lngBytesReceived / lngFileLength) * 100))
DoEvents
Loop While UBound(b, 1) > 0
Close #intFile
End Sub
vazno je napomenuti da funkcija koja se nalazi u modulu radi i nema error, a poziva se sa
downloadFile url,"fileName.txt". Skinuta je sa interneta.
Znači, samo objaÅ¡njenje DoEvents i ispravni Tab-ovi.
Hvala |
zxz |
17.04.2015 10:34 |
Predmet:Re: DoEvents naredba
DoEvents komanda dozvoljava da radis neki drugi posao dok se procedura izvrsava.
Znaci ako neka procedura dugo traje onda stavis doEvents te mozes raditi neke druge radnje dok se ona u pozadini izvrsava.
Ukoliko pobrises DoEvents procedura ce i dalje raditi sem sto ces morati cekati dok se ona ne izvrsi.
To je ono opisno receno sta se desava.
To je u stvari funkcija koja omogucava izvrsenje drugog procesa. |
Avko |
17.04.2015 10:47 |
Predmet:Re: DoEvents naredba
a jesu li tabovi dobri? |
zxz |
17.04.2015 18:51 |
Predmet:Re: DoEvents naredba
Jel mislis na pause kako si uvlacio kod ili nesto drugo. |
zxz |
18.04.2015 21:14 |
Predmet:Re: DoEvents naredba
With znaci da hoces da vidis i mijenjas osobine datog objekta.
kada imas with nemoras kucati ime objekta nego samo tacka i naziv osobine.
Primjer:
PreuzmiIzvorni kôd (Visual Basic):Function primjer()
Dim Db As Database
Dim Tbl As TableDef
Dim ImeTabele As String
Dim BrjRedova As Integer
Dim DatumKreiranja As String
Set Db = CurrentDb
Set Tbl = Db.TableDefs("Table1")
With Tbl
ImeTabele = .Name
BrojRedova = .RecordCount
DatumKreiranja = .DateCreated
End With
End Function
Samo umjesto table1 napisi ime tvoje neke tabele u bazi |
Gjoreski |
18.04.2015 23:22 |
Predmet:Re: DoEvents naredba
Kad trebas mejnati vise parametra ili citati vise parametra od objekta ja uvek koristim With jel tako je preglednije za rad ali kas su samo jedam ili dva parametra ne koristim ga ali i u vakvom slucaju kad su samo jedan ili dva parametra koristejne With nije greska. |
Avko |
18.04.2015 11:24 |
Predmet:Re: DoEvents naredba
na uvlacenje, sa uvlacenjem bolje razumijem kako sve to funkcionira. ono me with wend malo zbunjuje sa doevents. pa bi htio ispravno uvlacenje napraviti |
Avko |
20.04.2015 09:34 |
Predmet:Re: DoEvents naredba
onda bi to bilo ovako:
PreuzmiIzvorni kôd (Visual Basic):Public Sub DownloadFile(strURL As String, strDestination As String) 'As Boolean
Const CHUNK_SIZE As Long = 1024
Dim intFile As Integer
Dim lngBytesReceived As Long
Dim lngFileLength As Long
Dim strHeader As String
Dim b() As Byte
Dim i As Integer
Dim ip As String
Dim ipurl As String
ipurl = "http://www.icentar.ba/ip.php"
ip = Inet1.OpenURL(ipurl, icString)
MsgBox ip
DoEvents
With Inet1
.url = strURL
.Execute , "GET", , "Range: bytes=" & CStr(lngBytesReceived) & "-" & vbCrLf
While .StillExecuting
DoEvents
Wend
strHeader = .GetHeader
End With
strHeader = Inet1.GetHeader("Content-Length")
lngFileLength = Val(strHeader)
DoEvents
lngBytesReceived = 0
intFile = FreeFile()
Open strDestination For Binary Access Write As #intFile
Do
b = Inet1.GetChunk(CHUNK_SIZE, icByteArray)
Put #intFile, , b
lngBytesReceived = lngBytesReceived + UBound(b, 1) + 1
DownloadProgress (Round((lngBytesReceived / lngFileLength) * 100))
DoEvents
Loop While UBound(b, 1) > 0
Close #intFile
End Sub
|