2015-11-30 7 views
0

В Delphi 10 Сиэтла, с JVCL 3.48, после того, как реализован TJvAppXMLFileStorage обработчика OnGetFileName событий, он никогда не будет выполнен:TJvAppXMLFileStorage OnGetFileName событие никогда не выполняется

procedure TForm1.JvAppXMLFileStorage1GetFileName(Sender: 
    TJvCustomAppStorage; var FileName: TFileName); 
begin 
    // never gets executed! 
    CodeSite.Send('JvAppXMLFileStorage1GetFileName', FileName.ToString); 
end; 

мне нужно это событие, чтобы установить JvAppXMLFileStorage1.Location свойства с параметром var FileName в зависимости от других настроек.

Итак, как я могу выполнить это событие?

+0

Из того, что я вижу в 'JvAppStorage.pas',' OnGetFileName' отправляется только в том случае, если 'Location' установлен в' flCustom' (см. 'Procedure TJvCustomAppMemoryFileStorage.RecalculateFullFileName;'). –

+0

Извините (телефонный звонок) - отредактируйте лимитированный .. 'RecalculateFullFileName' только вызывает' DoGetFileName' в ветке 'case Location of' для' flCustom'. –

+0

У JEDI нет реальной документации, поэтому вы должны прочитать источник –

ответ

1

Быстрый взгляд на JvAppStorage.pas кажется, показывают, что единственное место, которое вызывает DoGetFileName (что, где OnGetFileName срабатывает, если есть один назначен) в TJvCustomAppMemoryFileStorage.RecalculateFullFileName. Рассматривая этот метод, DoGetFileName вызывается только из ветки case Location of для flCustom.

Это, по-видимому, указывает на то, что событие было запущено только в том случае, если оно назначено иLocation - flCustom.

Смежные вопросы