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

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

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

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

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

Сообщение zed »

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

Нет, там свойство:

Код: Выделить всё

IChangeable = interface
    ['{7F6DCE71-7EBD-40A0-A3BF-C603A3AEE8BA}']
    ...   
    property ChangeNotifier: INotifier ...
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

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

Сообщение Alex54 »

zed писал(а):У вас там ахинея какая-то написана:

Код: Выделить всё

TCustomGPSTrack = class(TChangeableWithSimpleLockBase, IChangeable)

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

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

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

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

Сообщение 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. Кстати, ГУЙ не сделан для этой настройки ? Что-то не могу найти в интерфейсе программы
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

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

Может вы переменную объявили не как интерфейс, а как класс?
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

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

Сообщение Alex54 »

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 раз.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

А штоб я знал :)
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

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

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

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

Сообщение DJ VK »

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

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

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

Сообщение vdemidov »

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

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

Это ты к чему?
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
vasketsov
Специалист
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Поблагодарили: 193 раза

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

Сообщение vasketsov »

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. Налетел на это при попытке добавить дополнительное условие фильтрации файлов по размеру.
Ответить

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