Tags:
delphi
Hej
Jeg bruger Delphi 5 Ent. og Borland InterbaseExpress comp.
I den forbindelse sker der af og til, at jeg i min appl. er nød til at lave en select eller en update, som tager nogle minutter om at fuldføre.
Dvs. fra det øjeblik jeg skriver MyQuery.Open eller MyQuery.ExecSQL sker der intet i programmet.
Det er her, jeg godt kunne tænke mig, at programmet kunne vise et eller andet til brugeren. De fleste af mine brugere tror fejlagtigt at programmet er dødt.
Så f.eks. en form med en eller anden tekst, og måske et "møllehjul" (/-\\-) som drejer rundt.
Jeg har prøvet at lave en form, som har en timer på, som på hver "timer tik" skifter tegn i en label. Derved burde man få et møllehjul.
Virker fint, lige indtil open eller execsql udføres.
Nogen der har nogle gode idéer til løsningsforslag ?
===
Med venlig hilsen
Michael Vilhelmsen
2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
Multi-threading (flere tråde) er løsningen, da MySQL funktionerne ikke returnerer før kommandoerne er udført.
En ekstra tråd, der udfører MySQL kommandoerne, ville være en god løsning på et sådan problem.
Derved ville du også kunne køre dit program normalt (altså lave roterende møller osv.), mens kommandoerne bliver udført. Du skal dog huske at tilgå variablerne (hvis du fx sætter en bolean, når kommandoen er udført) med Mutex's, for hvis de to tråde ændrer en variabel på samme tid, så kan dit program risikere at gå ned.
1101110100010110000101000001
Killers don't end up in jail - they end up on a high-score!
[Redigeret d. 05/04-05 14:47:21 af Nicolai Lyster Fersner]
0
For at løse mit problem, kunne jeg så lave en tråd i mit program, som vise en slags "pause billede" hvor der er sådan et møllehjul ?
Hvis ja - Har du så evt. et link eller en stump kode, som kan vise hvordan jeg laver en sådan tråd.....
Michael