Вопросы по исходному коду
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Вопросы по исходному коду
Давайте тему что ли создадим. Код огромный, весь его постигнуть самостоятельно очень сложно.
итак. Вопрос первый. Загрузка тайлов из кэша. Есть желание вставить принудительную полупрозрачнось в zmp. Какая часть кода отвечает за загрузку тайла слоя из кэша, где мы можем дотянуться и до zmp info, и до самого только что загруженного (наверное и перепроецированного) изображения перед его отрисовкой? (Подскажите, для ускорения процесса поиска, в каком модуле хотя бы.)
итак. Вопрос первый. Загрузка тайлов из кэша. Есть желание вставить принудительную полупрозрачнось в zmp. Какая часть кода отвечает за загрузку тайла слоя из кэша, где мы можем дотянуться и до zmp info, и до самого только что загруженного (наверное и перепроецированного) изображения перед его отрисовкой? (Подскажите, для ускорения процесса поиска, в каком модуле хотя бы.)
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
Модуль u_MapType метод LoadBitmapTileFromStorage
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по исходному коду.
А как называется функция, которая непосредственно получает загруженный из интернета тайл?
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Вопросы по исходному коду.
u_DownloaderHttp.pas:
Код: Выделить всё
procedure TDownloaderHttp.DoGetRequest(const ARequest: IDownloadRequest);
begin
FHttpClient.Get(
ARequest.Url,
FHttpResponseBody,
FHttpResponseHeader
);
end;-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Вопросы по исходному коду.
Наблюдаю интересную работу итератора тайлов TTileIteratorByRect (u_TileIteratorByRect.pas): он почему-то выдаёт на 1 тайл меньше по X и Y, чем по-идее, должен бы.
На скриншоте пример. Черным - выделение, красным - то что выдаёт итератор, зелёным - ожидаемый результат. Вопрос - это баг или кто-то спецом так закрутил? Если баг, то надо фиксить (бо мешает), если фича, то буду другой класс писать с нужным мне ожидаемым результатом.
На скриншоте пример. Черным - выделение, красным - то что выдаёт итератор, зелёным - ожидаемый результат. Вопрос - это баг или кто-то спецом так закрутил? Если баг, то надо фиксить (бо мешает), если фича, то буду другой класс писать с нужным мне ожидаемым результатом.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
Ну судя по переданному в конструктор все правильно. То что передается в Right и Bottom уже в желаемый прямоугольник не входит. Логика та же что и везде в VCL при работе с пикселами. А вот вычисление этого прямоугольника уже нужно рихтовать. Видно где-то не так округление стоит. Там и ищи.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по исходному коду.
Может кто знает, как заставить TBXDockablePanel отображать свой заголовок, если она не встроена в док?
Получается, когда вытаскиваешь окно "результаты поиска" на середину экрана оно становится безликим.
Получается, когда вытаскиваешь окно "результаты поиска" на середину экрана оно становится безликим.
Re: Вопросы по исходному коду.
Ув. разработчики!
Почему в программе каждый класс описывается своим интерфесом? для чего это сделано? почему нельзя было сразу писать классы без интерфейса?
Почему в программе каждый класс описывается своим интерфесом? для чего это сделано? почему нельзя было сразу писать классы без интерфейса?
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
EVGENRUS писал(а):Почему в программе каждый класс описывается своим интерфесом? для чего это сделано? почему нельзя было сразу писать классы без интерфейса?
Причин несколько:
1. Управление временем жизни объектов при помощи автоматического подсчета ссылок.
2. Интерфейсы можно передавать между границами DLL (Например в плагины и из плагинов), а обычные делфовские объекты нельзя. Пока далеко не все классы имеют интерфейсы и это тормозит появление плагинов.
3. Имея интерфейс, мы можем делать реализации его совсем не связанными между собой.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по исходному коду.
vdemidov писал(а):EVGENRUS писал(а):Почему в программе каждый класс описывается своим интерфесом? для чего это сделано? почему нельзя было сразу писать классы без интерфейса?
Причин несколько:
1. Управление временем жизни объектов при помощи автоматического подсчета ссылок.
2. Интерфейсы можно передавать между границами DLL (Например в плагины и из плагинов), а обычные делфовские объекты нельзя. Пока далеко не все классы имеют интерфейсы и это тормозит появление плагинов.
3. Имея интерфейс, мы можем делать реализации его совсем не связанными между собой.
1. Да, с этим ясно.
2. Получается, что вы пришли к интерфесам уже на каком-то этапе разработки?
3. Т.е. сторонняя dll (плагин) может реализовать интерфейс по своему? как тогда она перекроет родную реализацию?