<?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=194592&amp;view=findpost&amp;p=1630839</guid>
        <pubDate>Tue, 10 Jul 2007 15:57:01 +0000</pubDate>
        <title>ShowMessage - нельзя ли цветным сделать?</title>
        <link>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630839</link>
        <description><![CDATA[bagira_: :rolleyes: Ребята&#33; Умнички&#33; Спасибо огромное за помощь&#33;  :rolleyes:]]></description>
        <author>bagira_</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630758</guid>
        <pubDate>Tue, 10 Jul 2007 14:18:03 +0000</pubDate>
        <title>ShowMessage - нельзя ли цветным сделать?</title>
        <link>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630758</link>
        <description><![CDATA[Rouse_: Цветным? <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Синий ShowMessage</span>, <span class="tag-color tag-color-named" data-value="red" style="color: red">красный ShowMessage</span>, <span class="tag-color tag-color-named" data-value="green" style="color: green">зеленый ShowMessage</span>? ;)<br>
<br>
Ну а вообще, почему бы и нет?<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">unit Unit2;</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;Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, StdCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm2 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Button1: TButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMUser(var Message: TMessage); message WM_USER;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form2: TForm2;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm2.Button1Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;PostMessage(Handle, WM_USER, 0, 0);</div><div class="code_line">&nbsp;&nbsp;MessageBox(Handle, &#39;This Is A colored Message Box&#39;, &#39;Colored MessageBox.&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;MB_OK or MB_ICONWARNING);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function NewOpenWndProc(Wnd: HWND; uMsg: DWORD;</div><div class="code_line">&nbsp;&nbsp;WParam, LParam:integer): Integer; stdcall;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;case uMsg of</div><div class="code_line">&nbsp;&nbsp; &nbsp;WM_CTLCOLORSTATIC:</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := CallWindowProc(Pointer(GetWindowLong(Wnd, GWL_USERDATA)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Wnd, uMsg, WParam, LParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetTextColor(WParam, $FF0000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WM_COMMAND:</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;EndDialog(Wnd, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WM_NCDESTROY:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := 1;</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := CallWindowProc(Pointer(GetWindowLong(Wnd, GWL_USERDATA)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Wnd, uMsg, WParam, LParam);</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 TForm2.WMUser(var Message: TMessage);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;hMBHandle: HWND;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;hMBHandle := GetActiveWindow;</div><div class="code_line">&nbsp;&nbsp;if hMBHandle &#60;&#62; 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetWindowLong(hMBHandle, GWL_USERDATA,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetWindowLong(hMBHandle, DWL_DLGPROC, DWORD(@NewOpenWndProc)));</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>]]></description>
        <author>Rouse_</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630751</guid>
        <pubDate>Tue, 10 Jul 2007 14:10:52 +0000</pubDate>
        <title>ShowMessage - нельзя ли цветным сделать?</title>
        <link>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630751</link>
        <description><![CDATA[RuSA: Вот такие варианты можно использовать:<br>
1)  Стандартный ShowMessage (описан в Dialogs.pas) использует CreateMessageDialog(...): TForm для <br>
получения диалога. Так что можно самостоятельно его получить и выполнить &quot;раскраску&quot; его элементов <br>
самостоятельно. На нем располагаются:<br>
  а) для отображения текста: компонент TLabel с именем &quot;Message&quot;;<br>
  б) для иконки: компонент TImage с именем &quot;Image&quot;;<br>
  в) кнопки TButton в зависимости от опций с именами &quot;Yes&quot;, &quot;No&quot;, &quot;OK&quot;, &quot;Cancel&quot;, &quot;Abort&quot;, &quot;Retry&quot;, <br>
&quot;Ignore&quot;, &quot;All&quot;, &quot;NoToAll&quot;, &quot;YesToAll&quot;, &quot;Help&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">...</div><div class="code_line">&nbsp;</div><div class="code_line">uses ..., Dialogs;</div><div class="code_line">&nbsp;</div><div class="code_line">...</div><div class="code_line">function MyShowMessage( const Msg: string; DlgType: TMsgDlgType = mtInformation; Buttons: TMsgDlgButtons = [mbOK]; HelpCtx: Longint = 0; X: integer = -1; Y: Integer= -1; const HelpFileName: string = &#39;&#39; ) : Integer;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; AComp: TComponent;</div><div class="code_line">&nbsp;&nbsp; ADlgForm : TForm;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; ADlgForm := CreateMessageDialog(Msg, DlgType, Buttons);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; with ADlgForm do</div><div class="code_line">&nbsp;&nbsp; try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// Раскрашиваем что надо...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; // получить нужный компонент на форме</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; AComp := ADlgForm.FindComponent( &#39;Message&#39; ); // здесь пытаемся получить TLabel для сообщения (имя должно быть &quot;Message&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if AComp is TLabel then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TLabel(AComp).Color := clRed; // меняем цвет на красный</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;... аналогично можно изменять и остальное ...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;... можно и добавить новое ...</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// Далее стандартно (как в Dialogs.pas:: MessageDlgPosHelp)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;HelpContext := HelpCtx;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;HelpFile := HelpFileName;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if X &#62;= 0 then Left := X; if Y &#62;= 0 then Top := Y;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if (Y &#60; 0) and (X &#60; 0) then Position := poScreenCenter;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := ShowModal;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Free;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
<br>
2) создать свою форму для сообщений и использовать дизайнер Delphi, имея полную свободу действий.]]></description>
        <author>RuSA</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630734</guid>
        <pubDate>Tue, 10 Jul 2007 13:50:53 +0000</pubDate>
        <title>ShowMessage - нельзя ли цветным сделать?</title>
        <link>https://forum.sources.ru/index.php?showtopic=194592&amp;view=findpost&amp;p=1630734</link>
        <description><![CDATA[bagira_: Чтобы привелечь внимание юзера к сообщению - взбрело в голову - сделать ShowMessage цветным.<br>Подскажите, пожалуйста, это возможно или нет? Или что-то такое же подобное есть?]]></description>
        <author>bagira_</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	