Возможно это дубликат уже существующей темы...ну ладно.
Как получить иконку программы (для использования в окошках "о программе", например), и при этом не создать новый ресурс внутри её?
Этот топик читают: Гость
Ответов: 99
Рейтинг: 4
|
|||
карма: 0 |
|
Ответов: 793
Рейтинг: 168
|
|||
TheRenat писал(а): Как получить иконку программы (для использования в окошках "о программе", например), и при этом не создать новый ресурс внутри её?
|
|||
карма: 16 |
|
Ответов: 99
Рейтинг: 4
|
|||
Gunta, а без WinInfo никак?
Спрашиваю потому что вроде есть способ это сделать тупо в исходнике какой-нибудь формы Дельфи (или где-то в коде). |
|||
карма: 0 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Писец моему посту из-за глюка форума. Ну, да ладно, напишу снова.
TheRenat писал(а): Спрашиваю потому что вроде есть способ это сделать тупо в исходнике какой-нибудь формы Дельфи (или где-то в коде).Да, есть такой способ, но в вопросе ничего не было про добавление такого функционала. Gunta, у тебя в схеме ошибка, ты подаешь затолкать иконку на точку FileName. И WinInfo почему-то не отображает иконки, по крайней мере, в Win10x64. Точнее, иконки выдаются, но они ничем в HiAsm не понимаются. Схема
Редактировалось 5 раз(а), последний 2022-01-09 03:57:24 |
|||
карма: 22 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Я добавил на форму метод получения его текущей иконки. Обновление на SVN.
Вот пример возможности читать иконки разных форм внутри приложения на HiAsm-е после обновления: Пример
--- Добавлено в 2022-01-09 04:32:01 Я разобрался, почему WinInfo не отображает иконки приложений HiAsm. Для нормального отображения иконок в WinInfo необходимо классу формы присвоить иконку методом API -- SetClassLong(Ptr) (любое присвоение иконки этим методом хэндлу окна любой формы, присвоит иконку всему классу формы), но у нас это нигде не делается, и если делать, то только для главной формы. Вот поэтому WinInfo не подходит для извлечения иконки из приложений HiAsm, и не только для них, но и для многих других. Редактировалось 9 раз(а), последний 2022-01-09 04:54:08 |
|||
карма: 22 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Я добавил присвоение иконки классу окна главной формы и немного оптимизировал код doGetIcon. Теперь WinInfo будет показывать иконку MainForm на любой форме приложения, тк у них один класс.
Редактировалось 2 раз(а), последний 2022-01-09 13:44:47 |
|||
карма: 22 |
|
Ответов: 793
Рейтинг: 168
|
|||
nesco писал(а): у тебя в схеме ошибкаУпсс..Поторопился. В последнее время что-то стало зрение подводить. Старею |
|||
карма: 16 |
|
Ответов: 249
Рейтинг: 4
|
|||
nesco писал(а): Я добавил на форму метод получения его текущей иконки. Обновление на SVN.
Вот пример возможности читать иконки разных форм внутри приложения на HiAsm-е после обновления: Пример --- Добавлено в 2022-01-09 04:32:01 Я разобрался, почему WinInfo не отображает иконки приложений HiAsm. Для нормального отображения иконок в WinInfo необходимо классу формы присвоить иконку методом API -- SetClassLong(Ptr) (любое присвоение иконки этим методом хэндлу окна любой формы, присвоит иконку всему классу формы), но у нас это нигде не делается, и если делать, то только для главной формы. Вот поэтому WinInfo не подходит для извлечения иконки из приложений HiAsm, и не только для них, но и для многих других. Редактировалось 9 раз(а), последний 2022-01-09 04:54:08 Вот теперь понятно почему не работало, были мысли что что то делаю не так и забил на WinInfo. благодарствую за разьеснение. |
|||
карма: 1 |
|
Ответов: 99
Рейтинг: 4
|
|||
nesco, что-то ты не так сделал. При попытке использовать метод для получения иконки прилетает Runtime error.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
TheRenat писал(а): При попытке использовать метод для получения иконки прилетает Runtime errorСхему, которая крэшится, давай. Мне надо повторить баг. --- Добавлено в 2022-01-19 23:55:17 У меня есть некоторые подозрения, и я немного переделал метод. Замени свой файл hiMainForm.pas на файл из архива и проверь. Можешь спокойно перезаписать свой файл, если будет работать, то я обновлю на SVN. Редактировалось 5 раз(а), последний 2022-01-20 00:01:47 |
|||
карма: 22 |
| ||
файлы: 1 | hiMainForm_002.zip [5.1KB] [255] |
Ответов: 99
Рейтинг: 4
|
|||
Хорошо. Потом проверю.
Редактировалось 1 раз(а), последний 2022-01-20 01:40:30 |
|||
карма: 0 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
TheRenat писал(а): Хорошо. Потом проверю.Ты это, не затягивай, а то файл на обновлении висит. |
|||
карма: 22 |
|
Ответов: 99
Рейтинг: 4
|
|||
nesco, кажется я понял в чём проблема. Сам метод-то работает, однако, если его вызывать из ChildFormEx со включенным OnlyOnce или Dynamic, прилетает Runtime error.
Схема:
Редактировалось 2 раз(а), последний 2022-01-20 12:02:36 |
|||
карма: 0 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Тут форма вообще мимо проходила. Вот такая схема тоже будет выдавать ошибку
Схема
Так вообще лучше не пытаться делать. Да и запускать методы снаружи не отложенным методом OnCreate нельзя. Если тебе нужна самоуничтожаемая форма при закрытии, то вот так это будет нормально работать. Debug в схему вставлен специально, чтобы показать, что форма уничтожилась Схема
|
|||
карма: 22 |
|
14