Avatar billede anold Nybegynder
19. august 2005 - 07:31 Der er 3 kommentarer og
1 løsning

Det må kunne gøres nemmer

Hej
hvordan kan jeg skrive denne kode nemmer og mere 'elegant/rigtig'

F.eks med
For X = 1 to 31


If DataModule1.TabelRekvisition.FieldByName
      ('1').AsString = '1' Then Image1.picture.LoadFromFile
      (Format('c:\haustrup\prik_fuld12.bmp', [FileName[Image1.Tag]]))
  Else
    Image1.picture.LoadFromFile(Format('c:\haustrup\prik_tom12.bmp',
    [FileName[Image1.Tag]]));

If DataModule1.TabelRekvisition.FieldByName
      ('2').AsString = '1' Then Image2.picture.LoadFromFile
      (Format('c:\haustrup\prik_fuld12.bmp', [FileName[Image2.Tag]]))
  Else
    Image2.picture.LoadFromFile(Format('c:\haustrup\prik_tom12.bmp',
    [FileName[Image2.Tag]]));

If DataModule1.TabelRekvisition.FieldByName
      ('3').AsString = '1' Then Image3.picture.LoadFromFile
      (Format('c:\haustrup\prik_fuld12.bmp', [FileName[Image3.Tag]]))
  Else
    Image3.picture.LoadFromFile(Format('c:\haustrup\prik_tom12.bmp',
    [FileName[Image3.Tag]]));

If DataModule1.TabelRekvisition.FieldByName
      ('4').AsString = '1' Then Image4.picture.LoadFromFile
      (Format('c:\haustrup\prik_fuld12.bmp', [FileName[Image4.Tag]]))
  Else
    Image4.picture.LoadFromFile(Format('c:\haustrup\prik_tom12.bmp',
    [FileName[Image4.Tag]]));
Avatar billede borrisholt Novice
19. august 2005 - 11:02 #1
Sådan her måske ?

const
  FileName : array[0..1] of String = ('tom', 'fuld');
var
  aImage: TImage;
  i: Integer;
begin
  for i := 1 to 31 do
  begin
    aImage := TImage(FindComponent(Image) + IntToStr(i));
    if aImage = nil then
      continue;

    aImage.Tag := StrToIntDef(DataModule1.TabelRekvisition.FieldByName(IntToStr(i)).AsString, 0);
    aImage.Picture.LoadFromFile(Format('c:\haustrup\prik_%12.bmp', [FileName[aImage.Tag]]));
  end;
end;


Jens B
Avatar billede anold Nybegynder
19. august 2005 - 11:22 #2
Hej Igen Borrisholt

Delphi melder en fejl i denne linje:
aImage := TImage(FindComponent(Image) + IntToStr(i));

ved (image)

fejlmeddelsen er
[Error] haerdeseddel.pas(358): Undeclared identifier: 'Image'

håber at du kan løde problemet

Hilsen anold
Avatar billede borrisholt Novice
19. august 2005 - 11:39 #3
aImage := TImage(FindComponent('Image' + IntToStr(i)));

Sådan her.
Avatar billede anold Nybegynder
19. august 2005 - 11:47 #4
Hej Borrisholt
Tak for hjælpen

Jeg vender sikkert tilbage med nye problemer :-)
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