Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Такая есть проблема: Я создаю свой новый компанент, и необходимо создать редактор... я прочитал не мало литературы и создал все же его. все как бы работает, вызывается написанный мной диалог, но вот как в нем назначить значение свойству (полю от свойства) ибо в данный момент у меня есть просто два класса компонент и редактор, и как организовать между ними взаимодействиеъ не совсем понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:52 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
RegisterPropertyEditor ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:56 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Да, именно, все сделал, все перекрыл к примеру в методе EDIT я хочу назначить какое нить значение для этой переменной как это сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:59 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Вообще-то, для этого всегда использовались функции RTTI. Привожу пример описания TPropertyEditor TPropertyEditor = class(TBasePropertyEditor, IProperty) private FDesigner: IDesigner; FPropList: PInstPropList; FPropCount: Integer; function GetPrivateDirectory: string; protected procedure SetPropEntry(Index: Integer; AInstance: TPersistent; APropInfo: PPropInfo); override; protected function GetFloatValue: Extended; function GetFloatValueAt(Index: Integer): Extended; function GetInt64Value: Int64; function GetInt64ValueAt(Index: Integer): Int64; function GetMethodValue: TMethod; function GetMethodValueAt(Index: Integer): TMethod; function GetOrdValue: Longint; function GetOrdValueAt(Index: Integer): Longint; function GetStrValue: string; function GetStrValueAt(Index: Integer): string; function GetVarValue: Variant; function GetVarValueAt(Index: Integer): Variant; function GetIntfValue: IInterface; function GetIntfValueAt(Index: Integer): IInterface; procedure Modified; procedure SetFloatValue(Value: Extended); procedure SetMethodValue(const Value: TMethod); procedure SetInt64Value(Value: Int64); procedure SetOrdValue(Value: Longint); procedure SetStrValue(const Value: string); procedure SetVarValue(const Value: Variant); procedure SetIntfValue(const Value: IInterface); protected { IProperty } function GetEditValue(out Value: string): Boolean; function HasInstance(Instance: TPersistent): Boolean; public constructor Create(const ADesigner: IDesigner; APropCount: Integer); override; destructor Destroy; override; procedure Activate; virtual; function AllEqual: Boolean; virtual; function AutoFill: Boolean; virtual; procedure Edit; virtual; function GetAttributes: TPropertyAttributes; virtual; function GetComponent(Index: Integer): TPersistent; function GetEditLimit: Integer; virtual; function GetName: string; virtual; procedure GetProperties(Proc: TGetPropProc); virtual; function GetPropInfo: PPropInfo; virtual; function GetPropType: PTypeInfo; function GetValue: string; virtual; function GetVisualValue: string; procedure GetValues(Proc: TGetStrProc); virtual; procedure Initialize; override; procedure Revert; procedure SetValue(const Value: string); virtual; function ValueAvailable: Boolean; property Designer: IDesigner read FDesigner; property PrivateDirectory: string read GetPrivateDirectory; property PropCount: Integer read FPropCount; property Value: string read GetValue write SetValue; end; Твои функции: procedure SetFloatValue(Value: Extended); procedure SetMethodValue(const Value: TMethod); procedure SetInt64Value(Value: Int64); procedure SetOrdValue(Value: Longint); procedure SetStrValue(const Value: string); procedure SetVarValue(const Value: Variant); procedure SetIntfValue(const Value: IInterface); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:21 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Это то все понятно, но вот как мне в редакторе свойств вообще иметь доступ к полям компонента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:40 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Это то все понятно, но вот как мне в редакторе свойств вообще иметь доступ к полям компонента Ну так а методы Set|Get с чем по твоему работают? Как раз с редактируемым свойством. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:59 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
для того чтобы получить доспуп к компоненту из которого вызван редактор свойств можно воспользоваться функцией GetComponent Returns the specified object from the set of all objects currently being edited by the property editor. Delphi syntax: function GetComponent(Index: Integer): TPersistent; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:07 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
совершенно согласен с ЛАНА сам только что попробывал, все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:09 |
|
||
|
Как все же изменить значение свойства в редакторе
|
|||
|---|---|---|---|
|
#18+
Но ты же регистрируешь редактор свойств, а не компонентов. Это редактор (как заметил pkarklin) и устанавливает значение редактируемого свойства(тебе надо знать только его тип, который в принципе можно вычислить). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:25 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32311667&tid=2116136]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 315ms |

| 0 / 0 |
