Здрастье! У меня такой вопрос. Как сделать так, чтобы моя программа была в контекстном меню некоторых файлов(как WinRar, Dr. Web и др.) и чтобы в качестве параметра передавались имя выделенного файла (или файлов, если их несколько) и директория в которой он находится. Помогите, если не тяжело или дайте ссылку где можно почитать об этом вопросе.
Когда-то этот вопрос в рассылке рассматривался, у меня остался пример. Он регистрируется в реестре для файлов любого типа и позволяет изменить их расширение (задаётся с точкой). Неэкономично, правда, - размер великоват, зато наглядно.
Приложение: Ответ отправлен: 03.12.2002, 13:02 Отправитель: Артём Шегеда
Вопрос № 319
Доброе время суток, уважаемые Эксперты! Продолжение вопроса № 315: Во первых: Большое спасибо всем, кто ответил! Дело в том, что предложенная GetDeviceCaps, похоже, дает размер страницы "без полей". Нет ли другой функции, или как узнать размер поля? Для тех кто спрашивал "зачем" (вдруг пригодится): Была программа, печатающая рисунки (лекала для вышивальных машин). Она была настроена под конкретный принтер. После покупки нового принтера(с бо'льшим разрешением) рисунки стали меньше размером. (Они должны быть тютелька в тютельку + - 0.5 мм). Зная ширину страницы в пикселах, но не зная какой лист выбран (A4, A5, A3....) невозможно вычислить процент увеличения изображения. С уважением Vitally.
Здравствуйте, Vitally! Левое и верхнее поле можно узнать (в пикселах) подставив в GetDeviceCaps параметр PHYSICALOFFSETX или PHYSICALOFFSETY. А вот правое и нижнее, можно узнать видимо только с помощью функции DocumentProperties. Ответ отправлен: 03.12.2002, 11:16 Отправитель: Vadim Отвечает Артём Шегеда
Приветствую Вас, Vitally!
Настоятельно рекомендую открыть документацию MSSDK и прочитать главу "GetDeviceCaps" Между прочим, там есть много параметров, а именно PHYSICALWIDTH - For printing devices: the width of the physical page, in device units. For example, a printer set to print at 600 dpi on 8.5"x11" paper has a physical width value of 5100 device units. Note that the physical page is almost always greater than the printable area of the page, and never smaller. и PHYSICALHEIGHT - почти то же самое, но по вертикали
Ответ отправлен: 03.12.2002, 13:02 Отправитель: Артём Шегеда
Вопрос № 322
Здравствуйте! Короче я писал прогу на Delphi 5 в Windows 98 и когда ее запустили на Win NT то вышло системное окно с закодированным сообщением. Скажите как решить эту проблему? Спасибо вам! P.S Может система NT как то защищена админами? Есть ли там такие настройки?
У нас не принято отвечать на вопросы без полной информации для анализа. Поэтому, пришли программу (или её ключевую часть) и опиши окно с сообщением. В крайнем случае, завяжи переписку с конкретным экспертом (а лучше опубликуй e-mail) и получи полноценную консультацию. Ответ отправлен: 04.12.2002, 15:48 Отправитель: Артём Шегеда Отвечает Jadd
Здравствуйте, dude! Имеется ввиду что вопросы вместо русских символов? Непонятно что имеется ввиду под закодированными. Если то, что я предположил, то надо искать версию кириллического фонта, который в нте будет корректно отображать кириллицу. Дело все в юникоде. НТя(особенно с win2k) активно конвертит строки из ANSII в юникод и если не может какой-то символ конвертнуть, на его месте появляется вопрос. Ответ отправлен: 05.12.2002, 02:32 Отправитель: Jadd Отвечает Vadim
Приветствую Вас, dude! А какую прогу ты писал? В большинстве случаев программе по-барабану в какой ОС выполняться. Если только ты не обращаешся к какой-то особенности ОС. "Закодированное сообщение" - это вместо русских букв кракозябры или имелось в виду что-то другое? Возможно для NT следовало использовать кодировку UNICODE вместо ANSI. Возможно в NT не хватает каких-то РУССКИХ шрифтов, которые были в 98. Еще можно посмотреть настройки "Regional settings" ("Язык и стандарты"). Должен быть выставлен русский язык). PS: Если система защищена каким-то образом админом, то сообщение будет понятным и его можно прочитать, т.е. оно ни в коем случае не закодировано.
Ответ отправлен: 05.12.2002, 05:58 Отправитель: Vadim Отвечает Vladimir
Приветствую Вас, dude! Я решал эту проблему следующим образом: Установил на свой комп WinXP и скомпилировал программу. Дело в том, что в Win9x и NT используются разные библиотеки. Причем программа, скомпиленная под NT, как правило работает и под 9х, а вот наоборот ...
Ответ отправлен: 05.12.2002, 08:36 Отправитель: Vladimir
Вопрос № 323
У меня такой вопрос возник. Можно ли сделать так: программа создает ини файл в нем \\\\\\\\\\\\\\ [Do] do=memo1.lines.add('tucvxvdffas');form1.close; ///////////////////////////// //это я ест-но знаю как делать. Больше интересует следующее: Программа читает параметр do и выполняет действия описанные в нем (т.е добавляет строчку в мемо и вырубает форму). Напишите подробнее plz Очень надеюсь на вашу помощь.
Здравствуйте, pcgamer! Для работой с .INI-файлами используются объекты TINIFile и TRegINIFile. Эти компоненты подробнейшим образом описаны в справке. Изучайте!
Ответ отправлен: 04.12.2002, 22:01 Отправитель: Pinman Отвечает Melkor
Добрый день, pcgamer! Ты хочеш чтобы во время исполнения программы вносились изменения в ее код (уже откомпилированный), а это очень сложно. Есть 2 способа: 1 - поменять код в сегменте кода (CS) проги. 2 - сделать dll с процедурой кот. закрывает форму и т.д. Потом вносить в ее исходник код из ini-файла, компилить во время исполнения (к проге придется прилагать файлы компилятора Delphi) и подключить данную dll к проге (немного странный способ и компилятор весит много). Ответ отправлен: 06.12.2002, 21:59 Отправитель: Melkor Отвечает Idle Sign
Здравствуйте, pcgamer! ===== Pro bono publico, no bloody panico! ===== Лучше такого не делать. Теоретически можно, если: 1) таскать с основной программой компилятор 2) считывать текст из ини в отдельный файл (модуль), который будет dll ( с dll работать интереснее ;) ), дописывать все нужное для работы с основной программой 3) брать копилятор, компилить dll 4) стыковать с основной программой Почему не делать? Оттого, что 1) ошибок будет - не разгребешь (одно подберешь, другое вывалится); 2) теория от практики в нашем деле зачастую сильно отличается. Ну и на последок: если долго мучаться, кто-нибудь получится (Dr. Frankenstein). Ответ отправлен: 04.12.2002, 18:53 Отправитель: Idle Sign Отвечает Jadd
Приветствую Вас, pcgamer! Дык качай компоненту, которая интерпретирует паскалевский код. Иначе никак. Ответ отправлен: 05.12.2002, 02:27 Отправитель: Jadd Отвечает Vadim
Добрый день, pcgamer! Нужно чтобы программа делала именно это "memo1.lines.add('tucvxvdffas');form1.close" или нужно чтобы программа выполняла заданные в текстовой форме команды? Ответ отправлен: 05.12.2002, 06:01 Отправитель: Vadim
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.