Einzelnen Beitrag anzeigen

THE MATRIX

Registriert seit: 26. Jul 2003
62 Beiträge
 
#1

Eigene Componente und Speichern der Eigenschaft ????

  Alt 19. Feb 2005, 14:39
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
§¤*~`~*¤§¤*~`~*¤§[* ((( THE MATRIX - Reloaded ))) ]§¤*~`~*¤§¤*~`~*¤§
  Mit Zitat antworten Zitat