Billede i en tråd

Tags:    delphi

Jeg er ved at lave et lille kartoteksprogram, hvor der bl.a.
indlæses et lille billede i en tImage komponent.
Denne lille thumbnail kan man klikke på og det fulde billede
bliver så indlæst i en anden form.
Det er planen men virkeligheden er lidt anderledes...
Når der skal læses et stort billede ind i tumbnail'en, halt'er
den eksekveringen at programmet. D.v.s. at man ikke kan
scrolle videre før billedet er blevet helt indlæst, selvom det
kun er et lille tImage box.
Aha tænkte jeg... Tråde er løsningen.
Altså hvis man scroller ned med pil-tasten skal hvert tryk
terminere den forudgående indlæsning med det samme og
starte den nye... det gør den altså bare ikke...
Programmet halt'er stadig, selvom jeg har lavet en terminate.

Er der nogle der har en ide om, hvordan man terminerer et
billede som er ved at blive indlæst... eller en anden måde at
løse mit problem på?

[Redigeret d. 08/06-05 23:46:33 af André]



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Det er ikke sådan lige til at gøre! Med threads kommer en masse problemer, og jeg tvivler på at de ville hjælpe dig. Istedet ville jeg hvis jeg var dig skrive en custom Bitmap loader. På den måde kan du i while loopet der loader filen bruge Application.ProcessMessages; som så vil sørge for at programmet ikke fryser!

MH.

The-Freak

Livet er for kort til at kede sig.



Info om bitmap formatet kan findes her (bare scroll ned til sektionen om BMP):
http://www.wotsit.org/search.asp?s=graphics
Jeg foretrækker den øverste, dvs. den på 8K, men det kan du selvfølgelig selv bedømme.

Hvis du kender til fil læsning og skrivning samt dynamiske arrays, så burde det ikke volde dig større problemer.

Fordelen ved ens egen loader er jo også, at man kan benytte andre filformater sammen med Delphi's TImage, da denne kun kræver rå billeddata.

1101110100010110000101000001

Killers don't end up in jail - they end up on a high-score!

[Redigeret d. 10/06-05 01:43:52 af Nicolai Lyster Fersner]



I VB er der en funktion, der hedder DoEvents, som man kan køre inde i uendelige loops (eller lange rent tidsmæssigt) - er der ikke noget lignende i Delphi?

Mikkel Meyer Andersen (mikl-dk)



I VB er der en funktion, der hedder DoEvents, som man kan køre inde i uendelige loops (eller lange rent tidsmæssigt) - er der ikke noget lignende i Delphi?

Mikkel Meyer Andersen (mikl-dk)



Mmmm...
Jeg formoder at du mener en event som kører for sig
selv? Altså som en selvstændig tråd?
Events eksisterer i Delphi, men jeg kan ikke lige forbinde dem
med mit problem... kan du uddybe det lidt?



Det er ikke sådan lige til at gøre! Med threads kommer en masse problemer, og jeg tvivler på at de ville hjælpe dig. Istedet ville jeg hvis jeg var dig skrive en custom Bitmap loader. På den måde kan du i while loopet der loader filen bruge Application.ProcessMessages; som så vil sørge for at programmet ikke fryser!

MH.

The-Freak

Livet er for kort til at kede sig.



Jeg aner ikke hvordan man laver en image loader.
Efter gentagende forsøg på at finde en på netter står jeg stadig
på bar bund.
Har du et link eller noget kode?



t