29. december 2004 - 17:01Der er
5 kommentarer og 1 løsning
billeder i array, eller hvordan?
Hej Jeg er nye i Delphi og er i følgende situation:
Jeg har 4 billeder med navnene: RF0 RF1 RF2 RF3
i en edit box skriver jeg så enten 0,1,2 eler 3 og trykker på en knap. Det tal jeg har indtastest skal så bestemme hvilket af billeder jeg sætter til: RFx.Visible := true;
Dette kan jeg gøre via 4 if'er: if inputnum = 0 then RF0.Visible := true; if inputnum = 1 then RF1.Visible := true; if inputnum = 2 then RF2.Visible := true; if inputnum = 3 then RF3.Visible := true;
men dette er jo slave måden, og jeg undrede mig over om man ikke kan smide billederne i en form for array så jeg kan kunne sige:
når mit program når til for t:=0 to length(pics)-1 do pics[t].picture.loadfromfile('RF'+inttostr(t)+'.jpg'); crasher det...det er tilsyneladende: pics[t].picture.loadfromfile('RF'+inttostr(t)+'.jpg'); den ikke kan lide
okay, de Timages skal selvf. initialiseres først. Prøv det her i stedet:
var pics:array[0..2] of tImage; v,t:integer; begin for t:=0 to length(pics)-1 do begin pics[t]:=tImage.Create(self); pics[t].parent:=form1; pics[t].top:=100; pics[t].left:=100; pics[t].Visible:=false; pics[t].picture.loadfromfile('RF'+inttostr(t)+'.jpg'); end;
try v:=strtoint(edit1.Text); pics[v].Visible:=true; except on eConvertError do ; else ; end; end;
type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var pics:array[0..2] of tImage; v,t:integer; begin for t:=0 to length(pics)-1 do begin pics[t]:=tImage.Create(self); pics[t].parent:=form1; pics[t].top:=100; pics[t].left:=100; pics[t].Visible:=false; pics[t].picture.loadfromfile('RF'+inttostr(t)+'.jpg'); end;
try v:=strtoint(edit1.Text); pics[v].Visible:=true; except on eConvertError do ; else ; end; end;
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.