Cita:
Empezado por mjjj
(1) Que componentes puedo utilizar como parent?
(2) He pensado en utilizar un TPanel como parent, en donde colocar un TImagen y TLabel. El problema que estoi teniendo es que el Tpanel no tiene la propiedad transparent como un TImagen, por lo que se ve mal.
|
Hola.
(1) Cualquiera que derive de TWinControl (cosa que no hace TImage).
En cuanto a la cuestión, yo lo que haría en este caso es no utilizar como parent el TImage, sino el Parent de TImage y luego mover la etiqueta/s cuando muevas el componente.
Te lo muestro. He utilizado
el ejemplo que hay aquí, que mueve imágenes con el ratón. Y lo he modificado para crear una etiqueta y que se mueva cuando mueves la imagen.
Crear la etiqueta:
Código Delphi
[-]
function TForm1._CreateAsociatedLabel(AImage: TImage):TLabel;
var
lbl:TLabel;
begin
lbl := TLabel.Create(Self);
lbl.Parent := AImage.Parent;
lbl.Left := AImage.Left + 5;
lbl.Top := AImage.Top + 5;
lbl.Caption := 'Imagen';
lbl.Color := clYellow;
lbl.Name := 'Label_' + IntToStr(Random(100000));
Result := lbl;
end;
Mover la etiqueta cuando mueves la imagen...
Código Delphi
[-]
lbl := TLabel(FindComponent(TImage(Sender).Hint));
lbl.Left := TImage(Sender).Left + 5;
lbl.Top := TImage(Sender).Top + 5;
En este caso utilizao el Hint de la imagen para almacenar el nombre de la etiqueta asociada y luego buscarla. Este método está bien para la prueba, pero en tu caso utilizaría algo más robusto para almacenar las etiquetas asociadas a un TImage; Además comentas que debes poder asociar varias etiquetas, con lo que esta solución se queda "corta".