heee,
kann mir einer sagen, warum der proerty editor einfach nicht funktionieren will? ich kann das
package mit dem editor, als auch das
package mit der komponente kompilieren, aber egal was ich mit dem editor und auch der funktion GetAttributes anstelle, ich kriege nur die standard funktionen im
OI, so als ob der editor einfach nicht rgistriert wird
die komponenete:
Delphi-Quellcode:
type
TDataComClient = class(TComponent)
private
{ Private-Deklarationen }
FDataChannels: TDataCHannelList;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
published
{ Published-Deklarationen }
constructor Create(AOwner: TComponent); override;
property DataChannels: TDataChannelList read FDataChannels write FDataChannels;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Klaus', [TDataComClient]);
end;
{ TDataComClient }
constructor TDataComClient.Create(AOwner: TComponent);
begin
inherited;
FDataChannels := TDataChannelList.Create(self);
end;
der editor:
Delphi-Quellcode:
type
TDataChannelsProperty = class(TPropertyEditor)
private
FDataChannelDialog: TDataChannelDialog;
procedure ChannelListToList(DataChannels: TDataChannelList; var AList: TList); overload;
procedure ListToChannelList(DataChannels: TList; var AList: TDataChannelList); overload;
public
function GetAttributes: TPropertyAttributes; override;
procedure Edit; override;
end;
procedure TDataChannelsProperty.Edit;
var DataChannelList: TDataChannelList;
Dlg : TDataChannelDialog;
LList : TList;
begin
inherited;
try
DataChannelList := TDataChannelList(GetOrdValue);
ChannelListToList(DataChannelList,LList);
Dlg := TDataChannelDialog.Create(LList, DataChannelList.Owner.Owner,nil);
if Dlg.Execute then LList.Assign(Dlg.DataChannels);
ListToChannelList(LList,DataChannelList);
SetOrdValue(LongInt(DataChannelList));
finally
Dlg.Free;
LList.Free;
end;
end;
function TDataChannelsProperty.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paDialog];
end;
//edit
achso, die klasse um die es geht, TDataChannelList ist von TPersistent abgeleitet und verwaltet eine Stringlist