ZIK1337, раз уж обещался немного поэкспериментировать, то вот результат. Запускал на десятке 64-х битной. Запускать надо от имени администратора. Работают обе версии. Натравливал их на флешку. Но показывали они совсем не то, что днём под 7-кой. Сам бы я конечно не понял, что именно они мне такое рисуют, но подсказала одна из программулек, с которыми я Ваши сравнивал. У неё есть две возможности прочитать физический сектор и логичекий сектор. И результат разный. И вот сейчас, то что выдает Ваша программа, совпадает с логическим сектором. А все эти ожидаемые сигнатуры надо смотреть в физическом. А днём под 7 без разницы было. Так что, если есть интерес к изучению файловых систем, копайте в этом направлении (физические и логические сектора). Мои знания тут кончаются, да и к Дельфи это уже не относится.
Вот две утилитки, которыми я пользовался: https://cloud.mail.ru/public/FkYs/WjptyNjjD (первое, что в интернете попалось)
ZIK1337, У меня никакой ошибки нет. Точнее ошибки нет, если выбрать диск - флешку с FAT32. Если выбрать HDD с NTFS, то да, будет ошибка. Но это вобще-то не удивительно.
ZIK1337, ой сорри, это первой версии касалось. Во второй у Вас уже всё по другому. А там Вы как-то слишком вольно с формами обращались. Если открыть форму по кнопке "Информация о FAT" а потом закрыть Form2 не кнопкой "Закрыть", а "крестиком", то получалось то, что я описал - открытых форм нет, а процесс висит.
Ой, кстати! Вторая версия у Вас завершается как-то некорректно, процесс остаётся висеть. Вот он небось работать и мешает. В код вникать лень.
Но это так к слову, исходной проблемы не решает.
ZIK1337, Что-то уж у Вас совсем чудеса какие-то. Я бы на Вашем месте вторую версию просто забыл - ну поправили что-то не то, лучше не стало, только хуже, наплевать на неё. Дальше принял к сведению, что первая версия где-то даже работает. Т.е. с ней не всё так плохо. Расширил бы условия эксперимента - другой компьютер, другая ось, другие диски.
Вся эта посекторная работа с дисками представляла интерес уже настолько давно, что сейчас даже затрудняюсь сходу придумать причину, которая ей может мешать. Не знаю, что с Вашим компом может быть не так.
Домой приду, там ещё запущу. Может даже xp-шную виртуалку найду, но не гарантирую, не помню, жива она у меня или нет.
ZIK1337, Так Вы не на физической машине а на виртуальной?? Не утверждаю на 100%, но, по-моему, в плане посекторного чтения виртуальный диск ничего никому не должен.
Что мешает из под физической винды со съёмным носителем проверить?
По поводу последнего Вашего сообщения. У Вас же до каких-то изменений всё работало - верните всё как было!
ZIK1337, да кто же его знает! Вы опять гадаете. У Вас это сообщение может быть выдано минимум по трём причинам - не создан файл, не установлен указатель в файле, ничего не прочитано из файла. Локализуйте причину и смотрите, что Вы такого поменяли, что вот это конкретное место перестало работать. Старый вариант работает? Значит точно изменения виноваты.
Ну и в плане использования метода тыка, Вы пробовали Вашу программу запускать с другим диском, на другом компьютере? Может проблема-то не в программе? На том что я смог проверить (win7 + флэшка), так похоже, что вроде всё более менее работает. А уж физической XP у меня в обозримом окружении нет.
Удалил предыдущее сообщение, оно неточную информацию содержало. У меня Ваша и две другие программы содержимое например 0 сектора флешки показывают одинаково. Дальше не проверял.
Вы говорите, что некоторая функция у Вас вызывается три раза и возвращает разный результат. Значит ставите точку останова на первой строке этой функции, входные параметры выводите в окно отслеживания. Не по Вашему коду, а по реально наблюдаемым значениям убеждаетесь, что все три раза в функцию приходят одни и те же величины. Убедились, а результат разный, значит добавляем в отслеживание все переменные используемые в коде функции и каждый из этих трёх раз пошагово проходим всю функцию под отладчиком. Находим в какой строке возникает различие. Осмысляем.
Вот как-то так надо действовать, а медитировать на код бесполезно.
Ошибка может быть самой разной. Но отладчик именно для поиска ошибок и придумали.
Попробуйте переформулировать вопрос. Сейчас он не имеет смысла - выбрать несуществующий item нельзя, тут нечего запрещать. Можете попробовать свои желания по шагам расписать. Типа есть combobox с таким, таким, таким и таким item-ами (для примера их не нужно много). Я ввожу такой текст - происходит следующее. А если такой текст, то следующее. А то пока не очень понятно, только догадки.
Андрей, понятия не имею. Может какой другой загрузчик попробовать, может ещё что. Я с ардуино только изредка общаюсь и в такую ситуацию не попадал. Кстати, а скетч через программатор не заливается случайно?
Виктор Фамильевич, Подозреваю, что компьютер не всё время в ждущем режиме пребывает. Небось винда какими-нибудь своими делами активно занимается. Есть по-моему у каких-то задач такое, что запускать при отсутствии активности (что-нибудь типа обновлений, дефрагментаций, поиска вирусов и т.п.)
Андрей, Вы же шьёте не через программатор, ведь нет? Поэтому тот пункт в настройках ко всем нынешним делам отношения не имеет.
У меня точно такой ситуации не было. Если никакой из интернетовских советов по "оживлению" не поможет, можете попробовать программировать её через программатор. UNO ведь у вас есть? Заливаете в него из примеров скетч ArduinoISP. Теперь он у Вас программатор. Вот его и надо будет указывать в той настройке. А дальше можете попробовать загрузчик перезалить. Примеров в интернете много, например вот https://flprog.ru/uchebnyj-centr/articles/prochie-...
Да собственно и скетч можно так же грузить без всякого загрузчика. Должен быть выбран программатор ArduinoISP и нужно нажимать не "Загрузка", а "Загрузка через программатор" (при этом загрузчик точно стирается)
Андрей, может загрузчик и на месте. Затереть-то его тоже суметь надо. Вот когда добились, что плата обнаруживается попробуйте в неё какой-нибудь скетч залить (блинк из примеров). Может и зальётся.
Это не задача тяжёлая, это дельфи не самая популярная система программирования под андроид. Здесь, например, появляются иногда один или два человека, кто этим занимается. Так ещё нужно, чтобы они с этим же вопросом сталкивались. Так что ищите шире, в гугле ссылок по этому вопросу масса. Не факт, что по каждой готовое решение, но думаю, что найти можно. Надо только постараться.
Ghost Doc, чтобы из Ваших точек получился овал они должны идти вот в такой последовательности:
1 1,147 1,573 2,237 ... ... 7 ... ... 2,237 1,573 1,147 1
идут соответственно сначала значения для одного полуовала (например верхнего), а потом для другого (нижнего)
Вот две утилитки, которыми я пользовался: https://cloud.mail.ru/public/FkYs/WjptyNjjD (первое, что в интернете попалось)