Один из самых частых затыков при обновлении версии Delphi - незнакомый интерфейс. Человек вроде уже и хочет обновиться (всякие вкусности пощупать, часто - поддержку Windows Vista/Windows 7), но... родная 7-ка ближе к телу. Что ж, с этой статьёй у вас будет на одну причину меньше использовать Delphi 7 (а желающие всё же остаться на Delphi 7 читают тут).
Итак, по-умолчанию 2010-я студия имеет такой вид:
Ниже я приведу набор шагов, которые нужно сделать, чтобы "превратить" Delphi 2010 в Delphi 7. Заметьте, что не все из перечисленных шагов нужно выполнять на вашей конкретной конфигурации - это зависит от ваших настроек. Некоторые шаги могут быть у вас уже сделаны.
1. Отстыковка окон.
Первое, что мы сделаем - отстыкуем окна. Для этого вы можете щёлкнуть на любом окне и сбросить галочку "Dockable":После этого окно отстыковывается от главного окна и будет плавать отдельно. В принципе, даже необязательно снимать галку: просто схватили блок за заголовок - и тащите. Он сам отстыкуется. Вот вид окна Delphi после отстыковки инспектора объектов:
Вы можете руками отстыковать все окна. Или вы можете просто переключиться на предопределённый шаблон раскладки окон (такой шаблон называется Desktop-ом или рабочим столом). Для этого разверните список рабочих столов в главном окне и выберите рабочий стол "Classic undocked":
Если вы не видите этой панели - вы можете переключиться на другой рабочий стол через меню ("View"/"Desktops"/"Classic undocked"):
В результате у вас должно получиться что-то такое:
Как видите, все окна плавают - всего в два щелчка мыши!
2. Отстыковка дизайнера форм.
Второе, что мы сделаем - отстыкуем дизайнер форм, ведь отстыковать его методом, указанным выше, нельзя. Для этого мы идём в опции IDE ("Tools"/"Options"):В появившемся окне сбрасываем галочку "Embedded designer" в разделе "Environment Options"/"VCL Designer":
После сброса галочки среда попросит у вас перезапуск:
Закрываем все окна и перезапускаем Delphi. После перезапуска дизайнер форм будет плавающим окном:
Окей, щелчков здесь было больше и нам потребовался перезапуск IDE. Но всё равно не сложно.
Примечание: Начиная с Delphi XE3, опция "Embedded designer" скрыта из настроек среды, но её всё ещё можно изменить вручную, отредактировав ключ реестра
HKEY_CURRENT_USER\Software\Embarcadero\BDS\10.0\Form Design
(10.0 - это для XE3), изменив значение Embedded Designer
в False
. Учтите только, что FireMonkey поддерживает только интегрированный дизайнер.3. Палитра компонент.
Далее - включение палитры компонент "как в Delphi 7". Во-первых закройте плавающее окошко "Tool Palette" (вернуть обратно его можно из меню "View"/"Tool Palette"), затем щёлкните правой кнопкой по главному окну и выберите палитру "Component":Кстати, если панельки "Desktop" вы у себя не нашли (помните, выше, когда мы переключались на "Classic undocked"?), то вы также можете включить её тут - щёлкайте по пункту "Desktop". В любом случае, в итоге вы получаете свою палитру компонентов "в стиле Delphi 7":
Три щелчка - и любимая палитра компонент снова с вами.
4. Переключение сортировки в инспекторе объектов.
Последний шаг - инспектор объектов. В принципе, нельзя сказать, что это специфично для Delphi 2010 - в Delphi 7 у инспектора объектов тоже было два варианта отображения. Но, на всякий случай, я упомяну про это тут.Вы можете переключаться между двумя видами инспектора объектов, щёлкая правой кнопкой по нему и выбирая "Arrange"/"be Category" или "Arrange"/"by Name":
Вот вид инспектора с сортировкой по категориям:
А вот с сортировкой по именам:
Выберите вид, к которому вы привыкли в Delphi 7.
5. Устанавливаем справку из D7 в D2010.
Ещё одна претензия к Delphi 2010 - её изменившаяся справочная система. Позвольте мне снова остаться в стороне от вопроса что лучше - я просто покажу, как вы можете встроить свою любимую справку от Delphi 7 в Delphi 2010.Для этого есть два способа:
- Минимальная интеграция - открытие справки отдельной командой.
- Максимальная интеграция - подмена штатной справки.
Способ два посложнее, вам также понадобится скачать сторонний эксперт, но зато вы можете подменить встроенную справку. К сожалению, при этом вы лишаетесь справки по диалоговым окнам и прочим изменившимся за это время вещам. Впрочем, никто не запрещает вам вызывать встроенную справку руками через меню Help.
Итак, способ первый: скопируйте файлы справки от Delphi 7 на вашу машину (куда - не суть важно, главное, чтобы в записываемую папку). Далее, идите в меню настройки утилит "Tools"/"Configure tools":
В открывшемся окне щёлкайте по кнопке "Add" для добавления новой утилиты:
После этого открывается окно создания команды вызова новой утилиты. Вводите такую информацию:
- Title - любое. Это имя команды будет показываться в меню.
- Program - "winhlp32.exe". Если вы работаете на Windows Vista или выше, вам нужно доустановить поддержку устаревшего формата справки, как указано в этой статье.
- Working dir - каталог, куда вы положили файлы от справки Delphi 7.
- Parameters - "-k $CURTOKEN d7.hlp". Вы также можете указать полный путь к D7.hlp (включая каталог, только не забудьте про кавычки, если ваш путь содержит пробелы), если у вас возникают проблемы с открытием справки. $CURTOKEN - это текущее слово в редакторе Delphi (раскройте список Macros, чтобы увидеть другие варианты). А "-k" - указание на открытие справки по слову в индексе. В принципе, вы можете убрать эту часть, оставив только имя файла справки.
После сохранения команды, вы теперь можете вызывать справку Delphi, выбирая её из меню:
Что касается способа два, то вам также нужно скопировать файлы справки Delphi 7 на свою машину (кто-бы сомневался!). Кроме того, вам также нужно доустановить поддержку справки WinHelp, если вы работаете в Vista или выше.
После подготовки вам нужно скачать с CodeCentral эксперт (расширение) к IDE для интеграции справки. Вот вариант 1. Вот вариант 2. Они весьма похожи и ставятся примерно одинаково, но мне больше понравился второй - он и покрасивше и позволяет использовать кнопку F1. Поэтому я буду описывать процесс для второго эксперта, но первый ставится полностью аналогично - надеюсь, вы сумеете при желании разобраться с ним самостоятельно по аналогии.
Для качала распакуйте скачанный архив. Лучше всего распаковывать в свою папку с проектами или вроде того. Далее, запускаете Delphi 2010 и открываете пакет из папки Packages. Варианта для Delphi 2010 там нет, но это не имеет значения - просто открывайте вариант для самой последней версии Delphi. Вот открытый пакет в менеджере проектов Delphi 2010:
Далее щёлкайте по нему правой кнопкой и выбирайте Install:
При этом эксперт будет скомпилирован и установлен в IDE. Всё, можете закрывать все файлы (сохранив изменения). Файлы с диска, понятно, удалять не надо :)
Теперь осталось только настроить эксперт. Для этого открываем меню "Help"/"Delphi Help Expert":
Откроется окно настроек, где вы можете задать аж три разных вида справки!
Тут вообще всё тривиально: есть три типа справки - CHM, HLP и интернет. Вы можете указать источник для любой справки и забиндить любую справку на любую из комбинаций кнопок: F1, Ctrl + F1, Shift + F1, Alt +F1. Достаточно просто.
К примеру, на снимке экрана выше я указал открывать справку от Delphi 7 по кнопке F1, а по Ctrl + F1 - открывать справку по Delphi в интернете (вот вам строка для Copy&Paste: "http://www.google.ru/search?q=%s+site:http://docwiki.embarcadero.com/"). docwiki.embarcadero.com - это Вики для продуктов Embarcadero. Т.е. пополняемая сообществом справка. Более полный вариант обычной справки.
Итак, когда вы всё настроили, закрывайте окно настроек и жмите F1. Бац, вылезает справка Delphi 7. Если при этом вы стояли в редакторе кода на каком-то слове, то это слово будет указано в индексе (в этом примере я стоял на TRegistry):
Если же вы нажмёте Ctrl + F1, то откроется ваш браузер по-умолчанию с online-справкой (пример с тем же TRegistry):
Итак, последняя преграда пала перед нашим натиском :)
Бонус-примечание: если вы хотите ещё больше возможностей со справкой и чувствуете, что вы уже не совсем начинающий - вы можете установить этот навороченный IDE Expert, вместо простых экспертов, упомянутых выше. Для него есть даже видео-инструкция. Посмотрите, не пожалеете: будете потом облизываться и срочно его себе поставите :D (лично я поставил себе именно его)
6. Прочие финты ушами.
В заключение хотелось ещё сказать, что вы можете стыковать любые окна с любыми другими в любых комбинациях. Чтобы окно можно было пристыковать - оно должно быть "Dockable". Помните, мы снимали такую галочку в первом пункте? Вот, если хотите пристыковать окно - её надо установить, если она не стоит. А если вы двигаете окно, и оно очень некстати хочет пристыковаться - зажмите Ctrl.Кроме стыковки вы также можете "приколоть" окно к другому, на манер панелек в Photoshop. Для этого перетащите окно на закладку панели в другом окне. А если закладок у вас на экране нет - то кидайте одно окно на центр другого (если кидать на сторону - оно пристыкуется вместо прикалывания). К примеру, бывает достаточно удобно совместить все вспомогательные окна в одно окно:
Когда я ещё сидел на Delphi 7, я именно так и делал.
Статья хорошая, хотя она частично повторяет ролик
ОтветитьУдалить"How to configure Delphi 2010 to look, work, and feel like Delphi 7.flv" который был выложен на сайте delphi.
Но в D2010, если ее IDE сделать как тут написано в стиле D7, то D2010 начинает глючить. Выражается это в том, что если настроить тулбары с кнопками (например включить тулбары Align, View, Components), потом открыть какой нибудь рабочий проект в ней и перезапустить D2010, то все тулбары с кнопками съезжают со своих мест. Если же сделать перезапуск D2010 с не открытым проектом или со стартовой html-страницей, то тогда тулбары не съезжают.
P.S. 2GunSmoker: Можно ли вам задать несколько небольших вопросов по EurekaLog ?
Если да, то как ?
>>> Статья хорошая, хотя она частично повторяет ролик
ОтветитьУдалитьЯ думаю, что тут сложно сказать что-то уникальное.
>>> P.S. 2GunSmoker: Можно ли вам задать несколько небольших вопросов по EurekaLog ? Если да, то как ?
Пишите на почту (в левой колонке есть ссылка на мой профиль, где есть пункт "Отправить письмо").
>Человек вроде уже и хочет обновиться (всякие вкусности пощупать, часто - поддержку Windows Vista/Windows 7), но... родная 7-ка ближе к телу
ОтветитьУдалитьКаким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?
Каким же надо быть придурком, чтоб других называть идиотами?
УдалитьНе обращайте внмиания=)
УдалитьЭто школота, она так всегда пишет, мозгов еще нет, тока вылез из ссаных пеленок, и ему D10.3 подкатили
Что такое ФИДО и Дельфа 3 и привычки оно не слышали=)
2 GunSmoker:
ОтветитьУдалитьА что по поводу проблемы с IDE D2010 в стиле D7, описанной в первом комментарии ?
Или у вас эта ошибка не наблюдается ?
>>> Каким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?
ОтветитьУдалитьСколько людей, столько и мнений. Склонность проецировать свой способ мышления на других людей называется эффектом ложного согласия.
>>> А что по поводу проблемы с IDE D2010 в стиле D7, описанной в первом комментарии ?
У меня сейчас нет времени посмотреть.
>> Пишите на почту (в левой колонке есть ссылка на мой профиль, где есть пункт "Отправить письмо"). Для того, что бы воспользоваться "Отправить письмо" из профиля, надо иметь аккаунт на гугле, а у меня его нет.
ОтветитьУдалитьЯ попробую воспользоваться ссылкой "Отправить сообщение по электронной почте" (иконка письма под статьей), но там ограничение на 300 символом, придется бить письмо на части.
Этот комментарий был удален автором.
ОтветитьУдалить> Каким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?
ОтветитьУдалитьЛомание привычек - на самом деле, серьёзный аргумент. Достоинство Delphi 2010 в том, что на неё можно перейти с Delphi 7, не изменяя своим привычкам, что и продемонстрировал Александр ;)
> D2010 начинает глючить. Выражается это в том, что если настроить тулбары с кнопками (например включить тулбары Align, View, Components), потом открыть какой нибудь рабочий проект в ней и перезапустить D2010, то все тулбары с кнопками съезжают со своих мест.
ОтветитьУдалитьА ты попробуй настраивать панельки с _открытым_ проектом. Просто когда проект открываешь, там могут кнопки новые включаться и из-за них панельки могут поехать.
Если я не ошибаюсь, то когда открываешь новый проект, на тулбаре новый кнопки (или новые палитры) не появляются.
ОтветитьУдалитьВключаться и отключаться (Enabled/Disabled) кнопки могут, но если из за этого слетают тулбары то это однозначно баг D2010.
Смотря какие кнопки. Некоторые исчезают. Вроде это кнопка опций проектов, если не путаю. Потому что их там две - одна для текущего проекта, а вторая - для дефолтного. Когда проект закрываешь, кнопка опций текущего проекта убирается. Или что-то такое. Щас точно не помню, но попню, что когда настраивал свою среду, у меня панельки плыли именно из-за меняющихся кнопок. Я просто вывел максимальный набор и оставил место на всяк случай
ОтветитьУдалитьКнопка проверки синтаксиса тоже исчезает.
ОтветитьУдалитьВсе замечательно, только у меня отсутствует в меню пункт "Component" при щелчке правой кнопкой мыши на главном окне... Подскажите, пожалуйста, как вставить палитру компонент в такой ситуации?
ОтветитьУдалитьЕсли у вас Delphi 2010 или Delphi XE и вы щёлкаете по главному окну IDE (а не окну проекта) - то пункт там будет. Иначе - нет.
ОтветитьУдалитьАлександр, в эбауте указаны следующие сведения: Borland® Delphi® for Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation. Я так понимаю, что это delphi 2010... В меню есть все те же пункты, что и в скриншоте (немного в другом порядке, правда), за исключением component.
ОтветитьУдалитьDelphi 10 - это Delphi 2006.
ОтветитьУдалитьDelphi 14 - это Delphi 2010.
упс... сорь за лишние буквы
ОтветитьУдалитьКак в Delphi-2010 отключить упорядочивание обработчиков событий. В прежних версиях Delphi они вмегда добавлялись в конец модуля, а теперь бог знает куда пишеться.
ОтветитьУдалитьВсем эта штука хороша, вот если-бы еще не сортировала методы, цены бы ей не было.
Всем привет, "затем щёлкните правой кнопкой по главному окну и выберите палитру "Component"" к сожалению у меня нету этого, всё перерыл, а Component не нащёл, что можно сделать?
ОтветитьУдалитьПоставить Delphi 2010 или выше.
ОтветитьУдалитьПоставить нормальную.
Поставить нормально.
У меня стоит CodeGear RAD Studio 2007 v11.0.2902.10471 Architect ENGLISH, версия вроде бы актуальная, выглядить также как и тут на скриншотах, все пунткты кроме палитры компонентов удалось выполнить, может в настройках как-нибудь по другому можно добавить?
ОтветитьУдалитьКакое слово в "Поставить Delphi 2010 или выше" непонятно?
ОтветитьУдалитьА у вас есть ссылки на Delphi 2010?
ОтветитьУдалитьISO, Web-installer.
ОтветитьУдалитьСпасибо, делфи я поставил, у вас не найдётся регистрационного файла? Тот, который был у меня не работает ...
ОтветитьУдалитьЗдесь не обсуждается взлом и пиратский софт.
ОтветитьУдалитьЯ предпочитаю использование лицензионного ПО, когда это возможно (лицензионное <> платное). Чего и вам желаю.
Хороший пост. Правда я тоже за новый интерфейс ) Вот что мне реально неудобно в Delphi 2010 - не очень хорошо работается в ней с двумя мониторами. В design time все в порядке, но после запуска приложения часто компоненты IDE разъезжаются, приходится руками все восстанавливать.
ОтветитьУдалитьРаботаю также и в MS VS 2010 - там вот с несколькими мониторами стало все в порядке. Кстати, не знаете, может в Delphi XE тоже эту проблему решили?
спасибо за статью .. ваще ошалел когда увидел интерфейс этого чуда нового .. сраного чуда .. спасибо за статью .. еще раз !!
ОтветитьУдалитьДобрый день!
ОтветитьУдалитьв delphi 7 исчезла панель с компонентами...и никак не отображается. Проекты открываются нормально и компилируются.
Где что подправить?
Внимание, вопрос: какое отношения имеют ваши проблемы к Delphi 2010?
ОтветитьУдалитьНадеялся на то что добрый люди тут смогут мне помочь...
ОтветитьУдалитьДобрый вечер!
ОтветитьУдалитьВ моем приложении с десяток форм. В один прекрасный момент одна из них перестала появляться. То есть: я нажимаю Shift + F12, выбираю Form21 и после этого появляется код написанный в модуле этой формы, но Сама форма на экране не появляется...
Что делать? Помогите плиз
Спасибо! Добавлю страничку в закладки, на случай, если не привыкну к новому интерфейсу.
ОтветитьУдалитьА как настроить Delphi 7, чтобы она выглядела как 2010?
ОтветитьУдалить{Примечание: Начиная с Delphi XE3, опция "Embedded designer" скрыта из настроек среды, но её всё ещё можно изменить вручную...}
ОтветитьУдалитьСпасибо ! А уж подумаю, что все - прощай нормальная работа, когда необходимо делать форму большого размера, скажем, равного разрешению монитора :-)
Спасибо! Очень пригодилось
ОтветитьУдалитьНа счет перехода с 7ки на новые версии IDE (в моем случае на XE2):
ОтветитьУдалить1) За первые же несколько минут знакомства, несколько раз наткнулся на критические в самом IDE. В дальнейшем в процессе работы, критические вылавливал в разы чаще, чем старой доброй 7ке.
2) При перестроении интерфейса в IDE, столкнулся с проблемой не сохранения позиций панелей, кроме как по базовому шаблону. Вне шаблона вообще все убирает под чистую...
3) Скорость работы IDE, на глаз, раза в 2 ниже. На стандартные действия откликается дооолго, либо вообще ничего не делает.
Итог, имхо: "качество" IDE у ембаркадеро упало ниже плинтуса, по сравнению с борландом. Получился технологический монстр с кривой внутренней логикой. Если бы не необходимость использования новых возможностей, и присутствие folding-а кода... век бы на 7ке сидел.
Автору - Спасибо. Еще бы разобраться с принудительным сохранением позиций панелей (дабы не слетали при каждом перезапуске), и цены статьи не будет =). Есть конечно вариант ручками подправить файлы проектов, глянуть что за опции там остались, но... это уже изврат.
Лично у меня есть мнение, что багов в новой IDE не больше. Просто они сидят в другом месте. Там их не ожидает увидеть человек, работающий с 7-кой. В результате он считает, что "новая IDE бажная и работать с ней невозможно".
ОтветитьУдалитьК примеру, работаю я обычно в XE. И если просто меня спросить, то я скажу, что IDE стабильная и с багами я не сталкиваюсь. Я действительно так думаю (в том смысле, что мне так кажется/у меня такое ощущение). Но если подумать, то может я вспомню про что-то и скажу, что да, есть вот такое, но чтобы такого не было, надо делать вот так-то...
А потом наступает время, когда мне нужно поработать с этим же проектом в старых версиях Delphi. В том числе - и в D7. Вот тут и начинается. Начинают вылезать в самых неожиданных местах баги IDE и компилятора. И я начинаю думать: "боже, ну и глюкодром, и как на этом вообще можно работать?"
Хотя когда я (давно) использовал в основном D7, я ни о чём таком не думал... потому что в глаза это не бросалось. Да, иногда наталкивался. Но - иногда и по багу за раз. А тут, когда готовый проект переносишь, вся разница вылезает сразу. Вот тут и начинается.
Короче, эмоции это и не более.
Чисто моё мнение, понятно.
Не знаю не знаю... стремно как-то на 2010 переходить, уже так привык, но стал вопрос ребром по работе с гугл хромом под 7-ю версию библиотек нету, вот качается 2010 пока, спс автору за статью первым делом переделаю интерфейс, и начну тестить старые проги...
ОтветитьУдалитьВ RAD Studio XE3 не нашел в VLC Designer пункт Embedded designer, как теперь сделать окна как в 7 delphi?
ОтветитьУдалитьЧитайте внимательнее, там всё написано.
ОтветитьУдалитьВ RAD Studio XE3 не нашел в VLC Designer пункт Embedded designer, как теперь сделать окна как в 7 delphi? +1(
ОтветитьУдалитьАвтор, большое спасибо! Со студенческих времён не приходилось никаким образом сталкиваться с программированием, как и вообще с Windows, а тут вдруг срочно-обморочно понадобилось, уже почти отчаялась запустить, а всё оказалось так просто. Осталось лишь вспомнить, как скрестить мордочку на делфи с MySQL =)
ОтветитьУдалитьМногоуровневые закладки модулей для редактора кода как delphi 7 не сделать теперь. Вот это самая большая беда.
ОтветитьУдалитьЛюди, подскажите пожалуйста как в XE2 настроить рабочую папку проекта так же как в семерке. Что бы созданная программа искала нужные ей файли по относительным путям, начиная со своей папки...
ОтветитьУдалитьПол интернета перерыл и все ни как не могу найти ответ...
(((((
хелп
Да точно так же, как и в Delphi 7. Пути поиска указываются одинаково во всех версиях Delphi.
ОтветитьУдалитьАлександр, подскажи как...
ОтветитьУдалитьКогда я установил Семерку, то все созданные мной программы искали файлы по относительным путям, т.е. начинали с корня самой программы, что в свю очередь позволяло мне их носить куда угодно.
В ХЕ2 есть с этим бЯда...((( В качестве стартовой папки она устанавливает user/documents/ и соответственно моя программа понимает либо полные пути к файлам либо относительные, но от папки documents...
Вроде понятно изложил...)))
Сам пролазил настройки Делфы - ни чего не нашел...(((
PS. под поиском я понимаю обращение к файлам (база данных, ini-файл, dll и тд)..
ОтветитьУдалитьВ друг слово поиск путаницу наводит...))))
Если честно, ничего не понял.
ОтветитьУдалитьВопрос про настройку путей поиска IDE? Если да, то причём тут программа?
Вопрос про код в программе? Если да, то причём тут Delphi?
Вопрос случайно не в том, что Delphi 7 складывает .exe в папку с .dpr, а XE2 - в подпапку Win32\Debug? Если вопрос в этом, то измените Output путь с ".\$(Platform)\$(Config)" на "." (без кавычек, разумеется).
Александр, вопрос не складывании откомпелированных фалов.. С этим я понял как бороться. Хотя, стандартная настройка жить не мешает.
ОтветитьУдалитьПопробую по другому объяснить.
Вот пишу я простую программу называется, предположим, ReadFile.exe.
Задача программы прочитать первые восемь символов фала TargetFile.txt. Файл, который необходимо прочитать лежит в одной папке вместе с программой.
В семерке я писал относительный путь, просто указав имя файла TargetFile.txt. Дальше я мог переносить папку с программой на любой компьютер и программа всегда работала, находя файл у себя в корне.
ХЕ2 понимает только полные пути до целевых файлов (TargetFile.txt. ). Соответственно, я должен писать полный путь, например "c:\project1\TargetFile.txt".
Дальше при переносе программы на новый компьютер у меня начинаются проблемы, т.к. на компьютере, куда я перенес программу, я должен ее поместить именно по адресу "c:\project1\" вместе с целевым файлом, в противном случае ни чего работать не будет.
Вот вроде все.
Где-то должна быть настройка, которая позволят жить по относительным путям, а не только по полным... А найти я ее не могу...(((
Ну, здравствуйте, приехали.
ОтветитьУдалитьТекущий каталог задаётся внешним приложением - тем, кто вас запускает. Запускает вас Delphi - будет задавать его Delphi. Запускает его Проводник - будет задавать его Проводник.
И поскольку текущий каталог задаётся не вами, то крайне наивно делать относительно него какие-то предположения. Он может быть чем угодно. И ваш код, соответственно, должен быть к этому готов.
В частности, в Delphi XE2 .exe помещается в C:\Project1\Win32\Debug\Project1.exe - текущий каталог будет (по умолчанию) C:\Project1\Win32\Debug\, и файл C:\Project1\TargetFile.txt никак не будет найден.
Далее, если вашу программу запустят с ярлыка, где указана папка, отличная от папки вашей программы, то файл TargetFile.txt опять-таки не будет найден.
Итак, что можно с этим сделать?
Шаг 1, вариант А.
Идём в Project / Options / Delphi Compiler и переключаемся на профиль "All Configurations", затем меняем "Output directory" с ".\$(Platform)\$(Config)" на "." (без кавычек). Это заставит Delphi размещать .exe в C:\Project1\Project1.exe.
Шаг 1, вариант Б.
Идём в Run / Parameters и переключаемся на "32-bit Windows" под "All Configurations", затем вводим "$(OUTPUTDIR)\.\..\" (без кавычек) в Working directory. При этом, хотя .exe файл останется в C:\Project1\Win32\Debug\Project1.exe, но Delphi будет запускать .exe с текущей папкой C:\Project1\.
Шаг 2.
Делаем SetCurrentDir(ExtractFilePath(ParamStr(0))) первым действием в своей программе. Это действие установит текущий каталог явно. Т.е. мы проигнорируем значение текущего каталога от запустившего нас процесса, и явно установим своё собственное значение. В данном случае мы устанавливаем текущий каталог = папке с .exe-файлом.
Обращаю внимание, что здесь всё равно необходимо размещение C:\Project1\Project1.exe вместо C:\Project1\Win32\Debug\Project1.exe.
Шаг 3.
Используем абсолютною адресацию. Каждый раз, когда у нас на руках появляется относительное имя файла, всё, что мы можем с ним сделать - преобразовать в абсолютное.
Убираем то, что сделали на шаге 1 и шаге 2.
Спасибо, Александр. Буду пробовать.
ОтветитьУдалитьСкажите пожалуйста как в делфи 10 сделать чтобы когда дописываеш код в середину программы то что уже есть после не стиралось а сдвигалось? Раньше это было у меня но почему пропало без каких либо причин.
ОтветитьУдалитьНажать Insert?
УдалитьСпасибо помогло. А то мучался с DX10. :)
ОтветитьУдалитьОгромное спасибо!
ОтветитьУдалить