Ho alcuni controlli virtuali che fanno parte di un sistema di progettazione che ho creato. Imitano i componenti di delphi, tranne che sono completamente disegnati dal proprietario. Il problema che ho di fronte è che, poiché il mio sistema di proprietà è in qualche modo diverso da Delphi ordinario - non posso usare un ispettore RTTI per modificare le proprietà.Delphi non-rtti inspector
Qualcuno sa di un ispettore che guarda e si comporta come il normale ispettore delphi, ma che mi consente di definire le proprietà in base al codice?
E, se possibile, uno che mi permette di definire le enumerazioni:
with edInspector.Items.add('align') do
Begin
Options.add('alLeft',ftord(TMyAlign.azLeft));
Options.add('alTop',ord(TMyAlign.azTop));
Options.add('alRight',ord(TMyAlign.azRight));
Options.add('alBottom',ord(TMyAlign.azBottom));
Options.add('alClient',ord(TMyAlign.azClient));
end;
e complesse tipologie:
with edInspector.Items.add('font') do
Begin
subitems.add('name',dtString).value:=def_FontName;
subitems.add('size',dtInteger).value:=def_fontSize;
subitems.add('color',dtColor).Value:=def_fontColor;
end;
Cosa intendi con "il mio sistema di proprietà è in qualche modo diverso da Delphi ordinario"? Sei a conoscenza della differenza tra proprietà pubbliche e pubblicate? –
Lui lui, sì. Im proprietà di polling da un sistema esterno, il che significa che sono memorizzate in coppie nome/valore in oggetti personalizzati. Quindi non sono visibili dal normale RTTI, devo ottenerli/impostarli manualmente –
Ok, se tutto ciò che è diverso è il tuo meccanismo di persistenza, usa le proprietà pubblicate dichiarate con "Memorizzato Falso" e la compilazione nell'Ispettore oggetti per la modifica del tempo di progettazione. Se hai bisogno di aiuto con il tuo meccanismo di persistenza (ad esempio convertendo il testo in valori che puoi assegnare a proprietà tipizzate normalmente), dai un'occhiata a come funzionano TReader e TFiler. –