<?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=145287&amp;view=findpost&amp;p=1137711</guid>
        <pubDate>Wed, 14 Jun 2006 17:52:28 +0000</pubDate>
        <title>Изменить цвет текста в TEdit</title>
        <link>https://forum.sources.ru/index.php?showtopic=145287&amp;view=findpost&amp;p=1137711</link>
        <description><![CDATA[мыш: Туплю сегодня по-черному... Накалякал себе компонентик следующего содержания<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">unit DefEdit;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;SysUtils, Classes, Controls, StdCtrls, Graphics, Messages, JvStrUtils;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TDefEdit = class(TEdit)</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;FDefaultText: string;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FColorDefaultText: TColor;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FColorUserText: TColor;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure SetDefText(aText: string);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure SetDefColor(aColor: TColor);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Loaded(); override;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure SetTextColor();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;protected</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Protected declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure CMEnter(var Message: TCMEnter); message CM_ENTER;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure CMExit(var Message: TCMExit); message CM_EXIT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure CMChanged(var Message: TMessage); message CM_CHANGED;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;constructor Create(aOwner: TComponent); override;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp;published</div><div class="code_line">&nbsp;&nbsp; &nbsp;property DefaultText: string read FDefaultText write SetDefText;</div><div class="code_line">&nbsp;&nbsp; &nbsp;property ColorDefaultText: TColor read FColorDefaultText write SetDefColor;</div><div class="code_line">&nbsp;&nbsp; &nbsp;property ColorUserText: TColor read FColorUserText write FColorUserText;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Published declarations }</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure Register;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">procedure Register;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;RegisterComponents(&#39;My&#39;, [TDefEdit]);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">{ TDefEdit }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.CMChanged(var Message: TMessage);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;SetTextColor();</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.CMEnter(var Message: TCMEnter);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Text = DefaultText then Text := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.CMExit(var Message: TCMExit);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if IsEmptyStr(Text,[&#39; &#39;]) then Text := DefaultText;</div><div class="code_line">&nbsp;&nbsp;SetTextColor();</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">constructor TDefEdit.Create(aOwner: TComponent);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;ColorDefaultText := clSilver;</div><div class="code_line">&nbsp;&nbsp;ColorUserText := clBlack;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.Loaded;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;if IsEmptyStr(Text,[&#39; &#39;]) then DefaultText := &#39;Enter your text here&#39;;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.SetDefColor(aColor: TColor);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;FColorDefaultText := aColor;</div><div class="code_line">&nbsp;&nbsp;Font.Color := aColor;</div><div class="code_line">&nbsp;&nbsp;SetTextColor();</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.SetDefText(aText: string);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;FDefaultText := aText;</div><div class="code_line">&nbsp;&nbsp;if IsEmptyStr(Text,[&#39; &#39;]) then Text := aText;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TDefEdit.SetTextColor;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Text = DefaultText</div><div class="code_line">&nbsp;&nbsp; &nbsp;then Font.Color := ColorDefaultText</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else Font.Color := ColorUserText;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Основная задача его - выводить текст &quot;по умолчанию&quot; при пустом поле. Проблема же в том, что несмотря на строчку <br>
<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">&nbsp;&nbsp;if Text = DefaultText</div><div class="code_line">&nbsp;&nbsp; &nbsp;then Font.Color := ColorDefaultText</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else Font.Color := ColorUserText;</div></ol></div></div></div></div><br>
<br>
и несмотря на установленный цвет <br>
ColorDefaultText - clsilver<br>
ColorUserText = clRed<br>
и Font.Color = clgreen<br>
текст контрола <strong class='tag-b'>черный</strong> во время его редактирования (когда печатаешь. Когда выходишь из контрола - цвет устанавливается как положено в соотвествии с ColorUserText)... И тут моя фантазия кончается. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2006-06-14T21:58:56+04:00">14.06.06, 17:58</time></span></span><br>
Короче я точно идиот  :lol: Я сам менял этот цвет в событии OnChange.  :wall: Поставьте мне ктонть минус в рейтинг за идиотизм  :ph34r:]]></description>
        <author>мыш</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      </channel>
      </rss>
	