компилятор это проглатывает нормально (F9) и приложение запускается и без проблемм работает, но при попытке сделать действие в редакторе кода например автосоздание функции объявленной в классе (ctrl+shift+c) - редактор после раздумий несколко секунд выдает мне что: "identefier expected but ';' found после слова record, то есть он воспринимает его как уже объявленный тип. Причем в панели structure есть список классов только до этого объявления, дальше пусто. На delphi 7 работало, уже поставил кучу фиксов - но не помогает. Может кто знает в чем проблемма? Ну не хочеться объявлять эти записи отдельно , так как используются только в одном месте.
Yegor, в RADStudio редактор более придирчив к синтаксису чем компилятор, он не любит создание типов внутри объявления класса (что кстати хоть и переваривается компилятором не считается хорошим тоном программирования)
короче чтобы это заработало надо просто более правильно и красиво это оформить:
Спасибо так и сделаю. Я недавно только узнал что записи можно объявлять сразу как переменные и был этому дико рад, теперь прийдеться отвыкать .
В delphi меня злит что объявление и тело методов находиться в разных метсах, прихордится постоянно перемещаться по страницам. Хочу как в Java, можно даже класс в классе и все его методы сразу объявить и реализовать, это для меня удобно.
Yegor, зато не надо много крутить прокрутку чтобы посмотреть весь список методов и полей класса), а для перемещения от обьявляния метода к его реализации и наоборот реализуется кликом мышкой по его названию удерживая клавишу Ctrl (правда пашет это только если все класса в модуле объявлены "красиво" для редактора...)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor, я перемещаюсь по ctrl+shift+up(dn), а для удобного просмотра реализованных методов и полей есть специальные панели. Вобщем все на любителя.
Переписал все объявления записей отдельно от класса - все норм. Кстати после компиляции на 2006 появилось ощущение улучшения стабильности работы моей программы, у меня была большая проблемма с взаимными блокировками. Например vcl компонент timagelist (в нем я храню все используемые иконки), напрочь зависал при использовании tuj метода add из потока если был в критичесской секции.
xkor, метод Synhronize можно использовать если я для потоков использую класс TThread, а так мне пришлось вынести работу с этим компонентом в функции вызываемую по postmessage. Проблема в том что в основном потоке перерисовываются некоторые таблицы, карта, инвентарь и данные в них берутся из общих массивов. Соотвтетственно пришлось например на методы OnData, OnPaint, где я реализовал свою прорисовку или заполнение данными, вводить те же критичесские секции, а поэтому метод Sinhronize не сможет выполниться пока основной поток неосвободиться. Именно поэтому я сделал именно postmessage. Но тут есть тоже определенные нестыковки, даже незнаю как лучше сделать.
при передаче сообщения по postmessage вместе с сообщением можно передавать указатель на структуру в которую скопированы необходимые данные. не забываем разрушай эту структуру после обработки в самом обработчике.
зы. почему не сендмессейдж ?. или блокировка доп нитей нежелательна ?
alexteam, сендмессейдж будет ожидать освобождения основного потока чтобы его обработать, а он как рас может в данный момент быть на "паузе" из за той же критичесской сесии.
Добавлено через 12 часов 46 минут
Поработал я денек на этой среде и появилось громадное желание вернуться к Delphi 7. Редактор кода по непонятным причинам иногда начинает о чем то думать секунд по 10-20, находит синтаксические ошибки и подчеркивает их красным, хотя ошибки реально нет (после перезагрузки почему то уже все норм), очень медленно запускаеться проект (какие то тут глюки с перерисовкой форм). Скажите это только у меня или реально delphi 7 рулит, может стоит более новую версию поставить?
Последний раз редактировалось Yegor, 29.07.2009 в 01:53.
Причина: Добавлено сообщение