Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2009-03-25 09:49:12 ЛС | профиль | цитата
Не у кого не бывает, что вот жмешь файл->новый, а иконка сервис в вкладке Windows то как у кнопки, то как у формы... Я уже и не знаю скока разных иконок она принимала!(Щас иконка у меня как у кнопки)
карма: 10
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#2: 2009-03-25 10:05:18 ЛС | профиль | цитата
У меня такое происходит если по HiUpdate заменяется мой файл hiasm.db, в котором были прописаны мои пользовательские компоненты, но реально файлы в папках HiAsm остались и схемы открываются нормально за исключением отображения иконки на компоненте.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Разработчик
Ответов: 4698
Рейтинг: 426
#3: 2009-03-25 10:12:39 ЛС | профиль | цитата
А у меня так после, допустим, создания нового проекта(а потом опять иконка меняется, правда не всегда), а не только после Update. Но я решил узнать ИСТИННУЮ иконку сервиса и залез в hiasm/int/NTServise.sha, оказывается это иконка ТАЙМЕРА!
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2009-03-25 11:01:39 ЛС | профиль | цитата
Assasin писал(а):
hiasm/int/NTServise.sha

это что за аддон такой?
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#5: 2009-03-25 11:04:11 ЛС | профиль | цитата
Ой простите не тот путь. Вот верный:HiAsmElementsDelphi
ewNTServise.sha
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2009-03-25 11:42:55 ЛС | профиль | цитата
Assasin, иконкой этого элемента является файл NTService.ico и лежит он по адресу HiAsmElementsDelphiicon. Приведенный же путь это шаблон нового проекта и к иконке никакого отношения не имеет
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#7: 2009-03-25 11:48:22 ЛС | профиль | цитата
Dilma писал(а):
Приведенный же путь это шаблон нового проекта и к иконке никакого отношения не имеет

Я знаю. Я просто решил посмотреть через эту схему какую иконку он должен загружать при создании проекта. Так вот я и написал
Assasin писал(а):
оказывается это иконка ТАЙМЕРА

карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-03-25 12:00:57 ЛС | профиль | цитата
Assasin писал(а):
Я просто решил посмотреть через эту схему какую иконку он должен загружать при создании проекта

механизм доступа к иконкам один на весь конструктор. В данном случае проблема из-за отсутствия этого элемента в палитре пакета Windows
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2009-03-25 13:31:00 ЛС | профиль | цитата
Хм... Странно... Иконка есть(шестерёнки, так?), но в ней два вида одна маленькая, другая побольше...
------------ Дoбавленo:

Все равно(убрал вторую иконку)

карма: 10
0
Ответов: 215
Рейтинг: 45
#10: 2009-03-25 15:02:20 ЛС | профиль | цитата
Отображение иконок чувствительно к регистру написания элемента.
например: иконка называется Element.ico, а написание самого элемента в какое-то время было решено сменить на "EleMent" - в результате у элемента будет произвольная иконка.
Как минимум это касается схем, но возможно проявляется и в других местах т.к. "механизм доступа к иконкам один на весь конструктор"

code_12422.txt

В данном примере я принудительно сменил регистр буквы "В" в написании второго Label'а
У меня данная "фича" часто проявляется при написании собственных компонентов, т.к. в процессе написания я часто меняю им имя и не всегда отслеживаю синхронность написания во всех местах.
карма: 0

0
файлы: 1code_12422.txt [117B] [396]
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2009-03-25 16:10:22 ЛС | профиль | цитата
lev писал(а):
Отображение иконок чувствительно к регистру написания элемента.

все верно. А происходит это от того, что hiasm для ускорения доступа к иконкам элемента использует бинарный поиск по отсортированному массиву имен, в котором учитывается регистр букв. Если бы не эти ухищрения конструктор давно бы уже грузился по нескольку минут (сегодня это время не превышает 1-1.5 с). Однако как я уже написал выше проблему тут иная
карма: 27
0
Ответов: 215
Рейтинг: 45
#12: 2009-03-25 20:15:13 ЛС | профиль | цитата
А привести к одному регистру при составлении массива или при поиске сильно затормозит работу? Кол-во разных букв в массиве уменьшится (соответственно и дерево поиска), что может ускорить поиск или я чего-то не учитываю?
Имхо, для 26*2 латинских букв можно просто добавлять/удалять 0x20 вместо всеохватывающей функции преобразования регистра, знающей кучи языков.
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2009-03-25 20:29:46 ЛС | профиль | цитата
lev писал(а):
добавлять/удалять 0x20 вместо всеохватывающей функции преобразования регистра, знающей кучи языков

Не думаю, что преобразование будет работать быстрее API-функции CharLower(PChar(Str)) или CharUpper(PChar(Str))
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2009-03-25 20:48:07 ЛС | профиль | цитата
lev, честно - ни разу не сталкивался с такой проблемой, хотя элементов уже около тысячи сделал... Приведение к какому-то из регистров неприменно в какой-то монент приведет к тому, что надо будет хранить и исходное имя и преобразованное... В итоге оптимизация ни о чем и в никуда
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#15: 2009-03-26 13:16:30 ЛС | профиль | цитата
И как же тогда поправить эту "фичу"?
карма: 10
0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)