Colegas, muchas gracias por vuestra colaboración, por fin lo he conseguid.
Pongo el código y mis comentarios para revertir en aquellos que, como yo hasta ahora, puedan necesitarlo.
Icono del componente:
Lo he solucionado utilizando un archivo *.DCR en lugar de *.RES.
Ya sabéis, si vuestro archivo de código en el que se declara el componente se llama Componentes.PAS, vuestro paquete de recursos debe llamarse Componentes.DCR (igual que el *.PAS, pero cambiando la extensión) y si dentro del archivo Componentes.PAS hay la declaración de dos componentes Componente1 y Componente2, deberéis crear dos bitmaps de 24x24 pixels con los nombre COMPONENTE1 y COMPONENTE2 (TODO EN MAYÚSCULAS), Lo compilais todo y a correr.
Propiedades desplegables (Conjuntos / Record)
Aqií os pongo el código completo de mi unidad:
Código Delphi
[-]
unit _ieApplication;
interface
uses
SysUtils, Classes, JfMain;
type
TieData=Class(TPersistent)
Private
vA:Integer;
vB:String;
Function rA:Integer;
Procedure wA(Value:Integer);
Function rB:String;
Procedure wB(Value:String);
Published
Property A:Integer Read rA Write wA;
Property B:String Read rB Write wB;
End;
TieApplication = class(TJfCApplication)
private
vieData:TieData;
Procedure wieData(V:TieData);
protected
public
Constructor Create(AOwner:TComponent); Override;
Destructor Destroy; Override;
published
Property ieData:TieData Read vieData Write wieData;
end;
procedure Register;
implementation
Function TieData.rA:Integer;
Begin
Result:=vA;
End;
Procedure TieData.wA(Value:Integer);
Begin
vA:=Value;
End;
Function TieData.rB:String;
Begin
Result:=vB;
End;
Procedure TieData.wB(Value:String);
Begin
vB:=Value;
End;
Constructor TieApplication.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
vieData:=TieData.Create;
vieData.A:=123;
vieData.B:='Vacia';
End;
Destructor TieApplication.Destroy;
Begin
vieData.Free;
Inherited;
End;
Procedure TieApplication.wieData(V:TieData);
Begin
vieData.A:=V.A;
vieData.B:=V.B;
End;
procedure Register;
begin
RegisterComponents('ieCRON', [TieApplication]);
end;
end.
Cuando quieres crear un conjunto de propiedades (las que en el inspector de objetos se pueden replegar y desplegar con el icono
+desplegar y
-replegar)
Debes crear una clase con sus propiedades, como en mi código en el cual creo una propiedad
ieData que contiene dos propiedades:
A:Integer y
B:String;
Espero que esta información pueda ser de utilidad para los que andéis perdidos como estaba yo.