Вверх ↑
Этот топик читают: Гость
Ответов: 1946
Рейтинг: 174
#1: 2025-05-14 14:24:09 ЛС | профиль | цитата
Просто поставьте этот компонент (вкладка "Помощники") и скомпилируйте. Не забудьте очистить кэш иконок (или просто переименовать exe-шник после компиляции). Иконка будет такой, как первая иконка кнопки в окне отладки.

Причину я нашёл, дело в том, что иконкой программы становится первая иконка ресурсов. А если открыть программу, например, в проге Restorator (или другом просмотрщике ресурсов), то там первой иконкой будет DB1. Эти DB-шки использует окно компонента Debug.

На картинке видно, как я меняю первую иконку в ресурсах программы, и иконка программы меняется на неё.

Знач, что будем делать

Мне проще было поменять индексы иконок Debug. Сперва идём в \Elements\delphi\code, открываем db.res Ресторатором и меняем названия иконок на ZDB1, ZDB2, ZDB3. Сохраняем файл.

Затем открываем исходник компонента Debug (выделяем компонент и нажимаем Ctrl+F), там на 97-й строчке меняем код на:
ico.handle := LoadIcon(hInstance, PChar('ZDB' + int2str(w+1)));
,т.е. добавляем букву Z к названию ресурса. Это чтобы эти иконки ушли вниз по алфавитному порядку (и никакая другая интерпретация этой буквы! ). Сохраняем исходник.

Компилируем, очищаем кэш иконок.

Редактировалось 1 раз(а), последний 2025-05-14 14:26:29
карма: 9
0
Ответов: 1946
Рейтинг: 174
#2: 2025-05-15 14:58:16 ЛС | профиль | цитата
И ещё вдогонку: окно отладки стандартно невозможно скрыть, точнее, после закрытия никак не открыть. А бывает потребность оставить в схеме отладку, чтобы иметь к ней доступ. Вот простое решение, как управлять видимостью окна отладки (при этом данные туда всё равно будут поступать, даже окно скрыто):
Add(MainForm,2953706,231,63)
{
Position=1
Point(Handle)
link(onCreate,10931298:doWork1,[(285,83)])
}
Add(Button,7005794,231,112)
{
Left=-5
Top=15
link(onClick,10931298:doWork3,[(285,118)])
}
Add(InlineCode,335488,308,84)
{
WorkPoints=#23:doVisibilityDebugWindow|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,hiDebug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|64: procedure doVisibilityDebugWindow(var dt:TData; index:word);|0:|5: end;|0:|14:implementation|0:|46:procedure THiAsmClass.doVisibilityDebugWindow;|11:var i:word;|5:begin|35: for i:=0 to Applet.ChildCount-1 do|94: if (Applet.Children[i].SubClassName = 'obj_Form') and (Applet.Children[i].Caption = 'Debug')|69: then Applet.Children[i].Visible := not Applet.Children[i].Visible;|17: //_hi_OnEvent();|4:end;|0:|4:end.|
}
Add(Debug,15110348,399,203)
{
}
Add(HubEx,10931298,281,84)
{
link(onEvent,335488:doVisibilityDebugWindow,[])
}
Add(Timer,7003783,343,203)
{
Interval=500
link(onTimer,15110348:doEvent,[])
}

Редактировалось 1 раз(а), последний 2025-05-15 14:59:24
карма: 9
0
Разработчик
Ответов: 26287
Рейтинг: 2145
#3: 2025-05-15 15:32:41 ЛС | профиль | цитата
3042 писал(а):
Иконка будет такой, как первая иконка кнопки в окне отладки

Это так изначально было задумано. Это фича, а не баг.
карма: 22

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)