HI @ll
ich habe mir eine Componente erstellt mit folgender property
Delphi-Quellcode:
TSRC = class(TComponent) <---- die COMPONENTE
...
Public
fString: TStrings;
...
published
property source2: TStrings read fString write fString;
...
im constructor create hab ich dann
inherited create(AOwner);
fstring := TStringList.Create;
dem property source habe ich dann mein eigenen Editor zugewiesen , das sieht wie folgt aus
So registriert
RegisterPropertyEditor(TypeInfo(TStrings), nil, 'EDIT', TSourceEdit);
und das ist mein TSourceEdit
Delphi-Quellcode:
TSourceEdit = class(TPropertyEditor)
public
procedure Edit; override;
function GetValue: string; override;
function GetAttributes: TPropertyAttributes; override;
end;
....
procedure TSourceEdit.Edit;
var
srcE: TfrmSourceEdit;
tmp: TComponent;
begin
tmp := TComponent ( GetComponent(0) );
srcE := TfrmSourceEdit.Create(Application);
srcE.SrcEDit.Lines.Text := TSRC(tmp).fSource.Text;
srcE.ShowModal;
TSrc(tmp).fSource.Text := srcE.SrcEDit.Lines.Text;
end;
function TSourceEdit.GetValue: string;
begin
FmtStr(Result, '(%s)', ['EDIT']);
end;
function TSourceEdit.GetAttributes: TPropertyAttributes;
begin
Result := [paMultiSelect,paDialog];
end;
So klick ich nun in meiner Delphi
IDE auf das
source | (EDIT) ... <--- halt im Objectinpector
erscheint mein EIGENER EDITOR und ich kann Editieren, schließ ich MEIN Editor und öffe erneut ist
der Text auch noch da!
Speicher ich Jedoch die Form und lad sie neu , ist es NICHT DA , in der
DFM wird das auch NICHT gespeichert. :'(
Wo und WIE stell ich das an, dass er mir den source.strings in die
dfm mitspeichert ? Registrier ich nicht meine Komponente sondern nehme die von Delphi gehts ....
hoffe ihr könnt mir helfen
BiG THX schonmal für JEDEN Tipp