Ver Mensaje Individual
  #1  
Antiguo 10-11-2010
Tortuguica Tortuguica is offline
Miembro
 
Registrado: sep 2010
Ubicación: Elche, España
Posts: 46
Reputación: 0
Tortuguica Va por buen camino
Moldear una cadena para convertirla en un TLabel

Hola a todos. Antes de nada, debo decir que soy un novatón, así que perdón por adelantado por las tonterías que pueda soltar.
En otro orden de cosas, tengo un problemilla, claro, y aquí estoy para ver si podéis ayudarme. Lo explico ya: Tengo un formulario en el que se crean, de manera dinámica, tantos TPanel como pedidos hayan sido generados. Cada TPanel contiene dos TLabel (que hacen referencia al proveedor y al nº de pedido) y un TSpeedButton (que abre el formulario donde se puede consultar el contenido del pedido).
Cada objeto creado en tiempo de ejecución tiene un nombre (los TPanel, 'pn'+nº de pedido; los TLabel, 'pv'+nº de pedido o 'pd'+nº de pedido y los TSpeedButton, 'sb'+nº de pedido). Además, al crear cada TSpeedButton se le asigna un evento OnClick, que, en este caso, es un procedimiento genérico para todos los TSpeedButton. Lo que yo quiero conseguir es que, cuando se pulse un TSpeedButton, los TLabel que están en ese mismo panel cambien el color de su fuente, de forma que queden "marcados" (algo parecido al comportamiento de los links en Internet).

Este es el código del procedimiento asociado al evento OnClick de los TSpeedButton:


procedure
TfmPedidosGenerados.marcado (Sender: TObject);
var

pedido: String;
longitud: Integer;
begin

pedido:=TSpeedButton(Sender).Name; //por ejemplo, sb00001
longitud:=Length(pedido)-2;//Le quito 2 por las letras 'sb' iniciales
pedido:=Copy(pedido,3,longitud)//Con eso consigo el pedido, o sea, 00001
//Y aquí viene el meollo de la cuestión
TLabel('pv' + pedido).Font.Color:=clPurple;
TLabel('pd' + pedido).Font.Color:=clPurple;
end;


El caso es que Delphi, cuando estoy escribiendo el código, me ofrece la posibilidad de escribir las propiedades del string moldeado (¿lo he dicho bien? Me refiero a que, una vez que pones el puntito, te salen las distintas opciones: Font, Left, etc.), pero luego, cuando lo ejecuto, el programa casca (con perdón).


Y eso es todo. Si alguien puede echarme una mano, le estaré muy agradecido. Hasta pronto.
Responder Con Cita