Назначенный (TStopWatch) дает E2008
if assigned(S3) then Log('TChunkManager.UpdateVertices Create VAO ms: ' +
S3.ElapsedMilliseconds.ToString);
Проблема в назначенной части, я пробовал с Log('aaa'), а также Log отлично работает в других местах. Почему S3 (TStopwatch) несовместим с назначенным?
**[dcc64 Error] thChunkManager.pas(529): E2008 Incompatible types**
Как я могу проверить, создан ли S3 или нет?
1 ответ
Решение
TStopWatch
это тип записи, а не тип класса. Экземпляр записи может быть создан в памяти стека вызывающего потока. Экземпляр типа класса должен динамически размещаться в динамической памяти. Только указатели могут быть переданы Assigned()
, Экземпляр записи в стеке не считается.
Для того, что вы пытаетесь, вы, вероятно, хотите использовать TStopWatch.IsRunning
свойство вместо:
if S3.IsRunning then
Log('TChunkManager.UpdateVertices Create VAO ms: ' + S3.ElapsedMilliseconds.ToString);