Avatar billede anold Nybegynder
19. januar 2000 - 13:12 Der 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.
Avatar billede gusse Nybegynder
19. januar 2000 - 14:16 #1
Kig på dit timage.picture

metoden loadfromfile ...

Hvad mener du med trække /flytte...
Avatar billede sjensen Nybegynder
19. januar 2000 - 14:29 #2
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:

billede[i].navn := filnavn;
billede[i].pic.loadfromfile(filnavn);

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,

sjensen
Avatar billede anold Nybegynder
31. januar 2000 - 13:50 #3
Hej Sjensen

hvordan går det med det lille program du sage at du ville lave til mig så jeg kan gemme mine imag's og label's dynamisk i en  fil
Avatar billede anold Nybegynder
31. januar 2000 - 13:51 #4
HOVSA
Image's med e
Avatar billede sjensen Nybegynder
01. februar 2000 - 09:24 #5
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.

sjensen
Avatar billede anold Nybegynder
17. december 2002 - 06:44 #6
Jeg lukker dette spg
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