Как стать автором
Обновить

Комментарии 93

Спасибо за статью :) А то я думал что я один такой "псих" на хабре, который верит что Delphi еще что-то может
да нет, дельфийцев много. наверное, боятся выделиться, а то заминусуют к чертям =)
щас кто-нить прибежит, начнет рассказывать про то, что Delphi умерла давно и не следовало ей рождаться =)
А ведь были времена когда C++ на нас смотрели свысока, а мы им показывали самую удобную среду разработки и огромное количество "реально" полезных программ. А сейчас.. даже немножко стыдно, за то что изучаю Delphi.

Ох Borland как они нас кинули...
Ну, программы-то никуда не исчезли. чего только стоят такие монстры как TheBat, TotalCommander и FruityLoops.
Сейчас Delphi - все та же удобная среда для разработки. Почему нет?
Без паковщиков программы на делфи вскрываются с потрохами. Взять тот же DeDe, который даже формочки и кнопки покажет с кодом. Это нормально?
Делфи генерит мегаогромные файлы со всяким гамном, которое никогда нигде никто не использует. Это нормально?
И вообще синтаксис делфи взят из паскаля — студенческого языка программирования. Это нормально? :)

Какбэ, конечно, ну и фиг с ними, у каждого свой путь в жизни. Но называть делфи профессиональной средой — увольте.
посмотрите ссылку в комментарии ниже
Good Quality Applications Built With Delphi

сам факт существования таких списков наводит на мысли :)
наводит на мысли, что некоторым людям без этого не верится.
НЛО прилетело и опубликовало эту надпись здесь
по поводу п. 1
Да, это нормально. И не просто нормально, а отлично, т.к. позволяет с легкостью, при умении, расширять программы.
Если бы человек хотел, чтобы его программу расширяли, он бы опубликовал ее открыто. Такая незащищенность — недостаток компилятора Делфи.

Я знаю несколько успешных компаний с населенностью от 100 человек, у которых ERP написана на VBA в Excel. Да, оно работает, но это не нормально. Так же как и драйвера, написанные на Дельфи.

Я не менее часто улыбыюсь, когда люди не зная других людей делают о них выводы.

Успехов вам в ваших начинаниях!
НЛО прилетело и опубликовало эту надпись здесь
:)
У меня сейчас нет жаления объяснять дальтоникам цвета радуги.
Давайте на этом закончим.
НЛО прилетело и опубликовало эту надпись здесь
Да мне за среду разработки стыдно! (Я до сих пор стараюсь использовать Delphi 7 где только можно)

Я всегда восхищался дизайном среды, удобно, практично, супер... А теперь.. тебе BDS 2005-2007 ничего не напоминает? ОНИ ВСЕ СЛИЗАЛИ С Visual Studio? Обьясни мне, зачем отказываться от своих "гениальных" разработок и следовать моде?
потому что это действительно удобно.
непривычно, но это дело времени. я уже привык к 2007.
хотя на работе пишу на D3.
Мне пока тяжело! Посмотрим может и привыкну.

Радует одно - конкуренция с VB.NET заставила их шевелиться, и сам язык стал действительно лутше.
Язык не изменился с первой версии
Прости, Мозги под утро не варят :) Были добавленны компоненты (которых я кстати очень долго ждал)
не менялся, но обрастал новыми возможностями
одна перегрузка операторов структур и классов (классов только в .net-проектах, Вроде) чего стоит в изменениях язка
удивлен. что нету замечательных программ PicturesToExe, PixBuilder Studio и WinNavigator (он правда стар уже) замечательной компании wnsoft - www.wnsoft.com
А я, не найдя хорошего XML-компонента, как-то написал свой простенький XML-подобный язык Multilevel (что-то вроде многоуровневого ini-файла).

Кстати: спасибо за подсказку, как работать с published.
В Lazarus данная фича делается парой кликов мыши.
НЛО прилетело и опубликовало эту надпись здесь
ну рассказали бы хоть. я то я зря этот класс написал, получается?
НЛО прилетело и опубликовало эту надпись здесь
XML Data Binding ?
Насколько я понял, это немножко другое. У меня это дело попроще.
НЛО прилетело и опубликовало эту надпись здесь
а если нужно добавить какое-то свойство, убрать или изменить?
в случае с XML Data Binding это займет дольше времени, нежели с использованием моего класса.

Я тоже использую свой класс для каждой программы. Класс-наследник того, что я написал =)
НЛО прилетело и опубликовало эту надпись здесь
Переходите уже на другую платформу. На .NET например. Там это 10 строк занимает, а у вас 100, это упадничество какое-то.
P.S. Я не в коем случае не хочу сказать, что Дельфи уже умерла, и не следовало ей рождаться, т.к. мне очень не хочется с кем то спорить в это чудесное утро.
хотел в свое время, но как-то медленновато на нем все работает.
.NET — прямой наследник Delphi
НЛО прилетело и опубликовало эту надпись здесь
эт точно, и ведущий разработчик-идеолог Delphi RTTI и .NET один и тот же кстати.
много строк тут занимает только класс-родитель, который делает за нас всю работу. с ним не надо возиться и переписывать.
а вот описание класса-наследника, действительно с нашим конфигов - получается очень мал. и менять мы его можем так, как нам захочется - ничего не сломается и все будет сохраняться/загружаться нормально.
Я по долгу службы изучаю .NET и скажу, что 10 строк там это все занимает только потому, что Микрософт за вас написала ну просто огромную кучу кода. 4000 классов о_О! И это только mscorelib! Сравните со 250 (приблизительно) в Delphi , и оцените насколько все грамотнее и лаконичнее (причем эти 250 включают в себя все компоненты). Ведь программы на Delphi пишутся с таким же успехом как и на .NET А то что структура int (обычное 32 битное число) имеет около 22 методов, вас не пугает о_О.

PS: Изучать надо язык на котором пишите.
дельфи прекрасно работает с ini-файлами
или сабж немого о другом? :)
можно прочитать и проверить.
о другом, конечно.
т.е. не о конфиг-файлах?
об удобных и красивых конфиг-файлах. и о способе их автоматической загрузки и сохранения.
ну не знаю. на вкус и цвет как говорится...
по мне ini-файлы намного красивее xml-ек и удобнее в разборе как руками так и абсолютно любыми существующими инструментами.

повторюсь: я говорю о конфигах.
ИМХО удобный конфиг - это тот, который понятен и который легко правится.
НЛО прилетело и опубликовало эту надпись здесь
вы видели конфиги JBoss ? конфиги на XML - величайшее зло (ИМХО).
нет, не видел. как и Вы не видели результатов отработки объекта моего класса.
ну залейте на pastebin :)
или лучше сначала попробуйте создать 2-3кб конфиг "по-вашему", а потом в консоли в vi(m) позанимайтесь его редактированием. если останетесь при мнении, что это удобно - показывайте публике.
не люблю vim и линукса под рукой нет.
конфиг-файлы - не для редактирования вручную, я так считаю.
поэтому Вы и используете xml для конфигов :)
именно
тогда понятно :)
что ж, успехов в девелопменте. и не поддавайтесь на провокации сишников:)
НЛО прилетело и опубликовало эту надпись здесь
добавил в конец топика пример полученного таким образом конфиг-файла.
Гмм.. А в чём удобство xml-конфигов???
Для правки вручную - ужос-ужос.
Для парсинга... Довольно тяжёлая артилерия и так привлекается, а тут ещё и сверху такая портянка кода...
Не понимаю в чём смысл использования инструмента (xml) не по назначению.
удобство примера в статье в том, что программисту, в случае изменения/удаления/добавления каких-либо свойств в настройки, не нужно переписывать/дописывать код, который эти настройки будет читать и сохранять.

Вы делаете такие программы, конфиги которых приходится редактировать вручную? - "ужос-ужос".
Расскажите нам, пожалуйста, в чем предназначение xml ?
1. Я не про пример, я про то, зачем хранить конфиги в xml? в чём удобство xml-конфигов?
2. Вы делаете такие программы, настройки которой кроме как с использованием этой же самой программы никак не изменить? Ужос-ужос. Ещё, поди, час менюшками для этого хлопать приходится? Ну-ну. Хотя нет :). Раз таки xml, значит ещё не всё потеряно :).
3. xml? в основном для обмена данными. Часто кроссплатформенного. Но конфигами кроме вашей программы никто другой не будет пользоваться. Зачем там xml?
каждый выбирает то, что ему больше не нравится. я не призываю пользоваться этим методом вопреки своим желаниям.
XML гламурнее.
точно =)
Гламур для дур, XML это сурово.
Не говоря о том, что сам по себе код довольно хреновый и дилетантский, он еще и некому не нужный. Вместо сабжа надо использовать стандартные механизмы сериализации объектов и не позориться.

ЗЫ

procedure TXMLClass.Initialize;
begin

end;

Нафиг пустой метод? Есть деректива abstract.

Префиксы а-ля венгерская нотация (oObject и iCount) не принято использовать в Delphi.

Если хочешь еще и много, то запость код на www.delphimaster.ru :)
о сериализации мы уже говорили в комментариях выше.
initialize - для использования в наследниках.
с префиксами привык, извините.

спасибо за отзыв.
директива "abstract" специально создана для этих целей, чтобы не городить пустых методов.
НЛО прилетело и опубликовало эту надпись здесь
спасибо за поддержку =)
Ссылки почему-то не вставились :(.

Стандарт стилевого оформления исходного кода DELPHI
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802

Сериализация объектов стандартными средствами Delphi
http://rsdn.ru/article/delphi/serialization.xml
о существовании обеих статей я осведомлен.
даже читал ;)
>о сериализации мы уже говорили в комментариях выше.
Где? Я говорю о стандартной сериализации, которая используется самой средой и является естественной для Delphi.

>initialize - для использования в наследниках.
Я понимаю, так почему бы не сделать его абстрактным, коли реализации нет, а нужен он лишь для перекрытия в потомках?

А мое имхо, настройки проще хранить в ини, и не сериализовывать целые объекты. А на форум ты таки закинь исходник :)
Я не люблю форумы и не хочу никому ничего доказывать. если Вы считаете, что я не прав, используя такой код для хранения настроек, то я это уже понял, но не вижу причин перестать им пользоваться - он мне кажется удобным. если у Вас есть пример, как сделать то же самое, только лучше - почему бы его не написать, я им с большим удовольствием воспользуюсь. глядишь, и чему новому научусь - я знаю о том, что я не идеален и мой код тоже таким может и не быть и с удовольствием займусь его изменением в лучшую сторону.
ну насчет того чтобы сделать пустой метод абстрактным товарищ абсолютно прав, к чему такая болезненная реакция?
я уже давно в исходном коде поменял. реакция не болезненная, я разве тут чем-то возмущаюсь? =)
я критике только рад, честно.
Не, я на форум, только именно на этот, советую как раз для того, чтобы "чему новому научиться".
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
1. чем лучше?
2. согласен.
3. не понял.
НЛО прилетело и опубликовало эту надпись здесь
1. для yaml нужно библиотеки какие-нить подключать сторонние. зачем, когда XML тоже с этим справляется. и уж тем более нативные майкрософтные библиотеки.
3. это же не значит то, что XML плох.

в чем плюс YAML перед XML ?
НЛО прилетело и опубликовало эту надпись здесь
1) "скачать архив, распаковать и подключить компонент к проекту это препятствие перед тем что бы использовать лучшие решения.. чтож, пользуйтесь стандартными компонентами и бодрите себя мыслью, что они самые-самые...." - Позвольте спросить, у вас много опыта в создании програмного обеспечения? (Своего, не для фирмы) Подключение любой сторонней библиотеки ведет к уйме проблем - изучение документации (если она есть), отладка и переотладка кода ибо сторонние библиотеки 99% имеют глюки которые приходиться учитывать и избегать. И все это ведет только к одному - трате драгоценного :) программистского времени. Намного проще и надежнее! написать код на стандартных компонентах. Этого же мнения придерживаются почти все ведущие специалисты.

3) Микрософт, Borland использует ХМЛ везде где только можно, и по вашему получается что они глупее вас? Зачем они выбирают "плохое" решение? Не смешите меня.

YAML и XML вообще не надо сравнивать ибо XML - универсален. Изучив его вы сможете применять его во множестве областей программирования, и вас всегда и везде поймут.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
а у YAML есть сейчас порт для delphi?
НЛО прилетело и опубликовало эту надпись здесь
отлично, именно поэтому нам и следует использовать его в delphi.
я не читал коменты, не думаю что там в холи-варе что-то полезное есть, но вдруг howto именно там конечно

но идею не очень понял, может я туповатъ, а может автору незачет

точнее вообще не понял: имелся в виду подход, что класс будет сохранять свойства обьектов, которые ему подсовывают? или же мне надо дописывать в классе-наследнике каждое свойство?

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

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

тогда в теории вроде сложные типы тоже можно сохранять? к примеру я хочу помнить настройки шрифта для неважно-чего; я должен в published добавить свойство MyFont, и перед сохранением настроек просто присвоить ему указатель на шрифт, настройки которого я хочу помнить? вроде в SaveClass попадаем, что свойство == класс определяем, но дальше

tkClass:
if Assigned(PropInfo^.GetProc) and Assigned(PropInfo^.SetProc) then
begin
LObject := GetObjectProp(oObject, PropInfo);
if LObject nil then

никогда не срабатывает

это бага или фича?
под настройки шрифта создайте отдельный класс на базе TPersistent.
TFontProperty = class(TPersistent)
и его опишите точно так же - published свойства этого объекта попадут внутрь.
а в своем классе определите property Font: TFontProperty.
объект, на который будет ссылаться Font, нужно будет создать и уничтожить.
Решил опробовать модуль и получил ругань от 7 Дельфи
SetPropValue(Self, PropInfo^.Name, StrToInt(sValue));

Почему то пост сам отправился без моего ведома. Пишу снова.
На строки
SetPropValue(Self, PropInfo, StrToInt(sValue));

Шла ругань
[Error] tlXMLClass.pas(79): Incompatible types: 'String' and 'PPropInfo'


После исправления на:
SetPropValue(Self, PropInfo^.Name, StrToInt(sValue))
Все стало нормально.

Вы уверены, что в приведенном коде статьи ошибок нет?
silentroach
Все 3 моих коментария относяться к коду изложенному в вашем блоге, как оказалось он не соответсвует исходикам в статье.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории