Avatar billede thecokeguy Nybegynder
07. juli 2004 - 04:04 Der er 2 kommentarer og
1 løsning

Arbejde i baggrunden

Hvordan får jeg et program til at arbejde i baggrunden f.eks. når jeg downloader en fil. Jeg skulle meget gerne kunne undgå at formen fryser fast i den tid filen bliver hentet.

Tusind tak for hjælpen.
Avatar billede arne_v Ekspert
07. juli 2004 - 07:14 #1
Start en tråd.
Avatar billede hrc Mester
07. juli 2004 - 21:40 #2
Som arne v skriver så kan du bruge en tråd (file/new/other/threadobject) til at lave et subprogram der kører parallelt med dit primære. Der er nogle småting man skal lære (såsom brugen af Synchronize), men når det er på plads, er det ikke svært med tråde.

Jeg tænker på om du måske mere var interesseret i denne:

  Application.ProcessMessages;

Den bruges i løkker for at sikre at programmet kan gentegne billedet. Normalt sørger man for at den ikke kaldes i hvert loop for det sløver operationen voldsomt ned. Derfor laver man noget i retningen:

for i := 0 to gazillion - 1 do begin
  if i mod 100 = 0 then
    Application.ProcessMessages;

  // Tung operation her
end;

ProcessMessages håndterer de beskedder der omhandler dit program, mens denne:

  Application.HandleMessage;

klarer også omfatter andre programmer. En slags "nice" funktion der tillader andre programmer at arbejde.

På denne måde bliver programmet opdateret for hvert 100 gennemløb.
Avatar billede hrc Mester
07. juli 2004 - 21:45 #3
Nederste linie skal lige rykkes 6 linier op.

Irriterende at indtastningsvinduet er så smalt. Kan selvfølgelig lave copy/paste, men det gør jeg ikke - måske er det for at begrænse størrelsen på indslagene ... ahem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester