Passage du nom d'objet sur une fonction

Résolu
Dreus Messages postés 17 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 5 décembre 2006 - 5 déc. 2006 à 01:53
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 5 déc. 2006 à 14:10
Hello la foule,


j'aimerai simplifier le bout de code ce-dessous par une fonction, je pensais passer en paramètre le nom de l'image exemple "Ouverture(img1_v);" mais ensuite je ne sais pas comment récupérer ceci, je le sais en coldfusion  mais délphi je sèche .
Quelqu'un peu m'aider ?


    begin
          img1_v.Visible:=false;
          img1_o.Visible:=true;
    end;
    begin
          img2_v.Visible:=false;
          img2_o.Visible:=true;
    end;
    begin
          img3_v.Visible:=false;
          img3_o.Visible:=true;
    end;
    etc etc....

3 réponses

sp40 Messages postés 1284 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
5 déc. 2006 à 09:25
Bonjour


Fais une boucle :

For i := 1 to [nbre d'images] do begin

    TImage(MyForm.FindComponent('img' + IntToStr(i) + '_v')).visible := False;

    TImage(MyForm.FindComponent('img' + IntToStr(i) + '_o')).visible := True;

end;


Attention :

- A la casse des noms d'objets

- "MyForm" n'est pas obligatoire mais conseillé (si tu places ta boucle dans un "with" par exemple)

Simon
3
Dreus Messages postés 17 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 5 décembre 2006
5 déc. 2006 à 11:47
Nickel, c'est ce qu'il me faillait !
Merci beaucoup pour cette réponse rapide.
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
5 déc. 2006 à 14:10
tu peu egalement faire ceci :

var
  Imgs : array[0..5] of TImage;

procedure InitVisibility;

var N : integer;

begin

  for N := 0 to 2 do begin

      Imgs[N].Visible   := true;


      Imgs[N+3].Visible := false;

  end;

end;


procedure ReverseVisibility;

var N : integer;

begin
  for N := 0 to 5 do
      Imgs[N].Visible := not Imgs[N].Visible;

end;

procedure SetVisibilityOf(const Index :  integer) ;
begin
  case Index of
    0..2 : begin Imgs[index].Visible := true; Imgs[index+3].Visible := false; end;
    3..5 : begin Imgs[index].Visible := true; Imgs[index-3].Visible := false; end;
  end;
end;

procedure Form1.FormCreate(Sender : TObject);
begin
  Imgs[0] := Img1_v;    Imgs[3] := Img1_o;
  Imgs[1] := Img2_v;    Imgs[4] := Img2_o;
  Imgs[2] := Img3_v;    Imgs[5] := Img3_o;
  InitVisibility;
end;

<hr size="2" width="100%" />Croc (click me)
0
Rejoignez-nous