Guest Onio Report post Posted December 26, 2019 не растет кокос! Share this post Link to post Share on other sites
Guest WAJIM Report post Posted December 26, 2019 Так 99.9% всех вставок именно в редакторе делаются. И еще я не пойму, зачем нужна настройка Вставка из буфера с StrLen()? Кому её может понадобиться отключить? После отключения при вставке дикий мусор может валиться из памяти. Share this post Link to post Share on other sites
Garl 0 Report post Posted December 26, 2019 тут лучше CandyMan'а мучать - это его инициатива менять буфер и параметры Share this post Link to post Share on other sites
Garl 0 Report post Posted December 26, 2019 16 minutes ago, Guest Onio said: не растет кокос! контрольный пример с 11 22 33 скопировать 22 и вставить вроде работает Share this post Link to post Share on other sites
Guest Onio Report post Posted December 26, 2019 While S[Length(S)] = #0 do SetLength(S, Length(S) - 1) Share this post Link to post Share on other sites
Guest DRON Report post Posted December 26, 2019 Quote вставку поправили. но в редакторе финальный #00 присутствует. У меня всё как положено, никаких нулей. Share this post Link to post Share on other sites
Garl 0 Report post Posted December 26, 2019 3 minutes ago, Guest DRON said: У меня всё как положено, никаких нулей. вставляем, сохраняем, открываем в хекс-редакторе Share this post Link to post Share on other sites
Guest DRON Report post Posted December 26, 2019 Посмотрите снова код той функции где WideCharToMultiByte и CharToOemBuff, там явно есть разница в обработке разных форматов. Код выбирает первый подходящий формат возвращённый EnumClipboardFormats при этом некоторые программы в начале списка ставят Unicode, а некоторые ANSI. Та часть кода что работает с Unicode делает всё правильно и поэтому я ошибку не увидел, а та что с ANSI неправильно, поэтому там действительно пишется лишний ноль. Вообще подход в корне неверный, нужно просто запрашивать GetClipboardData(CF_OEMTEXT) и не мучиться, потому как: Quote The system performs implicit data format conversions between certain clipboard formats when an application calls the GetClipboardData function. For example, if the CF_OEMTEXT format is on the clipboard, a window can retrieve data in the CF_TEXT format. The format on the clipboard is converted to the requested format on demand. Share this post Link to post Share on other sites
Garl 0 Report post Posted December 26, 2019 30 minutes ago, Guest DRON said: Вообще подход в корне неверный, нужно просто запрашивать GetClipboardData(CF_OEMTEXT) и не мучиться, потому как: из вордпада тогда русские буквы не вставятся... Share this post Link to post Share on other sites
Guest DRON Report post Posted December 26, 2019 GetClipboardData(CF_UNICODETEXT)+WideCharToMultiByte точно должен работать, тем более что сейчас только он и работает. Share this post Link to post Share on other sites
Guest Onio Report post Posted December 26, 2019 где-то тупо добавлен +1 или пропущен -1 StrLen, уж звиняйте, работает железно Share this post Link to post Share on other sites
Guest DRON Report post Posted December 26, 2019 Скорее пропущен -1, так как считается StrLen+1, чтобы буфер выделить. Share this post Link to post Share on other sites
Guest WAJIM Report post Posted December 26, 2019 Вот мой код либы из 2005, работал в 2K/XP (и вроде даже в 98) железобетонно. :) Clipbrd.bas Share this post Link to post Share on other sites
Guest DRON Report post Posted December 26, 2019 Я понял почему у меня не работали 32-х битные версии: в системе был включен DEP для всех программ, а DN с DEP-ом не совместим. Это решается или добавлением в исключения или убиранием флажка IMAGE_SCN_MEM_EXECUTE в секции кода (замена в NDN.EXE байта по смещению 0x20F с 0xE0 на 0xC0). Так же в 64-х битной версии есть проблема отсутствующая в 32-х битной. Если в 64-х битной версии запустить из меню или по Ctrl+Shift+Fx не консольное приложение (notepad.exe например), то до закрытия этого приложения DN "подвисает", а в 32-х битной я могу нажать Ctrl+C и продолжить работу. Причина следующая: в 32-х битной версии устанавливается (SetConsoleCtrlHandler) хитрый обработчик убивающий (TerminateProcess) cmd.exe при нажатии Ctrl+C, а в 64-х битной версии вместо хитрого обработчика ставится заглушка (Result:=True). Хитрый обработчик присутствует в обоих версиях поэтому ошибку я успешно исправил даже не имея исходников. Share this post Link to post Share on other sites
Guest Onion Report post Posted December 27, 2019 cmd /c start notepad Share this post Link to post Share on other sites
Guest DRON Report post Posted December 27, 2019 23 minutes ago, Guest Onion said: cmd /c start notepad Можно просто start "" notepad. Но не все испытывают любовь к подобным костылям и авторы DN решили когда-то заморочиться и решить эту проблему раз и навсегда. Share this post Link to post Share on other sites
Guest DRON Report post Posted December 27, 2019 В новых версиях больно много ошибок "Плохой архив", раньше ошибка появлялась только при первом заходе в битый архив, а теперь при любых действиях включая выход из этого архива. Share this post Link to post Share on other sites
Garl 0 Report post Posted December 27, 2019 8 hours ago, Guest DRON said: Я понял почему у меня не работали 32-х битные версии: в системе был включен DEP для всех программ, а DN с DEP-ом не совместим. Это решается или добавлением в исключения или убиранием флажка IMAGE_SCN_MEM_EXECUTE в секции кода (замена в NDN.EXE байта по смещению 0x20F с 0xE0 на 0xC0). Так же в 64-х битной версии есть проблема отсутствующая в 32-х битной. Если в 64-х битной версии запустить из меню или по Ctrl+Shift+Fx не консольное приложение (notepad.exe например), то до закрытия этого приложения DN "подвисает", а в 32-х битной я могу нажать Ctrl+C и продолжить работу. Причина следующая: в 32-х битной версии устанавливается (SetConsoleCtrlHandler) хитрый обработчик убивающий (TerminateProcess) cmd.exe при нажатии Ctrl+C, а в 64-х битной версии вместо хитрого обработчика ставится заглушка (Result:=True). Хитрый обработчик присутствует в обоих версиях поэтому ошибку я успешно исправил даже не имея исходников. срочно написать Радеку , аолучить пароль от исходников сделать всё хорошо залить исходники обратно Радеку я тоже начинал с активного пользователя NDN Share this post Link to post Share on other sites
Garl 0 Report post Posted December 27, 2019 6 hours ago, Guest DRON said: В новых версиях больно много ошибок "Плохой архив", раньше ошибка появлялась только при первом заходе в битый архив, а теперь при любых действиях включая выход из этого архива. плата за перечитывание файлов ;) - fixed Share this post Link to post Share on other sites
Garl 0 Report post Posted December 27, 2019 автообновление победил как ночью постараюсь причесать код и выложить Share this post Link to post Share on other sites
Guest DRON Report post Posted December 27, 2019 Посмотрите пожалуйста сортировку по "Времени Создания" и "Времени Посл. доступа" в "Ветвь каталога", вряд ли там что-то сложное. И не подскажите, что всё таки делают опции: Use old type mask - Use old way to match group indexes for files in file panel Use tree for mask - use a tree to match the group indexes Share this post Link to post Share on other sites
Guest Onio Report post Posted December 27, 2019 1 hour ago, Guest DRON said: И не подскажите, что всё таки делают опции: Use old type mask - Use old way to match group indexes for files in file panel Use tree for mask - use a tree to match the group indexes Должно быть авторы NDN по специальности ближе к инженерам, и задачу повышения стабильности решают понятным для себя образом — дублированием систем. ...Прием, прием, только что отказала третья опция, иду на последней! Прием!!! А-а-а.... † Share this post Link to post Share on other sites
Garl 0 Report post Posted December 27, 2019 1 hour ago, Guest Onio said: понятным для себя образом — дублированием систем. не! опция для каждого возможного варианта. в некоторых случаях можно было бы просто сделать по новому, ан нет! надо сделать опцию чтобы можно было вернуть как было... Share this post Link to post Share on other sites
Garl 0 Report post Posted December 27, 2019 3 hours ago, Guest Onio said: Use tree for mask - use a tree to match the group indexes это всё для hgroups.ini использовать маску для каталогов - запретить использовать '<' для обозначения цифр аля 'r<<' = .r00-r99 использовать старый тип маски = использовать только ".ext" вместо например *log.txt по хорошему у меня обе опции выключены... Share this post Link to post Share on other sites
Guest DRON Report post Posted December 27, 2019 При выборе папки через Alt+Shift+0 или Alt+Цифра она переводится в нижний регистр, причем при выборе того же самого через Alt+F1/F2 такого преобразование не происходит. Можно было бы и забить, но тут мы приходим ко второму багу: при перемещении файлов диск назначение определяется с учётом регистра, то есть при перемещении с F:\ на f:\ на самом деле происходит копирование+удаление. 31 minutes ago, Garl said: по хорошему у меня обе опции выключены... Аналогично. Share this post Link to post Share on other sites