![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Delphist |
|
||||||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Есть такая ф-ция:
По идеи ShowMessage должен был бы вернуть, 3.14 но возвращает 3, начал отлаживать, смотрим Format:
В отладчике видно, что Args[0] хранит не 2, а левые данные. С чем это связано??? Все ОК, если деалать так:
-------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
||||||
|
|||||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Наверно это потому ,что массив integer
-------------------- Возмездие настигнет |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 70 Всего: 191 |
Там лежит адрес переменной V. Когда ты пишешь
то вызывается внутренняя функция _VarToInteger Это сообщение отредактировал(а) Rrader - 19.4.2009, 17:32 |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Так почему же она не работает? Баг Format'a или что? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Variant все таки еще может оказаться String.А в данном случае может быть только число. Поставь Real и нет проблем.
-------------------- Возмездие настигнет |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Мне не понятно, почему компилятор ведет себя как пофигист. Выдавал бы какое-нить предупреждение это же ведь неявная ошибка. Да и в Help'e ничего не написано про том, что в Format'e запрещено использовать вариантный тип -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Delphist, читай книжек побольше. Например купи и прочти "О чём не пишут в книгах по Delphi". Там есть неплохое описание твоей проблемы, как мне кажется.
ты сам что, не видишь, что 3,14 это не целочисленный тип??? |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Авторам просто в голову не пришло, что сюда могут засунуть что нить кроме числа. А как насчет RoundTo((A*1.32),-2) -------------------- Возмездие настигнет |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Это ты, помоему, не понимаешь как работает Format. Так вот 3.14 и не обязан быть целочисленным Теперь, если мы откроем официальную документацию по Format'y, то мы не встретим там, информации о том, что запрещено использовать вариантный тир. Так что, Akella, эт те надо по больше читать букварей Это сообщение отредактировал(а) Delphist - 21.4.2009, 16:01 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Добавлено через 54 секунды получается, что Rrader прав |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
зато написано, что спецификатор должен соответствовать типу соответствующего передаваемого аргумента.. в списке спецификаторов нет предназначеного для varianta. variant не приводится по умолчанию к integer. Добавлено через 5 минут и 51 секунду строка формата - отн. к динамическим данным, и фактически известна только в рантайме, так что обвинять компилятор не в чем. хотя в таких случаях как Ваша запись компилятор мог бы сдеалть предположение, но не обязан (некоторые компиляторы Cpp делают, про паскалевские не знаю) |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
вообщем, ребята, считаю это небольшим багом.
Это сообщение отредактировал(а) Delphist - 20.1.2012, 09:17 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
интересно почему это вдруг багом ? потому что компилятор не помогает ? так format это обычная функция, о особенностях которой в компилятору знать то и не обязательно, к тому же у компилятора нет статической информации для необходимой проверки. так что, имхо, это не баг, а отсутствие фичи Это сообщение отредактировал(а) mes - 21.4.2009, 23:19 |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
баг, баг. вот увидешь современем разработчики delphi внесут поправки -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Ну вот и свершилось. Как я и говорил это был баг, в DelphiXE поправили.
mes, не забудь Delphist'y плюсик поставить Это сообщение отредактировал(а) Delphist - 19.1.2012, 16:17 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Модератор: Сообщение скрыто. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Модератор: Сообщение скрыто. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |