19. januar 2000 - 13:12Der er
5 kommentarer og 1 løsning
Gemme image dynamisk
Er der en som kan vise mig et eks. på, hvordan jeg henter og gemmer, et vilkårligt antal Image og Label, som er oprettet på en Shape under runtime. det skal være sådan, at når jeg henter filen ind i mit program igen, skal jeg fortsat kunne trække og flytte rundt på de oprettet Image og Label.
Jeg har hørt at der er en funktion der hedder streaming, men om det er den jeg skal bruge ved jeg ikke.
Hvert Image du har indeholder et "picture" object, der er selve bmp-filen (billedet).
TPicture objectet har, som mange andre objecter, hhv. Loadfrom- og Savetofile metoder.
Du kan derfor bruge en openpicturedialog og savepicturedialog til hhv. at vælge hvilke du vil have læst ind, og hvilke navne du vil give dem du give valgt, når du gemmer dem.
Selve billederne skal du jo først vælge, og det har jeg ingen ide om hvordan du vil gøre, men hvis du f.eks. har oprettet 15-20 images (skjulte ?) på en form og alle har et picture i sig, kan du lave et loop fra komponent til komponent, checke på typen, checke på om der er et billede og i givet fald gemme det.
Med hensyn til at læse dem ind igen når billedet starter kan du kun gøre det ved at give dem et navn (eller gemme dem i et navngivet dir) således at du programmæssigt ved at f.eks. filen Image001.bmp hører til image001.picture.
Du kan loope gennem komponenterne således, og samtidig læse billederne ind (hvis de har samme navn som Imagecomponenten):
I : integer;
with {formnavn} do begin for i := 0 to component.count -1 do begin if (component[i] is TImage) then begin if not (component[i] as TImage).picture.assigned then // imaget er tomt begin (component[i] as TImage.picture.loadfromfile((component[i] as TImage).name+'.bmp'); end; end; end;
På samme måde vil du kunne gemme dem igen.
En anden mulighed er at lave en record i memory (et array):
type Images : record navn : String; pic : TPicture; end;
var billede : array[1..x] of Images;
Enten ved at vælge filnavne via en openpicturedialogboks (med multiuselect) eller ved at læse navnene ind via en FindFirst/FindNext/FindClose funktion, udfylder du din billede record ved hjælp af:
Herefter er det bare at flytte de du vil vise ud i de image.picture du har på formen hvor du vil vise dem. Array-index (1,2,3,4..) kan jo henvise til første image-shape, anden image-shape, o.s.v.
Jeg håber at dette har givet dig nogle ideer at arbejde videre med,
Anold, det at gemme alle billeder og tekster i EN fil har givet mig nogle problemer og taget mere tid end beregnet, Jeg har derfor været tvunget til at lægge det til side i nogen tid for at gøre noget andet færdigt. Men jeg har ikke givet op. P.t. kan mig program gemme hvert billede i en fil og alle navnene (og stien til hvert billede) i en ekstra fil således at antallet af filer = antal billeder + 1.
Jeg arbejder dog videre med det efterhånden som jeg har tid.
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.