Cita:
Empezado por sofiaz
no mira, lo que quiero evitar es esto (es mi solucion transitoria, que es horrible...):
|
Realmente, es horrible!!!
Lo bueno es que lo reconozcas y quieras arreglarlo...
Sé de más de uno que la dejaría así sin ningún remordimiento.
Código Delphi
[-]
... begin
case n of
6: image6.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
7: image7.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
8: image8.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
9: image9.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
10: image10.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
11: image11.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
12: image12.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
13: image13.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
14: image14.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
15: image15.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
16: image16.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
17: image17.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
18: image18.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
19: image19.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
20: image20.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
21: image21.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
22: image22.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
23: image23.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
24: image24.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
25: image25.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Cartas\'+cadena+'.jpg');
La forma de evitar esto, es utilizar
FindComponent.
Con esta función puedes acceder a un componente a partir de una cadena con su nombre.
De esta formas teniendo la variable
i y todos los componentes que se llaman
image6,
image7,
image8,... puedes generar un código similar a este:
Código Delphi
[-]
var
compName:string;
i:integer;
comp:TComponent;
begin
for i := 1 to 5 do begin
compName := 'image' + IntToStr(i);
comp := FindComponent(compName);
if Assigned(comp) then begin
TImage(comp).Picture.LoadFromFile('r:\imgTest.bmp');
end
else begin
ShowMessage('No he encontrado el componente: ' + compName);
end;
end