[ TezVi @ 13.01.2005. 17:25 ] @
ok, imam jedna problemčić koji me muči u Delphiju 7... napravio sam josh prije godinu dana jedan program za koji sad pišem update... naime, razvio sam jedan dio programa, točnije wizard koji iz određenog foldera skenira sve foldere i fajlove određene ekstenzije iz tih foldera... te fajlove otvori i podatke (tekst) prebacuje u mem... ok, čisto za uvod...![]() Code: if FindFirst(Path+DirName, faDirectory, SR) = 0 then if length(SR.Name)=5 then if midstr(SR.Name,3,1)='-' then begin if FindFirst(Path+SR.Name+'\*.*', faDirectory, SR2) = 0 then begin repeat if (length(SR2.Name)>=2) and (SR2.Name<>'..') and (SR2.Attr=faDirectory) then begin imerazr:=ConvertFolderName(SR2.Name); AddRazred(leftstr(imerazr,length(imerazr)-2),rightstr(imerazr,1),'','',''); brRazr.Caption:=inttostr(strtoint(brRazr.Caption)+1); if FindFirst(Path+SR.Name+'\'+SR2.Name+'\*.dat',faAnyFile, SR3) = 0 then begin repeat if SR3.Attr<>faDirectory then begin if abort then begin label18.Caption:='Proces prekinut...'; Progress.Visible:=false; lblKraj.Visible:=true; end; Progress.position:=Progress.position+1; lblPath.Caption:=path+DirName+'\'+SR2.Name+'\'+SR3.Name; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //OVDJE POKUŠAVAM SA update procedurama lblPath.Update; pisdatform.Update; ///////////////////////// // OVDJE ide glavni dio posla -> funkcija LoadUcenikFromDat otvara fajl i učitava.... ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// if LoadUcenikFromDat(ConvertFolderName(SR2.Name),path+DirName+'\'+SR2.Name+'\'+SR3.Name) then brUc.Caption:=inttostr(strtoint(brUc.Caption)+1) else brFailed.Caption:=inttostr(strtoint(brFailed.Caption)+1) end; until FindNext(SR3) <> 0; FindClose(SR3); end; end; until FindNext(SR2) <> 0; FindClose(SR2); end; end; FindClose(SR); ovdje ima dosta koda unutar petlji tako da sam samo izrezao onaj dio gdje se refreshaju forme... E sad, problem je u tome što se nakon desetak sekundi odrađenog posla petlje forma "zamrzne" isto kao i Cancel button. Ovaj problem sam rješavao u VB6 sa DoEvents procedurom, pa stoji pitanje: ima li kakva alternativa u Delphiju... na koji način da to rješim...? Ubacio sam u petlju form.update proceduru... to mi osvježava progressbar i labele, ali za buttone ne šljaka... znači želio bih da mogu kliknuti buttone dok je form "busy" tako da mogu prekinuti proces i da se forma ne zamrzava (not responding). ima li tko kakav prijedlog? |