3 июля 2010 г.

Как настроить Delphi 2010, чтобы она выглядела как Delphi 7

Я не собираюсь обсуждать, какой интерфейс лучше - умалчиваемый в Delphi 2010 или old-school Delphi 7 (лично я предпочитаю новый), но я хочу показать, как вы можете настроить Delphi 2010 так, чтобы она выглядела и "чувствовалась" как Delphi 7.

Один из самых частых затыков при обновлении версии Delphi - незнакомый интерфейс. Человек вроде уже и хочет обновиться (всякие вкусности пощупать, часто - поддержку Windows Vista/Windows 7), но... родная 7-ка ближе к телу. Что ж, с этой статьёй у вас будет на одну причину меньше использовать Delphi 7 (а желающие всё же остаться на Delphi 7 читают тут).

Итак, по-умолчанию 2010-я студия имеет такой вид:

Delphi 2010 - вид по-умолчанию

Ниже я приведу набор шагов, которые нужно сделать, чтобы "превратить" Delphi 2010 в Delphi 7. Заметьте, что не все из перечисленных шагов нужно выполнять на вашей конкретной конфигурации - это зависит от ваших настроек. Некоторые шаги могут быть у вас уже сделаны.

1. Отстыковка окон.

Первое, что мы сделаем - отстыкуем окна. Для этого вы можете щёлкнуть на любом окне и сбросить галочку "Dockable":

Delphi 2010 - отстыковка отдельного окна

После этого окно отстыковывается от главного окна и будет плавать отдельно. В принципе, даже необязательно снимать галку: просто схватили блок за заголовок - и тащите. Он сам отстыкуется. Вот вид окна Delphi после отстыковки инспектора объектов:

Delphi 2010 - с отстыкованным инспектором объектов

Вы можете руками отстыковать все окна. Или вы можете просто переключиться на предопределённый шаблон раскладки окон (такой шаблон называется Desktop-ом или рабочим столом). Для этого разверните список рабочих столов в главном окне и выберите рабочий стол "Classic undocked":

Delphi 2010 - переключение на рабочий стол с отстыкованными окнами

Если вы не видите этой панели - вы можете переключиться на другой рабочий стол через меню ("View"/"Desktops"/"Classic undocked"):

Delphi 2010 - переключение на рабочий стол с отстыкованными окнами через меню

В результате у вас должно получиться что-то такое:

Delphi 2010 - вид с отстыкованными окнами

Как видите, все окна плавают - всего в два щелчка мыши!

2. Отстыковка дизайнера форм.

Второе, что мы сделаем - отстыкуем дизайнер форм, ведь отстыковать его методом, указанным выше, нельзя. Для этого мы идём в опции IDE ("Tools"/"Options"):

Delphi 2010 - открытие окна настроек IDE

В появившемся окне сбрасываем галочку "Embedded designer" в разделе "Environment Options"/"VCL Designer":

Delphi 2010 - отстыковывание дизайнера форм

После сброса галочки среда попросит у вас перезапуск:

Delphi 2010 - запрос на перезапуск после изменения настроек

Закрываем все окна и перезапускаем Delphi. После перезапуска дизайнер форм будет плавающим окном:

Delphi 2010 - вид с полностью отстыкованными окнами

Окей, щелчков здесь было больше и нам потребовался перезапуск 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":

Delphi 2010 - включение палитры компонент

Кстати, если панельки "Desktop" вы у себя не нашли (помните, выше, когда мы переключались на "Classic undocked"?), то вы также можете включить её тут - щёлкайте по пункту "Desktop". В любом случае, в итоге вы получаете свою палитру компонентов "в стиле Delphi 7":

Delphi 2010 - классический вид

Три щелчка - и любимая палитра компонент снова с вами.

4. Переключение сортировки в инспекторе объектов.

Последний шаг - инспектор объектов. В принципе, нельзя сказать, что это специфично для Delphi 2010 - в Delphi 7 у инспектора объектов тоже было два варианта отображения. Но, на всякий случай, я упомяну про это тут.

Вы можете переключаться между двумя видами инспектора объектов, щёлкая правой кнопкой по нему и выбирая "Arrange"/"be Category" или "Arrange"/"by Name":

Delphi 2010 - переключения вида инспектора объектов

Вот вид инспектора с сортировкой по категориям:

Delphi 2010 - сортировка инспектора объектов по категориям

А вот с сортировкой по именам:

Delphi 2010 - сортировка инспектора объектов по именам

Выберите вид, к которому вы привыкли в Delphi 7.

5. Устанавливаем справку из D7 в D2010.

Ещё одна претензия к Delphi 2010 - её изменившаяся справочная система. Позвольте мне снова остаться в стороне от вопроса что лучше - я просто покажу, как вы можете встроить свою любимую справку от Delphi 7 в Delphi 2010.

Для этого есть два способа:
  1. Минимальная интеграция - открытие справки отдельной командой.
  2. Максимальная интеграция - подмена штатной справки.
Первый способ проще и он не требует сторонних решений, плюс вы не теряете существующую функциональность. Но и по удобству он ниже: вам придётся вызывать справку отдельной командой.

Способ два посложнее, вам также понадобится скачать сторонний эксперт, но зато вы можете подменить встроенную справку. К сожалению, при этом вы лишаетесь справки по диалоговым окнам и прочим изменившимся за это время вещам. Впрочем, никто не запрещает вам вызывать встроенную справку руками через меню Help.

Итак, способ первый: скопируйте файлы справки от Delphi 7 на вашу машину (куда - не суть важно, главное, чтобы в записываемую папку). Далее, идите в меню настройки утилит "Tools"/"Configure tools":

Delphi 2010 - конфигурация утилит

В открывшемся окне щёлкайте по кнопке "Add" для добавления новой утилиты:

Delphi 2010 - добавление новой утилиты

После этого открывается окно создания команды вызова новой утилиты. Вводите такую информацию:

Delphi 2010 - создание команды вызова справки от Delphi 7

  • Title - любое. Это имя команды будет показываться в меню.
  • Program - "winhlp32.exe". Если вы работаете на Windows Vista или выше, вам нужно доустановить поддержку устаревшего формата справки, как указано в этой статье.
  • Working dir - каталог, куда вы положили файлы от справки Delphi 7.
  • Parameters - "-k $CURTOKEN d7.hlp". Вы также можете указать полный путь к D7.hlp (включая каталог, только не забудьте про кавычки, если ваш путь содержит пробелы), если у вас возникают проблемы с открытием справки. $CURTOKEN - это текущее слово в редакторе Delphi (раскройте список Macros, чтобы увидеть другие варианты). А "-k" - указание на открытие справки по слову в индексе. В принципе, вы можете убрать эту часть, оставив только имя файла справки.

После сохранения команды, вы теперь можете вызывать справку Delphi, выбирая её из меню:

Delphi 2010 - вызов справки Delphi 7 из меню Tools

Что касается способа два, то вам также нужно скопировать файлы справки Delphi 7 на свою машину (кто-бы сомневался!). Кроме того, вам также нужно доустановить поддержку справки WinHelp, если вы работаете в Vista или выше.

После подготовки вам нужно скачать с CodeCentral эксперт (расширение) к IDE для интеграции справки. Вот вариант 1. Вот вариант 2. Они весьма похожи и ставятся примерно одинаково, но мне больше понравился второй - он и покрасивше и позволяет использовать кнопку F1. Поэтому я буду описывать процесс для второго эксперта, но первый ставится полностью аналогично - надеюсь, вы сумеете при желании разобраться с ним самостоятельно по аналогии.

Для качала распакуйте скачанный архив. Лучше всего распаковывать в свою папку с проектами или вроде того. Далее, запускаете Delphi 2010 и открываете пакет из папки Packages. Варианта для Delphi 2010 там нет, но это не имеет значения - просто открывайте вариант для самой последней версии Delphi. Вот открытый пакет в менеджере проектов Delphi 2010:

Пакет DelphiHelpExpert открыт в менеджере проектов Delphi 2010

Далее щёлкайте по нему правой кнопкой и выбирайте Install:

Установка пакета (эксперта) из менеджера проектов

При этом эксперт будет скомпилирован и установлен в IDE. Всё, можете закрывать все файлы (сохранив изменения). Файлы с диска, понятно, удалять не надо :)

Теперь осталось только настроить эксперт. Для этого открываем меню "Help"/"Delphi Help Expert":

Delphi 2010 - вызов окна настроек эксперта Delphi Help

Откроется окно настроек, где вы можете задать аж три разных вида справки!

Настройка эксперта Delphi Help

Тут вообще всё тривиально: есть три типа справки - 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):

Открытая справка Delphi 7

Если же вы нажмёте Ctrl + F1, то откроется ваш браузер по-умолчанию с online-справкой (пример с тем же TRegistry):

Google Chrome с открытой страницей поиска в online-справке

Итак, последняя преграда пала перед нашим натиском :)

Бонус-примечание: если вы хотите ещё больше возможностей со справкой и чувствуете, что вы уже не совсем начинающий - вы можете установить этот навороченный IDE Expert, вместо простых экспертов, упомянутых выше. Для него есть даже видео-инструкция. Посмотрите, не пожалеете: будете потом облизываться и срочно его себе поставите :D (лично я поставил себе именно его)

6. Прочие финты ушами.

В заключение хотелось ещё сказать, что вы можете стыковать любые окна с любыми другими в любых комбинациях. Чтобы окно можно было пристыковать - оно должно быть "Dockable". Помните, мы снимали такую галочку в первом пункте? Вот, если хотите пристыковать окно - её надо установить, если она не стоит. А если вы двигаете окно, и оно очень некстати хочет пристыковаться - зажмите Ctrl.

Кроме стыковки вы также можете "приколоть" окно к другому, на манер панелек в Photoshop. Для этого перетащите окно на закладку панели в другом окне. А если закладок у вас на экране нет - то кидайте одно окно на центр другого (если кидать на сторону - оно пристыкуется вместо прикалывания). К примеру, бывает достаточно удобно совместить все вспомогательные окна в одно окно:

Delphi 2010 - все вспомогательные окна приколоты к одному окну

Когда я ещё сидел на Delphi 7, я именно так и делал.

7. Итог.

Итак, мы смогли "сделать из Delphi 2010 Delphi 7" и сделать это достаточно просто. Никаких сторонних прибамбасов - всё штатными средствами (окей: кроме справки). Ну а теперь, найдите 10 отличий (фоновый рисунок не считается! :D ):

Delphi 7

55 комментариев :

  1. Анонимный3 июля 2010 г., 18:27

    Статья хорошая, хотя она частично повторяет ролик
    "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 ?
    Если да, то как ?

    ОтветитьУдалить
  2. >>> Статья хорошая, хотя она частично повторяет ролик

    Я думаю, что тут сложно сказать что-то уникальное.

    >>> P.S. 2GunSmoker: Можно ли вам задать несколько небольших вопросов по EurekaLog ? Если да, то как ?

    Пишите на почту (в левой колонке есть ссылка на мой профиль, где есть пункт "Отправить письмо").

    ОтветитьУдалить
  3. >Человек вроде уже и хочет обновиться (всякие вкусности пощупать, часто - поддержку Windows Vista/Windows 7), но... родная 7-ка ближе к телу
    Каким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?

    ОтветитьУдалить
    Ответы
    1. Каким же надо быть придурком, чтоб других называть идиотами?

      Удалить
  4. Анонимный5 июля 2010 г., 12:19

    2 GunSmoker:
    А что по поводу проблемы с IDE D2010 в стиле D7, описанной в первом комментарии ?
    Или у вас эта ошибка не наблюдается ?

    ОтветитьУдалить
  5. >>> Каким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?

    Сколько людей, столько и мнений. Склонность проецировать свой способ мышления на других людей называется эффектом ложного согласия.

    >>> А что по поводу проблемы с IDE D2010 в стиле D7, описанной в первом комментарии ?

    У меня сейчас нет времени посмотреть.

    ОтветитьУдалить
  6. Анонимный6 июля 2010 г., 19:54

    >> Пишите на почту (в левой колонке есть ссылка на мой профиль, где есть пункт "Отправить письмо"). Для того, что бы воспользоваться "Отправить письмо" из профиля, надо иметь аккаунт на гугле, а у меня его нет.
    Я попробую воспользоваться ссылкой "Отправить сообщение по электронной почте" (иконка письма под статьей), но там ограничение на 300 символом, придется бить письмо на части.

    ОтветитьУдалить
  7. Этот комментарий был удален автором.

    ОтветитьУдалить
  8. Анонимный8 июля 2010 г., 21:47

    > Каким надо быть идиотом чтобы только из-за внешнего вида среды отказываться от всех вкусностей системы дельфи 2010 в пользу ископаемого кала дельфи 7?

    Ломание привычек - на самом деле, серьёзный аргумент. Достоинство Delphi 2010 в том, что на неё можно перейти с Delphi 7, не изменяя своим привычкам, что и продемонстрировал Александр ;)

    ОтветитьУдалить
  9. Анонимный9 июля 2010 г., 12:49

    > D2010 начинает глючить. Выражается это в том, что если настроить тулбары с кнопками (например включить тулбары Align, View, Components), потом открыть какой нибудь рабочий проект в ней и перезапустить D2010, то все тулбары с кнопками съезжают со своих мест.


    А ты попробуй настраивать панельки с _открытым_ проектом. Просто когда проект открываешь, там могут кнопки новые включаться и из-за них панельки могут поехать.

    ОтветитьУдалить
  10. Анонимный9 июля 2010 г., 20:18

    Если я не ошибаюсь, то когда открываешь новый проект, на тулбаре новый кнопки (или новые палитры) не появляются.
    Включаться и отключаться (Enabled/Disabled) кнопки могут, но если из за этого слетают тулбары то это однозначно баг D2010.

    ОтветитьУдалить
  11. Анонимный10 июля 2010 г., 4:46

    Смотря какие кнопки. Некоторые исчезают. Вроде это кнопка опций проектов, если не путаю. Потому что их там две - одна для текущего проекта, а вторая - для дефолтного. Когда проект закрываешь, кнопка опций текущего проекта убирается. Или что-то такое. Щас точно не помню, но попню, что когда настраивал свою среду, у меня панельки плыли именно из-за меняющихся кнопок. Я просто вывел максимальный набор и оставил место на всяк случай

    ОтветитьУдалить
  12. Кнопка проверки синтаксиса тоже исчезает.

    ОтветитьУдалить
  13. Все замечательно, только у меня отсутствует в меню пункт "Component" при щелчке правой кнопкой мыши на главном окне... Подскажите, пожалуйста, как вставить палитру компонент в такой ситуации?

    ОтветитьУдалить
  14. Если у вас Delphi 2010 или Delphi XE и вы щёлкаете по главному окну IDE (а не окну проекта) - то пункт там будет. Иначе - нет.

    ОтветитьУдалить
  15. Александр, в эбауте указаны следующие сведения: Borland® Delphi® for Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation. Я так понимаю, что это delphi 2010... В меню есть все те же пункты, что и в скриншоте (немного в другом порядке, правда), за исключением component.

    ОтветитьУдалить
  16. Delphi 10 - это Delphi 2006.
    Delphi 14 - это Delphi 2010.

    ОтветитьУдалить
  17. упс... сорь за лишние буквы

    ОтветитьУдалить
  18. Как в Delphi-2010 отключить упорядочивание обработчиков событий. В прежних версиях Delphi они вмегда добавлялись в конец модуля, а теперь бог знает куда пишеться.
    Всем эта штука хороша, вот если-бы еще не сортировала методы, цены бы ей не было.

    ОтветитьУдалить
  19. Всем привет, "затем щёлкните правой кнопкой по главному окну и выберите палитру "Component"" к сожалению у меня нету этого, всё перерыл, а Component не нащёл, что можно сделать?

    ОтветитьУдалить
  20. Поставить Delphi 2010 или выше.

    Поставить нормальную.

    Поставить нормально.

    ОтветитьУдалить
  21. У меня стоит CodeGear RAD Studio 2007 v11.0.2902.10471 Architect ENGLISH, версия вроде бы актуальная, выглядить также как и тут на скриншотах, все пунткты кроме палитры компонентов удалось выполнить, может в настройках как-нибудь по другому можно добавить?

    ОтветитьУдалить
  22. Какое слово в "Поставить Delphi 2010 или выше" непонятно?

    ОтветитьУдалить
  23. А у вас есть ссылки на Delphi 2010?

    ОтветитьУдалить
  24. Спасибо, делфи я поставил, у вас не найдётся регистрационного файла? Тот, который был у меня не работает ...

    ОтветитьУдалить
  25. Здесь не обсуждается взлом и пиратский софт.

    Я предпочитаю использование лицензионного ПО, когда это возможно (лицензионное <> платное). Чего и вам желаю.

    ОтветитьУдалить
  26. Хороший пост. Правда я тоже за новый интерфейс ) Вот что мне реально неудобно в Delphi 2010 - не очень хорошо работается в ней с двумя мониторами. В design time все в порядке, но после запуска приложения часто компоненты IDE разъезжаются, приходится руками все восстанавливать.
    Работаю также и в MS VS 2010 - там вот с несколькими мониторами стало все в порядке. Кстати, не знаете, может в Delphi XE тоже эту проблему решили?

    ОтветитьУдалить
  27. спасибо за статью .. ваще ошалел когда увидел интерфейс этого чуда нового .. сраного чуда .. спасибо за статью .. еще раз !!

    ОтветитьУдалить
  28. Добрый день!

    в delphi 7 исчезла панель с компонентами...и никак не отображается. Проекты открываются нормально и компилируются.
    Где что подправить?

    ОтветитьУдалить
  29. Внимание, вопрос: какое отношения имеют ваши проблемы к Delphi 2010?

    ОтветитьУдалить
  30. Надеялся на то что добрый люди тут смогут мне помочь...

    ОтветитьУдалить
  31. Добрый вечер!
    В моем приложении с десяток форм. В один прекрасный момент одна из них перестала появляться. То есть: я нажимаю Shift + F12, выбираю Form21 и после этого появляется код написанный в модуле этой формы, но Сама форма на экране не появляется...
    Что делать? Помогите плиз

    ОтветитьУдалить
  32. Спасибо! Добавлю страничку в закладки, на случай, если не привыкну к новому интерфейсу.

    ОтветитьУдалить
  33. А как настроить Delphi 7, чтобы она выглядела как 2010?

    ОтветитьУдалить
  34. {Примечание: Начиная с Delphi XE3, опция "Embedded designer" скрыта из настроек среды, но её всё ещё можно изменить вручную...}
    Спасибо ! А уж подумаю, что все - прощай нормальная работа, когда необходимо делать форму большого размера, скажем, равного разрешению монитора :-)

    ОтветитьУдалить
  35. Спасибо! Очень пригодилось

    ОтветитьУдалить
  36. На счет перехода с 7ки на новые версии IDE (в моем случае на XE2):
    1) За первые же несколько минут знакомства, несколько раз наткнулся на критические в самом IDE. В дальнейшем в процессе работы, критические вылавливал в разы чаще, чем старой доброй 7ке.
    2) При перестроении интерфейса в IDE, столкнулся с проблемой не сохранения позиций панелей, кроме как по базовому шаблону. Вне шаблона вообще все убирает под чистую...
    3) Скорость работы IDE, на глаз, раза в 2 ниже. На стандартные действия откликается дооолго, либо вообще ничего не делает.

    Итог, имхо: "качество" IDE у ембаркадеро упало ниже плинтуса, по сравнению с борландом. Получился технологический монстр с кривой внутренней логикой. Если бы не необходимость использования новых возможностей, и присутствие folding-а кода... век бы на 7ке сидел.


    Автору - Спасибо. Еще бы разобраться с принудительным сохранением позиций панелей (дабы не слетали при каждом перезапуске), и цены статьи не будет =). Есть конечно вариант ручками подправить файлы проектов, глянуть что за опции там остались, но... это уже изврат.

    ОтветитьУдалить
  37. Лично у меня есть мнение, что багов в новой IDE не больше. Просто они сидят в другом месте. Там их не ожидает увидеть человек, работающий с 7-кой. В результате он считает, что "новая IDE бажная и работать с ней невозможно".

    К примеру, работаю я обычно в XE. И если просто меня спросить, то я скажу, что IDE стабильная и с багами я не сталкиваюсь. Я действительно так думаю (в том смысле, что мне так кажется/у меня такое ощущение). Но если подумать, то может я вспомню про что-то и скажу, что да, есть вот такое, но чтобы такого не было, надо делать вот так-то...

    А потом наступает время, когда мне нужно поработать с этим же проектом в старых версиях Delphi. В том числе - и в D7. Вот тут и начинается. Начинают вылезать в самых неожиданных местах баги IDE и компилятора. И я начинаю думать: "боже, ну и глюкодром, и как на этом вообще можно работать?"

    Хотя когда я (давно) использовал в основном D7, я ни о чём таком не думал... потому что в глаза это не бросалось. Да, иногда наталкивался. Но - иногда и по багу за раз. А тут, когда готовый проект переносишь, вся разница вылезает сразу. Вот тут и начинается.

    Короче, эмоции это и не более.

    Чисто моё мнение, понятно.

    ОтветитьУдалить
  38. Не знаю не знаю... стремно как-то на 2010 переходить, уже так привык, но стал вопрос ребром по работе с гугл хромом под 7-ю версию библиотек нету, вот качается 2010 пока, спс автору за статью первым делом переделаю интерфейс, и начну тестить старые проги...

    ОтветитьУдалить
  39. В RAD Studio XE3 не нашел в VLC Designer пункт Embedded designer, как теперь сделать окна как в 7 delphi?

    ОтветитьУдалить
  40. Читайте внимательнее, там всё написано.

    ОтветитьУдалить
  41. Анонимный10 мая 2013 г., 23:15

    В RAD Studio XE3 не нашел в VLC Designer пункт Embedded designer, как теперь сделать окна как в 7 delphi? +1(

    ОтветитьУдалить
  42. Автор, большое спасибо! Со студенческих времён не приходилось никаким образом сталкиваться с программированием, как и вообще с Windows, а тут вдруг срочно-обморочно понадобилось, уже почти отчаялась запустить, а всё оказалось так просто. Осталось лишь вспомнить, как скрестить мордочку на делфи с MySQL =)

    ОтветитьУдалить
  43. Многоуровневые закладки модулей для редактора кода как delphi 7 не сделать теперь. Вот это самая большая беда.

    ОтветитьУдалить
  44. Люди, подскажите пожалуйста как в XE2 настроить рабочую папку проекта так же как в семерке. Что бы созданная программа искала нужные ей файли по относительным путям, начиная со своей папки...
    Пол интернета перерыл и все ни как не могу найти ответ...
    (((((
    хелп

    ОтветитьУдалить
  45. Да точно так же, как и в Delphi 7. Пути поиска указываются одинаково во всех версиях Delphi.

    ОтветитьУдалить
  46. Александр, подскажи как...
    Когда я установил Семерку, то все созданные мной программы искали файлы по относительным путям, т.е. начинали с корня самой программы, что в свю очередь позволяло мне их носить куда угодно.
    В ХЕ2 есть с этим бЯда...((( В качестве стартовой папки она устанавливает user/documents/ и соответственно моя программа понимает либо полные пути к файлам либо относительные, но от папки documents...
    Вроде понятно изложил...)))
    Сам пролазил настройки Делфы - ни чего не нашел...(((

    ОтветитьУдалить
  47. PS. под поиском я понимаю обращение к файлам (база данных, ini-файл, dll и тд)..
    В друг слово поиск путаницу наводит...))))

    ОтветитьУдалить
  48. Если честно, ничего не понял.

    Вопрос про настройку путей поиска IDE? Если да, то причём тут программа?
    Вопрос про код в программе? Если да, то причём тут Delphi?

    Вопрос случайно не в том, что Delphi 7 складывает .exe в папку с .dpr, а XE2 - в подпапку Win32\Debug? Если вопрос в этом, то измените Output путь с ".\$(Platform)\$(Config)" на "." (без кавычек, разумеется).

    ОтветитьУдалить
  49. Александр, вопрос не складывании откомпелированных фалов.. С этим я понял как бороться. Хотя, стандартная настройка жить не мешает.
    Попробую по другому объяснить.
    Вот пишу я простую программу называется, предположим, ReadFile.exe.
    Задача программы прочитать первые восемь символов фала TargetFile.txt. Файл, который необходимо прочитать лежит в одной папке вместе с программой.
    В семерке я писал относительный путь, просто указав имя файла TargetFile.txt. Дальше я мог переносить папку с программой на любой компьютер и программа всегда работала, находя файл у себя в корне.
    ХЕ2 понимает только полные пути до целевых файлов (TargetFile.txt. ). Соответственно, я должен писать полный путь, например "c:\project1\TargetFile.txt".
    Дальше при переносе программы на новый компьютер у меня начинаются проблемы, т.к. на компьютере, куда я перенес программу, я должен ее поместить именно по адресу "c:\project1\" вместе с целевым файлом, в противном случае ни чего работать не будет.
    Вот вроде все.
    Где-то должна быть настройка, которая позволят жить по относительным путям, а не только по полным... А найти я ее не могу...(((

    ОтветитьУдалить
  50. Ну, здравствуйте, приехали.

    Текущий каталог задаётся внешним приложением - тем, кто вас запускает. Запускает вас 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.

    ОтветитьУдалить
  51. Спасибо, Александр. Буду пробовать.

    ОтветитьУдалить
  52. Скажите пожалуйста как в делфи 10 сделать чтобы когда дописываеш код в середину программы то что уже есть после не стиралось а сдвигалось? Раньше это было у меня но почему пропало без каких либо причин.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и (опционально) ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.