Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   pasar como parámetro nombre de un componente (https://www.clubdelphi.com/foros/showthread.php?t=45385)

joanajj 01-07-2007 13:14:32

pasar como parámetro nombre de un componente
 
Buenas a todos, alguien sabe como hacer que esto funcione:

function moverf(nomfich:string;casifich:integer):integer;
begin

nomfich.Left:=coord[casifich*2-1];
nomfich.top:=coord[casifich*2];

end;

Donde(y este es mi problema) NOMFICH corresponde al nombre de un TJvimage.

Es decir, al llamar a la función desde la aplicación hago:

moverf('ficha2',23);

ficha2 es un TJvimage, y el problema radica en que me devuelve el error de que nomfich.left objeto o clase es requerida.
Evidentemente nomfich no tiene ninguna propiedad LEFT, pero ficha2 que es lo que paso como parámetro sí.

Alguien sabe como hacer que esto funcione.
No sé si he llegado a explicar medianamente bien el problema.

Un saludo y gracias...

ArdiIIa 01-07-2007 13:48:50

Cita:

Empezado por joanajj
Buenas a todos, alguien sabe como hacer que esto funcione:
Un saludo y gracias...

Porqué no pruebas a mandar el objeto sin mas y luego manipularlo a tu gusto....

Código Delphi [-]
Procedure moverf(Objeto: TJvimage ;casifich : Integer);
begin
TJvimage(Objeto).Left := coord[casifich*2-1];
TJvimage(Objeto).top  := coord[casifich*2];
end;

/////

//Llamada:
moverf(ficha2,23);

joanajj 04-07-2007 22:07:44

Si funciona
 
Gracias, me funcionó a la perfección.

Un saludo...

gabrielkc 04-07-2007 22:25:49

Si necesitaras enviar el nombre de un componente y luego manipularlo tendrías que hacer:
Código Delphi [-]
function moverf(nomfich:string;casifich:integer;AOwner:TComponent):integer;
var Comp:TComponent;
begin
 Comp:=AOwner.FindComponent(nomfich); 
 Comp.Left:=coord[casifich*2-1];
 Comp.top:=coord[casifich*2];
end;
 
moverf('ficha2',23,ficha2.Owner);

Lo anterior puede ser util usandolo en un bucle digamos


La franja horaria es GMT +2. Ahora son las 19:50:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi