Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7 / 25 сообщений из 64, страница 1 из 3
03.11.2021, 13:51
    #40108950
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Добрый день!



Перешла с Delphi 7 на Delphi XE8 после 15 лет работы на Delphi 7.

В некотором ужасе от непривычности новой среды разработки - те действия, что в Delphi 7 были элементарными - на XE-8 превращаются в целый квест.



1) Отладчик какой-то странный - вместо того, чтобы нормально пройтись по коду - скачет где захочет.

Например, надо пройтись по процедуре SendEMail - так просто по шагам как в Delphi 7 не получается - отладчик периодически уходит в какие-то левые модули, в D7 такого небыло. Да, у меня в программе много разных таймеров. Можно ли как-то настроить отладчик - чтобы не уходил в определённые модули? Например, запретить ему уходить в модули VCL и в некоторый список из моих модулей?

Может, как-то можно отиключить все таймеры в программе (не трогая при этом саму программу) чтобы Delphi по ним не прыгала?

Как запретить прыгать по потокам - разобралась уже - хотя это тоже было неприятно.

Да, про отличие F7 и F8 в курсе - но похоже, тут дело не в этом.



2) Не получается открыть файл проекта dpr для правки. Казалось бы, в Delphi 7 делалось элементарно.

File--Open-->

*.dpr набираем в поле

выбираем файл проекта

Выбираем тип файла

Delphi unit (*.pas)

и нормально открываем

В Delphi XE8 так не получается, приходится открывать файл dpr в Блокноте, портить код чтобы была синтаксическая ошибка и тогда Delphi при нажатии F9 уже показывает данный файл.



3) Панели разные занимают слишком много места на экране. Object Inspector, Project Manager и прочее. Никак не получается уменьшить. Я понимаю конечно, что нужно работать в разрешении 1920 на 1080, а правильные программы должны подстраивать шрифт под разрешение - но на практике это отнюдь не так, программы многие игнорируют разрешение и показывают на экране мелочь при 1920 на 1080, хочется работать при меньшем разрешении экрана, по-другому глаза не позволяют.

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



P. S. Про статью GunSmoker на эту тему в курсе, читала - но эти вопросы там не раскрыты ...
...
Рейтинг: 0 / 0
03.11.2021, 14:05
    #40108955
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
1. Use Debug DCU = False.

2. "View Source" на проекте.

3. Докируй панели друг в друга. Используй классическую панель компонентов вместо новой.

http://www.rgreat.ru/tmp/Delphi/Clipboard02.png
...
Рейтинг: 0 / 0
03.11.2021, 14:07
    #40108956
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87
вместо того, чтобы нормально пройтись по коду - скачет где захочет.
Приложение многопоточное?
Наталья87
уходит в какие-то левые модули
В левые модули уходить не может, только в используемые
Наталья87
Да, у меня в программе много разных таймеров
Таймеры бывают разные. Какие у вас?
Наталья87
чтобы не уходил в определённые модули?
В начале модуля написать
Код: pascal
1.
{$D-}


Наталья87
запретить ему уходить в модули VCL
Снять галку Use debug DCUs
Наталья87
2) Не получается открыть файл проекта dpr для правки
Меню Project -> View Source
Наталья87
. Никак не получается уменьшить
Как это?
Наталья87
Как уменьшить шрифт и размеры панелей?
Мышкой схватить за край и уменьшить
...
Рейтинг: 0 / 0
03.11.2021, 14:12
    #40108958
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87

3) Панели разные занимают слишком много места на экране. Object Inspector, Project Manager и прочее. ...

Не знаю, кто как делает, у меня все боковые панели, кроме Object Inspector - скрывающиеся (обычно).
...
Рейтинг: 0 / 0
03.11.2021, 14:49
    #40108968
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
авторПриложение многопоточное?

Да

авторТаймеры бывают разные. Какие у вас?

TTimer

авторВ начале модуля написать
Код: pascal
1.
 {$D-}



Спасибо

автор
Наталья87
запретить ему уходить в модули VCL
Снять галку Use debug DCUs

Немного по-другому называется, спасибо нашла отключила

автор
Наталья87
2) Не получается открыть файл проекта dpr для правки
Меню Project -> View Source

Гениально просто ...

автор
Наталья87
. Никак не получается уменьшить
Как это?
Наталья87
Как уменьшить шрифт и размеры панелей?
Мышкой схватить за край и уменьшить
[/quote]

Так ведь ничего не прочитать будет. Шрифт-то не уменьшается.
...
Рейтинг: 0 / 0
03.11.2021, 16:06
    #40108996
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87,

мне интересно, чем аргументируется переход на глубоко устаревшую версию делфи, когда есть бесплатная 10.4.2 CE?
...
Рейтинг: 0 / 0
03.11.2021, 16:12
    #40108997
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
asutp2,

"бесплатная"? :)
...
Рейтинг: 0 / 0
03.11.2021, 16:13
    #40108998
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87
TTimer
TTimer может работать только в главном потоке. Если у вас при отладке кода происходит переход в обработчик OnTimer, значит у вас вызывается Application.ProcessMessages. А теперь вопрос - зачем вы его вызываете?
Наталья87
Шрифт-то не уменьшается.
А можно скриншот?
...
Рейтинг: 0 / 0
03.11.2021, 16:43
    #40109019
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
[quote автор]
_Vasilisk_
Наталья87
TTimer
TTimer может работать только в главном потоке. Если у вас при отладке кода происходит переход в обработчик OnTimer, значит у вас вызывается Application.ProcessMessages. А теперь вопрос - зачем вы его вызываете?


Чтобы программа не зависала при длительных операциях. Без Application.ProcessMessages работа с программой станет некомфортной для пользователя. Кстати, если даже вызвать обычный ShowMessage без Application.ProcessMessages - всё равно отладчик ускачет в обработки TTimer.

Отключать вручную все таймеры в программе ради отладки как-то не хочется.

Так что этих Application.ProcessMessages в программе очень много и от них не уйти. Но в Delphi 7 это не приводило к тому, чтобы отладчик скакал по таймерам, а в XE-8 скачет отсюда и вопрос как запретить отладчику прыгать именно по таймерам.
...
Рейтинг: 0 / 0
03.11.2021, 16:55
    #40109029
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87Чтобы программа не зависала при длительных операциях.

Вменяемые программисты используют для этого потоки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.11.2021, 17:00
    #40109031
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87,

может это поможет
...
Рейтинг: 0 / 0
03.11.2021, 18:07
    #40109054
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Dimitry Sibiryakov

Наталья87Чтобы программа не зависала при длительных операциях.

Вменяемые программисты используют для этого потоки.


Потоки уже и так используются, их в программе пара десятков штук. Не всё удобно делать на потоках, часто нужно чтобы код выполнялся именно в главном потоке.
...
Рейтинг: 0 / 0
03.11.2021, 18:22
    #40109056
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87
Не всё удобно делать на потоках, часто нужно чтобы код выполнялся именно в главном потоке.

Выбирайте либо "удобно" вам, либо юзеру.

Хотя отлаживать потом код с кучей Application.ProcessMessages - это тоже то еще "удобство".
...
Рейтинг: 0 / 0
03.11.2021, 21:42
    #40109102
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
rgreat
Наталья87
Не всё удобно делать на потоках, часто нужно чтобы код выполнялся именно в главном потоке.

Выбирайте либо "удобно" вам, либо юзеру.

Хотя отлаживать потом код с кучей Application.ProcessMessages - это тоже то еще "удобство".


Юзеру удобнее как раз чтобы код выполнялся в главном потоке - не такой уж это сложный код в главном потоке, чтобы тормозить компьютер. Потому что если делать в несколько потоков - потом в итоге все глючит и работает еще медленнее, чем одним потоком.

Таймеры наверное можно отключить создав наследника класса TTimer и подключив его во все формы. Но хотелось бы как-то стандартными средствами отладчика настроить чтобы код не гулял по таймерам. Как сделать чтобы отладчик не гулял по потокам в принципе уже понятно - осталось с таймерами разобраться.
...
Рейтинг: 0 / 0
03.11.2021, 21:47
    #40109103
Наталья87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
rgreat
Наталья87
Не всё удобно делать на потоках, часто нужно чтобы код выполнялся именно в главном потоке.

Выбирайте либо "удобно" вам, либо юзеру.

Хотя отлаживать потом код с кучей Application.ProcessMessages - это тоже то еще "удобство".


Так причем тут конкретно Application.ProcessMessages? Достаточно показать обычное ShowMessage или что либо еще графическое, диалог юзеру какой-нибудь и Application.ProcessMessages уже автоматом выполнится (и отладчик пойдет гулять по таймерам - удивительным образом D7 так не делал)? Даже если старательно из программы это вычистить.
...
Рейтинг: 0 / 0
03.11.2021, 22:14
    #40109105
zedxxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87
Потому что если делать в несколько потоков - потом в итоге все глючит и работает еще медленнее, чем одним потоком.

Похоже, кому-то надо срочно прокачать скилы многопоточного программирования.
...
Рейтинг: 0 / 0
04.11.2021, 00:25
    #40109121
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Наталья87
Так что этих Application.ProcessMessages в программе очень много и от них не уйти.
Есть две функции, которые вызывать не нужно никогда. Вообще никогда. Это Application.ProcessMessages и Sleep
Наталья87
Чтобы программа не зависала при длительных операциях.
Для этого, внезапно, используются потоки
Наталья87
Кстати, если даже вызвать обычный ShowMessage без Application.ProcessMessages - всё равно отладчик ускачет в обработки TTimer.
Что логично. Потому что запустится обработка очереди сообщений.
...
Рейтинг: 0 / 0
04.11.2021, 08:54
    #40109150
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
_Vasilisk_
Sleep

Я иногда пользуюсь.
...
Рейтинг: 0 / 0
04.11.2021, 14:30
    #40109212
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
FreeAdman
_Vasilisk_
Sleep
Я иногда пользуюсь.
Единственное адекватное применение - какие-то тестовые приложения. Всё.
...
Рейтинг: 0 / 0
04.11.2021, 14:50
    #40109215
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
_Vasilisk_,

Заменять короткие Sleep на что-то типа WaitForSingleObject - довольно громоздко и не то что бы сильно важно.

Перфекционизм это.
...
Рейтинг: 0 / 0
04.11.2021, 15:02
    #40109217
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
_Vasilisk_
FreeAdman
пропущено...
Я иногда пользуюсь.
Единственное адекватное применение - какие-то тестовые приложения. Всё.


При переборке файлов из каталогов почему нельзя применить sleep(10), например, для уменьшения нагрузки на диск чтобы другим приложением не было так тесно, например, на сервере? :)

Или всё-таки предлагаете такое дело вынести в отдельный поток, а таймером его приостанавливать \ возобновлять? :))

Ну, ок. А если у нас прога по бэкапу и в конфиге задано чёткое количество копируемых файлов в секунду, например, 20 файлов, то с примененим sleep гораздо проще, чем отсчитать счётчик до 20 и послать сигнал на приостановку потока - этож сплошная куча ненужного говнокода.
...
Рейтинг: 0 / 0
04.11.2021, 15:07
    #40109218
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
FreeAdmanПри переборке файлов из каталогов почему нельзя применить sleep(10), например,
для уменьшения нагрузки на диск чтобы другим приложением не было так тесно,
например, на сервере? :)

Потому что диск невообразимо медленнее процессора и 10 миллисекунд ничего не
дадут. Если хочется уменьшения нагрузки - надо понижать приоритет своего
ввода-вывода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.11.2021, 15:13
    #40109222
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Dimitry Sibiryakov
FreeAdmanПри переборке файлов из каталогов почему нельзя применить sleep(10), например,
для уменьшения нагрузки на диск чтобы другим приложением не было так тесно,
например, на сервере? :)

Потому что диск невообразимо медленнее процессора и 10 миллисекунд ничего не
дадут. Если хочется уменьшения нагрузки - надо понижать приоритет своего
ввода-вывода.

А причём тут ЦП?
Вы снова глупости пишите. Приоритет ввода-вывода и приостановка работы на n время — это не одно и тоже.

Ибо во втором случае диск не нагружен на 100% в общем и целом. Вам же не объяснить элементарные моменты.
...
Рейтинг: 0 / 0
04.11.2021, 15:16
    #40109224
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
FreeAdmanПриоритет ввода-вывода и приостановка работы на n время — это не одно и тоже.

Да. Потому что второе не решает проблему нагрузки на сервер. Но вам же всё равно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.11.2021, 15:20
    #40109226
FreeAdman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7
Dimitry Sibiryakov
FreeAdmanПриоритет ввода-вывода и приостановка работы на n время — это не одно и тоже.

Да. Потому что второе не решает проблему нагрузки на сервер. Но вам же всё равно...

Я писал когда-то такую утилиту на Лазарусе хз сколько лет назад, и знаете чего? — Всё работает без проблем нагрузки на сервер. Я бы даже сказал: шикарно работает. А вам бы больше учиться, да меньше поучать.

А если софт работает на виртуалке - Ваш приоритет до одного места.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Настройка Delphi XE8 чтобы было удобно работать как в Delphi 7 / 25 сообщений из 64, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]