Avatar billede klaaes Nybegynder
08. november 2005 - 11:07 Der er 11 kommentarer og
1 løsning

variabel i komponentnavn

Hej,

Jeg har en for-do-løkke, hvor jeg vil have den til at ændre nogle forskellige picturebokse, nogenlunde sådan:

For i=1 to Length(Facit) do
      Bogstav+i+Image.picture.LoadFromFile('/bogstaver/'+Facit[i]+'.gif');


Men jeg går ud fra at det ikke fungerer med 'Bogstav+i+Image.picture...'.

Hvordan får jeg den til at indsætte variablen 'i' i komponentens navn?
Avatar billede martinlind Nybegynder
08. november 2005 - 11:28 #1
Du kan bruge TImage(FindComponet("CompNavn")).Picture
Avatar billede klaaes Nybegynder
08. november 2005 - 11:37 #2
Forstår det ikke..

Vil have den til at skrive:
Bogstav1Image.picture.LoadFromFile('Bogstaver\'+Facit[1]+'.JPG');
Bogstav2Image.picture.LoadFromFile('Bogstaver\'+Facit[2]+'.JPG');

osv.
Avatar billede nca Juniormester
08. november 2005 - 11:42 #3
Du kan oprette dine imageboxe som et array, hvorefter du vil kunne henvise til ImgBox[x].LoadfromFile ...
Avatar billede martinlind Nybegynder
08. november 2005 - 11:58 #4
TImage(FindComponet("Bogstav"+IntToStr(I)+"Image")).Picture.LoadFromFile();
Avatar billede stoney Nybegynder
08. november 2005 - 13:39 #5
var
I : Integer;
begin
For I:= 1 to ComponentCount  do
begin
  if (Components[I] is TImage) then
  (Components[I] as TImage).Picture.LoadFromFile('/bogstaver/'+Facit[i]+'.gif');


end;

Stoney
Avatar billede hrc Mester
09. november 2005 - 10:35 #6
stoney: nu var det jpg'er han ville indlæse :-)
Avatar billede stoney Nybegynder
09. november 2005 - 11:23 #7
hrc: jeg copy pastede fra det oprindelige indlæg, der var det gif.
    Hvis det skal være gif må vi nok hellere lave det i .NET :-)

klaaes: rettelse, det skal være

          (Components[I] as TImage).Picture.LoadFromFile('/bogstaver/'+Facit + inttostr(i)+'.gif');

Stoney
Avatar billede hrc Mester
09. november 2005 - 13:03 #8
Ja, ja. Det var blot en spøg...
Avatar billede klaaes Nybegynder
15. november 2005 - 10:36 #9
Jeg tror ikke jeg forstår det.

Jeg har skrevet:

for i:=1 to Length(Facit) do
    Begin
    TImage(FindComponent('Bogstav'+IntToStr(i)+'Image')).Picture.LoadFromFile();
    (Components[I] as TImage).Picture.LoadFromFile('/bogstaver/'IntToStr(i)+'.jpg');
    End;

og det virker ikke.
Avatar billede martinlind Nybegynder
15. november 2005 - 10:49 #10
for i:=1 to Length(Facit) do
    Begin
    TImage(FindComponent('Bogstav'+IntToStr(i)+'Image')).Picture.LoadFromFile('/bogstaver/'IntToStr(i)+'.jpg');
    //(Components[I] as TImage).Picture.LoadFromFile('/bogstaver/'IntToStr(i)+'.jpg');
    End;
Avatar billede klaaes Nybegynder
15. november 2005 - 11:16 #11
Okay jeg fattede det nu. Tak.
Avatar billede klaaes Nybegynder
15. november 2005 - 11:20 #12
Nu jeg har jer.

Jeg skal senere bruge noget lignende:

For i:=1 to Length(Facit) do
    if TImage(FindComponent('Bogstav'+IntToStr(i)+'Image')).Picture = StrToInt('')
    then Result:= True;


Men det virker ikke.
Den forstår ikke FindComponent.. hvorfor dog ikke det?
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