SASGIS

Веб-картография и навигация

Вопросы по исходному коду

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: Вопросы по исходному коду

Сообщение zed » 25 мар 2015, 20:33

Alex54 писал(а): там же функция GetChangeNotifier()

Нет, там свойство:
Код: Выделить всё
IChangeable = interface
    ['{7F6DCE71-7EBD-40A0-A3BF-C603A3AEE8BA}']
    ...   
    property ChangeNotifier: INotifier ...
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Вопросы по исходному коду

Сообщение Alex54 » 25 мар 2015, 20:42

zed писал(а):У вас там ахинея какая-то написана:
Код: Выделить всё
TCustomGPSTrack = class(TChangeableWithSimpleLockBase, IChangeable)

но TChangeableWithSimpleLockBase итак уже наследует интерфейс IChangeable через TChangeableBase.

Спасибо, убрал тавтологию, Вы правы.
Нет, там свойство

Недоступно, только функцию напрямую видит, ее и вызвал, все работает прекрасно.
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение Alex54 » 25 мар 2015, 20:48

Подскажите еще по настройкам - это настройка параметров трека
Код: Выделить всё
ITrackColorerConfig = interface(IConfigDataElement)
    ['{46E030C7-F9E1-45F5-914E-20B240238261}']
    function GetStatic: ITrackColorerStatic;

    function GetSpeedRangeCount: Integer;

    function GetSpeedRangeItem(AIndex: Integer): ISpeedRangeItem;
    function AddSpeedRangeItem(
      const ASpeed: Double;
      AMinColor, AMaxColor: TColor32
    ): Integer;
    procedure ClearItems;
  end;

Что означают минимальный и максимальный цвета для заданной скорости в AddSpeedRangeItem() ? Когда бегло смотрел, показалось, что для диапазона скоростей 1 цвет, а тут как понимать ?
P. S. Кстати, ГУЙ не сделан для этой настройки ? Что-то не могу найти в интерфейсе программы
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение zed » 25 мар 2015, 20:53

Alex54 писал(а):Недоступно, только функцию напрямую видит

Может вы переменную объявили не как интерфейс, а как класс?
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Вопросы по исходному коду

Сообщение Alex54 » 25 мар 2015, 21:10

zed писал(а):
Alex54 писал(а):Недоступно, только функцию напрямую видит

Может вы переменную объявили не как интерфейс, а как класс?

Переделал через интерфейс, все верно говорите )

Подскажите еще по настройкам -
Alex54 писал(а):Это настройка параметров трека
Код: Выделить всё
ITrackColorerConfig = interface(IConfigDataElement)
    ['{46E030C7-F9E1-45F5-914E-20B240238261}']
    function GetStatic: ITrackColorerStatic;

    function GetSpeedRangeCount: Integer;

    function GetSpeedRangeItem(AIndex: Integer): ISpeedRangeItem;
    function AddSpeedRangeItem(
      const ASpeed: Double;
      AMinColor, AMaxColor: TColor32
    ): Integer;
    procedure ClearItems;
  end;

Что означают минимальный и максимальный цвета для заданной скорости в AddSpeedRangeItem() ? Когда бегло смотрел, показалось, что для диапазона скоростей 1 цвет, а тут как понимать ?
P. S. Кстати, ГУЙ не сделан для этой настройки ? Что-то не могу найти в интерфейсе программы
Последний раз редактировалось Alex54 25 мар 2015, 21:17, всего редактировалось 1 раз.
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение zed » 25 мар 2015, 21:14

А штоб я знал :)
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 26 мар 2015, 11:37

Alex54 писал(а):Что означают минимальный и максимальный цвета для заданной скорости в AddSpeedRangeItem() ?

Минимальный цвет соответствует минимальной скорости диапазона, максимальный цвет - максимальной скорости. Цвета для промежуточных скоростей будут вычисляться покомпонентной линейной комбинацией этих двух цветов.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Вопросы по исходному коду

Сообщение DJ VK » 26 мар 2015, 23:08

vdemidov писал(а):Минимальный цвет соответствует минимальной скорости диапазона, максимальный цвет - максимальной скорости. Цвета для промежуточных скоростей будут вычисляться покомпонентной линейной комбинацией этих двух цветов.

p/s/ На всякий случай. Если разрешения не хватает (масштаб ближе к логарифмическому), можно использовать аналог градиентной карты заполнения - там сделано от красного к зеленому через синий. Использование трех каналов цвета с двумя экспоненциальными кривыми позволяет значительно расширить динамический диапазон.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 27 мар 2015, 12:43

DJ VK писал(а):
vdemidov писал(а):Минимальный цвет соответствует минимальной скорости диапазона, максимальный цвет - максимальной скорости. Цвета для промежуточных скоростей будут вычисляться покомпонентной линейной комбинацией этих двух цветов.

p/s/ На всякий случай. Если разрешения не хватает (масштаб ближе к логарифмическому), можно использовать аналог градиентной карты заполнения - там сделано от красного к зеленому через синий. Использование трех каналов цвета с двумя экспоненциальными кривыми позволяет значительно расширить динамический диапазон.

Это ты к чему?
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Вопросы по исходному коду

Сообщение vasketsov » 27 мар 2015, 14:05

TFileNameIteratorInFolderByMask.Next

if FValidFindData then begin
repeat
if IsNeedProcess(FFindFileData) then begin
AFileName := FFolderNameFromRoot + FFindFileData.cFileName;
Result := True;
FValidFindData := Windows.FindNextFileW(FFindHandle, FFindFileData);
Break;
end;
until not FValidFindData;

Если IsNeedProcess возвращает false - FValidFindData вообще не меняется.
Получается бесконечный цикл.
ps. Налетел на это при попытке добавить дополнительное условие фильтрации файлов по размеру.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3