Gå til innhold

Anbefalte innlegg

Skrevet

hallo,

 

Jeg lurer på om det er noen mulighet og oppdatere det grafiske i en form fra en annen thread, mens formen og dermed "hovedtråden" er opptat?

 

Eller finnes det noen måte å lage en form/dialog med sin egen thread?

 

 

.:martin

Videoannonse
Annonse
Skrevet

Jeg vet ikke om jeg forstod deg helt rett.

 

hva ned å brusje refres eller repairnt.

 

eks.

minform.repaint.

 

eller

label1.repaint for å bare opdatere label1

og hvis du har laget en egen komponet :

minkomponet.refresh

 

minform er navnet på den formen du har laget .

Skrevet

Vel det vil desverre ikke virke. :ermm:

Problemet er at når en tråd står å "tygger" på en alogrite så vil den ikke merke at timer sender en event før etter den er ferdig, og det er under denne tiden jeg vil at en progressbar skal stå og gå slik at brukeren ikke tror programmet har hengt seg.

 

Spørsmålet er om jeg kan får en tråd til å kjøre en refresh eller en repaint, uten at denne blir synket til hovedtråden, eller om jeg kan lage en ny form som har sin egen tråd?

 

 

.:martin

Skrevet

Skal du ha progressbar, må du sende progressinfo til progressbaren, altså avbryte algoritmen av og til for å sette ProgressBar.Position:=... og Application.ProcessMessages for å trigge at formen blir tegnet på nytt.

 

Hvis jeg har mange steg (10000) i algoritmen, pleier jeg å sette det slik at oppdatering av progressbaren skjer ca. 100 ganger i løpet av hele prosessen, fordi det tar tid og ressurser, og forskjell på 1/10 pixel ikke er synlig.

 

Hvis du ikke kan avbryte, eller hvis du ikke vet når algoritmen kommer til å bli ferdig, kan du lage en form med TAnimate og vise den med vanlig Show før du starter med prosessen. Dette fungerer veldig bra selv om jeg foretrekker å vise ekte framskritt, altså hvor mye som står igjen.

Skrevet

Jo er helt enig at det hadde vært best å bryte den opp slik at jeg kan kalle prosessMessage. Men det er selfølgelig ikke tilfelle når man virkelig har bruk for det eller hva :cry:

 

Prosedyren ligger i en dcu fil, som jeg ikke har tilgang til.

 

Jeg prøvde det du sa med å lage en ny form med en TAnimate. Men den frøs hos meg! (altså den blei ikke oppdatert så lenge hovedtråden var opptat)

Skrevet

Er det en ferdig rutine du bruker som bruker så lang til at du lurer på om maskin har hengt seg opp slik at du ikke selv jan legge inn noe som sender beskjed utenfor rutine ?

 

Du kan ikke lage din egen variant av denne da ?

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...