Комментарии 25
Хехе. Этой теме с граблями в Richedit уже лет 20. Я, когда делал My Notes Center (.com), наступил на них на все. Даже как-то пообщался с разработчиком riched20.dll из Microsoft по некоторым вопросам.
Мой совет — не использовать Richedit для редактирования plain text. Лучше SynEdit или что-то подобное, в исходниках. Вам ведь и подсветка синтаксиса понадобится и автодополнения и прочие подсказки. Заодно лучше поймете внутренности компонентов для работы с текстом.
Мой совет — не использовать Richedit для редактирования plain text. Лучше SynEdit или что-то подобное, в исходниках. Вам ведь и подсветка синтаксиса понадобится и автодополнения и прочие подсказки. Заодно лучше поймете внутренности компонентов для работы с текстом.
Ну, по крайней мере, граблей с адресацией как оказывается нет. Все достаточно просто :-)
Сделать простую подсветку синтаксиса это тоже не сложно, по крайней мере для этого мне точно не понадобиться сторонний компонент…
Вот если SynEdit умеет еще и регулярными выражениями работать при подсветке и может проверять написанное при помощи этих выражений — тогда это интересно !
Сделать простую подсветку синтаксиса это тоже не сложно, по крайней мере для этого мне точно не понадобиться сторонний компонент…
Вот если SynEdit умеет еще и регулярными выражениями работать при подсветке и может проверять написанное при помощи этих выражений — тогда это интересно !
Тихо, удалите пост, пока Дельфи Хейтеры не прибежали )).
а это кто такие ?!
Это те кто прячется в Тени, С клинками в рукавах, они воют с сообществом Тамплиеров (Dummies'ov)
Защищая честь и грамотность святого хабра ))
Защищая честь и грамотность святого хабра ))
Переделанный анекдот про бомжей и книжку по ТурбоПаскаль из помойки:
-Глянь, Петрович, неужели на Дельфях еще кто-то пишет?!
-Глянь, Петрович, неужели на Дельфях еще кто-то пишет?!
Почему Дельфи (который вроде как уже и не Дельфи), а не православный Лазарус? И не надо так кричать восклицательными знаками в тексте и напирать на то, что нам что-то надо запомнить и никогда, никогда больше не забывать. Подобные "туториалы" читаются наискосок и должны быть где-то на переферии, что бы что-то щёлкнуло, когда будет подобная проблема, а не стоять перед глазами день и ночь. А учитывая, что существуют ещё кодировки Unicode16,32, то вообще, ценность таких открытий стремится к нулю, как правильно заметили в комментариях, используйте более современные подходы.
Вот вы на Лазарусе пробовали что-то сложнее блокнотика написать? Я всё понимаю, правоверный OpenSource, понимаю, уважаю и кланяюсь в ноги, но блин, не попадает он, когда речь заходит о действительно серьёзном ПО на 100К+ строк кода с поддержкой современных АПИ современных ОСей. А на ваш вопрос "а как же Линух?" отвечу: в этом году, судя по RoadMap, во всяком случае Linux server.
Не знаю как под Линукс, а под Виндовс всё прекрасно работает, про 100К строк вообще молчу, насколько я понимаю у вас проблемы с компонентами а не с количеством кода ибо FreePascal уже очень древний продукт, и если не затрагивать производительность, то вылизан уже очень хорошо.
Ну а минус, я так понимаю, вы влепили, потому что статьи для начинающих должны быть на действительно серьёзном ПО на 100К+ строк кода и в RAD Studio 10 Seattle за 150 тысяч деревянных (мы ведь о Дельфи — коммерческом продукте)?
Ну а минус, я так понимаю, вы влепили, потому что статьи для начинающих должны быть на действительно серьёзном ПО на 100К+ строк кода и в RAD Studio 10 Seattle за 150 тысяч деревянных (мы ведь о Дельфи — коммерческом продукте)?
Сразу скажу, минусов я тут никому не ставил. Не имею привычку кого-то наказывать за то, что их точка зрения не совпадает с моей. Минусую только полных неадекватов. Это так, к слову.
Насчёт Лазаруса: Да, я именно про среду. На чистом языке сейчас далеко не уедешь. Если уж на то пошло, то больше свобод в плане языка таки даёт С++, что бы кто не говорил. Но уровень удобства среды, наличие базовых и сторонних компонентов и инструментов сейчас решает многое.
Насчёт Лазаруса: Да, я именно про среду. На чистом языке сейчас далеко не уедешь. Если уж на то пошло, то больше свобод в плане языка таки даёт С++, что бы кто не говорил. Но уровень удобства среды, наличие базовых и сторонних компонентов и инструментов сейчас решает многое.
А что вы подразумеваете под поддержкой АПИ, вам что-то мешает использовать интерфейс предоставляемой системой, компилятор палки в колёса вставляет? Насколько я помню, даже обычный Паскаль и Асм прекрасно ладят с любым АПИ, ведь он как бы и называется Прикладным, а не встроенным..
То что любой открытый АПИ можно использовать почти из любого языка — это ясно. Вопрос в другом — какая идёт обёртка. Писать программу на чистом WinAPI, у которого у каждой функции по два десятка параметров, основная часть из которых или не указываются или равны нулю — это ад кромешный. Есть конечно мазохисты, но если не стоит задача уложиться в 4К, то предпочитаю использовать обёртки. Тем более что есть ещё WinRT, есть OS X, есть мобильные ОСи. И то что я могу сделать кроссплатформенную программу с единой кодовой базой — это для меня огромный плюс. Да, есть всякие QT с неудобоваримым для меня синтаксисом. Есть Java и Python, у которых после каждого обновления что-то ломается. Я предпочитаю хорошо знать один инструмент, который решает все мои задачи, чем под каждую задачу искать и поверхностно изучать свой.
Всё верно, но безотносительно Дельфи, на мой взгляд, у Лазаруса, как раз, с кроссплатформенностью гораздо лучше чем у Дельфи, хотя Embracadero сделал огромный шаг в этом направлении, Kylix когда-то был явно мёртворождённым. Ну и потом, визуальное программирование вообще не подразумевает внешние АПИ, оно подразумевает компоненты. которые накидали на форму и — готово, а сами компоненты могут очень сильно отличаться по реализации на разных платформах ООП опять же.
Ну а для больших проектов, на мой взгляд, компоненты не выход, всё равно всё приходиться допиливать только тут, как уже было замечено не Дельфи VS Лазарус, а что-то более заслуженное в кроссплатформенности.
Ну а для больших проектов, на мой взгляд, компоненты не выход, всё равно всё приходиться допиливать только тут, как уже было замечено не Дельфи VS Лазарус, а что-то более заслуженное в кроссплатформенности.
Да, Kylix был хорошей идеей, но тогда индустрии не нужен был линукс, вот проект и загнулся. Когда появилась первая альфа Лазаруса, я прыгал на диване как ребёнок, потом вторая, потом третья… и как-то энтузиазм сдулся. Годы идут, а воз и ныне там. Среда есть, она таки работает, и даже компоненты есть, и даже некоторые коммерческие подтягиваются. Но всё равно пока не совсем то, чего требует индустрия. Хотя многие простые утилитки вполне нормально в Лазарусе собираются с небольшими правками. Но, блин, к хорошему привыкаешь и возвращаться на 10 лет назад только ради сборки под линукс как-то не тянет.
А насчёт "визуальное программирование вообще не подразумевает внешние АПИ, оно подразумевает компоненты. которые накидали на форму". Да, внешние АПИ завёрнуты в эти компоненты, или иногда в невизульные объекты. Но тут есть тонкая грань. В любом более/менее сложном проекте приходится разрабатывать много своих компонентов или дорабатывать чужие. Очень помогает наличие исходников этих самых "чужих". У меня своя родная библиотека компонентов тянется ещё со 2-й дельфи, а это на минуточку 1997-й год (если память мне не изменяет). Преемственность версий очень радует. Было только два тотальных ремастеринга: повсеместный переход на юникод и появление кроссплатформенности. Но и там и там всё решилось просто заменой некоторых типов и названий некоторых юнитов.
Что сейчас радует — это новые языковые конструкции и изменённая компонентная модель. Тот же FireMonkey. Если раньше для изменения какого-то крупного компонента мне приходилось делать наследника от его предка и много чего переписывать (не всегда можно добиться нужного, наследуя от конечного компонента), то теперь достаточно написать какой-нибудь маленький хэлпер и запихнуть в него весь нужный тебе функционал. Можно поменять поведение сложного многоуровневого визуального компонента, прицепив к нему маленькую надстроечку, которая глубоко в него закопается и сделает всё что нужно именно в том, месте, где нужно. И всё это без хаков, стандартными средствами.
В общем традиционно у меня только две претензии: высокая цена и сыроватость ранних версий. Но обе они решаемы, если задачи того требуют. Ну а если не требуют, то о чём тогда вообще разговор? Есть куча хороших сред и языков на любой вкус и цвет.
А насчёт "визуальное программирование вообще не подразумевает внешние АПИ, оно подразумевает компоненты. которые накидали на форму". Да, внешние АПИ завёрнуты в эти компоненты, или иногда в невизульные объекты. Но тут есть тонкая грань. В любом более/менее сложном проекте приходится разрабатывать много своих компонентов или дорабатывать чужие. Очень помогает наличие исходников этих самых "чужих". У меня своя родная библиотека компонентов тянется ещё со 2-й дельфи, а это на минуточку 1997-й год (если память мне не изменяет). Преемственность версий очень радует. Было только два тотальных ремастеринга: повсеместный переход на юникод и появление кроссплатформенности. Но и там и там всё решилось просто заменой некоторых типов и названий некоторых юнитов.
Что сейчас радует — это новые языковые конструкции и изменённая компонентная модель. Тот же FireMonkey. Если раньше для изменения какого-то крупного компонента мне приходилось делать наследника от его предка и много чего переписывать (не всегда можно добиться нужного, наследуя от конечного компонента), то теперь достаточно написать какой-нибудь маленький хэлпер и запихнуть в него весь нужный тебе функционал. Можно поменять поведение сложного многоуровневого визуального компонента, прицепив к нему маленькую надстроечку, которая глубоко в него закопается и сделает всё что нужно именно в том, месте, где нужно. И всё это без хаков, стандартными средствами.
В общем традиционно у меня только две претензии: высокая цена и сыроватость ранних версий. Но обе они решаемы, если задачи того требуют. Ну а если не требуют, то о чём тогда вообще разговор? Есть куча хороших сред и языков на любой вкус и цвет.
Сейчас попиливаю опенсорсный проектик, который забросил автор в Lazarus — могу сказать что, к сожалению удобство работы в Лазарусе намного меньше чем в Дельфи.
Одно только отсутствие однооконного режима чего стоит. Кроме того вынужденная переборка IDE при изменении кода компонентов — это очень неудобно.
С другой стороны есть и явные преимущества, такие как: привязки в LCL — после них VCL переодически вызывает печаль, подсветка условно компилируемых частей кода, сохранение состояния IDE после перезапуска.
Одно только отсутствие однооконного режима чего стоит. Кроме того вынужденная переборка IDE при изменении кода компонентов — это очень неудобно.
С другой стороны есть и явные преимущества, такие как: привязки в LCL — после них VCL переодически вызывает печаль, подсветка условно компилируемых частей кода, сохранение состояния IDE после перезапуска.
AnchorDockingDsng вам в помощь. У меня к Lazarus-у только одна претензия, к дебагеру. Уж очень тяжко без function call и нормальной evaluation выражений.
Матерьял по Richedit наверное будет полезен другим людям, но, лучше переходите на любой другой компонент с подсветкой синтаксиса, намучаетесь вы с Richedit...
вообще то сверху есть значек что это обучающий материал..
если вам это так просто — то могу порадоваться за вас, я например однозначного ответа найти в интернете не смог… а вот вопросов аналогично моему много...
наверное на харбре действительно нужно писать только переводные статьи о космосе… все остальное здесь вызывает только минуса от "супер умных" гуру… — одного не пойму — если тема не интересно зачем заходить и читать ?!!!
не знаю что такое лазарус, у меня среда пишет что она дельфи… хотя вам это ведь не важно, так ведь? :-)))
если вам это так просто — то могу порадоваться за вас, я например однозначного ответа найти в интернете не смог… а вот вопросов аналогично моему много...
наверное на харбре действительно нужно писать только переводные статьи о космосе… все остальное здесь вызывает только минуса от "супер умных" гуру… — одного не пойму — если тема не интересно зачем заходить и читать ?!!!
не знаю что такое лазарус, у меня среда пишет что она дельфи… хотя вам это ведь не важно, так ведь? :-)))
И никто не обратил внимания, что определение позиции работает за O(N), а соответственно та же подсветка, к примеру будет за O(N^2)
Дельфи… вы бы знали, сколько всего в мировых финансах реализовано на бесконечных Excel и макросах на VBA...
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Delphi: Простая задачка RichEdit которую нужно решить до того как вы решите его использовать