Ошибка с преобразованием целого числа в строку - PullRequest
0 голосов
/ 13 октября 2011

Я программирую на Delphi 7 под Windows XP. Эта часть программы определяет заголовок для opendialog, и у меня действительно странная проблема.

Код с ошибкой, как показано ниже

od_cap := 'Select data set ' + intToStr(n_data_sets);

, где od_cap - строка, а n_data_sets - целое число. Возникающая ошибка: EAccessViolation at address 0040459a ... Я сузил проблему до того, что она была вызвана преобразованием inttostr, потому что оно все еще дает сбой, когда у меня od_cap := inttostr(2). Более странно то, что в первый раз, когда он вычисляет эту строку, он работает, но затем каждый раз вылетает во второй раз.

Я не могу придумать причину, по которой это может быть, и я не достаточно опытен, чтобы знать какие-либо ошибки, которые могут вызвать это. Я думаю, что это вся информация, которая вам нужна, но не стесняйтесь просить больше.

1 Ответ

1 голос
/ 14 октября 2011

IntToStr() не повышает AV во время преобразования.Вероятнее всего, что переменная od_cap не является допустимой переменной String, например, если она является членом объекта, который был освобожден, поэтому возникает AV, когда ей назначается.

...