<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=380629&amp;view=findpost&amp;p=3345114</guid>
        <pubDate>Mon, 12 Aug 2013 07:11:48 +0000</pubDate>
        <title>Компонент с изменяющимся в инспекторе полем-компонентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=380629&amp;view=findpost&amp;p=3345114</link>
        <description><![CDATA[DimaBr: Суть реализации например такова: есть два свойства.<br>
1-е свойство - свойство перечислимого типа (целое, стринговое, дата, и т.д.)<br>
2-е свойство - свойство базового класса (или TPersistent)<br>
При переключении 1-го свойства, уничтожается второе свойство и создаётся новое с новым типом.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">type</div><div class="code_line">TTypeProp = (tInteger,tString,tData);</div><div class="code_line">TBasisType = class(TPersistent);</div><div class="code_line">&nbsp;</div><div class="code_line">TIntegerProp = class(TBasisType)</div><div class="code_line">&nbsp;&nbsp;published</div><div class="code_line">&nbsp;&nbsp; &nbsp;property ValueInt: integer read fValueInt write fValueInt;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">TStringProp = class(TBasisType)</div><div class="code_line">&nbsp;&nbsp;published</div><div class="code_line">&nbsp;&nbsp; &nbsp;property ValueStr: string read fValueStr write fValueStr;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">TMyComponent = class(TComponent)</div><div class="code_line">&nbsp;&nbsp;published</div><div class="code_line">&nbsp;&nbsp; &nbsp;property TypeProp: TTypeProp reaf fTypeProp write SetTypeProp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;property Prop: TBasisType read fProp write SetProp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TMyComponent.SetTypeProp(Value: TTypeProp);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if fTypeProp = Value then Exit;</div><div class="code_line">&nbsp;&nbsp;fProp.Free;</div><div class="code_line">&nbsp;&nbsp;fTypeProp := Value;</div><div class="code_line">&nbsp;&nbsp;case Value of</div><div class="code_line">&nbsp;&nbsp; &nbsp;tInteger: fProp := TIntegerProp.Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp;tString: fProp := TStringProp.Create;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TMyComponent.SetProp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;// пусто</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>DimaBr</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=380629&amp;view=findpost&amp;p=3345044</guid>
        <pubDate>Sun, 11 Aug 2013 20:02:44 +0000</pubDate>
        <title>Компонент с изменяющимся в инспекторе полем-компонентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=380629&amp;view=findpost&amp;p=3345044</link>
        <description><![CDATA[Laex: В компонентах DevExpressVCL есть замечательная особенность - колонка TcxGridColumn в TcxGridTableView имеет свойство с именем &quot;Properties&quot;, которое раскрывается как список возможных TcxCustomEditProperties, напимер, DateEdit, CalcEdit, Label и т.д. При этом в инспекторе подставляется соответвующий наследник от TcxCustomEditProperties со свойствами специфическими для выбранного из выпадающего списка.<br>Я понимаю, что для реализации такого же в своих компонентах нужно использовать RegisterPropertyEditor, но пока все попытки оказались безуспешными.<br>Копание в исходниках DevExpressVCL не помогло - выделить оттуда суть не получилось. Документация и поиск - понимания не добавило.<br><br>Может быть есть у кого пример или ссылка на суть реализации?]]></description>
        <author>Laex</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      </channel>
      </rss>
	