Комментарии 93
Спасибо за статью :) А то я думал что я один такой "псих" на хабре, который верит что Delphi еще что-то может
да нет, дельфийцев много. наверное, боятся выделиться, а то заминусуют к чертям =)
щас кто-нить прибежит, начнет рассказывать про то, что Delphi умерла давно и не следовало ей рождаться =)
щас кто-нить прибежит, начнет рассказывать про то, что Delphi умерла давно и не следовало ей рождаться =)
А ведь были времена когда C++ на нас смотрели свысока, а мы им показывали самую удобную среду разработки и огромное количество "реально" полезных программ. А сейчас.. даже немножко стыдно, за то что изучаю Delphi.
Ох Borland как они нас кинули...
Ох Borland как они нас кинули...
Ну, программы-то никуда не исчезли. чего только стоят такие монстры как TheBat, TotalCommander и FruityLoops.
Сейчас Delphi - все та же удобная среда для разработки. Почему нет?
Сейчас Delphi - все та же удобная среда для разработки. Почему нет?
Без паковщиков программы на делфи вскрываются с потрохами. Взять тот же DeDe, который даже формочки и кнопки покажет с кодом. Это нормально?
Делфи генерит мегаогромные файлы со всяким гамном, которое никогда нигде никто не использует. Это нормально?
И вообще синтаксис делфи взят из паскаля студенческого языка программирования. Это нормально? :)
Какбэ, конечно, ну и фиг с ними, у каждого свой путь в жизни. Но называть делфи профессиональной средой увольте.
Делфи генерит мегаогромные файлы со всяким гамном, которое никогда нигде никто не использует. Это нормально?
И вообще синтаксис делфи взят из паскаля студенческого языка программирования. Это нормально? :)
Какбэ, конечно, ну и фиг с ними, у каждого свой путь в жизни. Но называть делфи профессиональной средой увольте.
посмотрите ссылку в комментарии ниже
по поводу п. 1
Да, это нормально. И не просто нормально, а отлично, т.к. позволяет с легкостью, при умении, расширять программы.
Если бы человек хотел, чтобы его программу расширяли, он бы опубликовал ее открыто. Такая незащищенность недостаток компилятора Делфи.
Я знаю несколько успешных компаний с населенностью от 100 человек, у которых ERP написана на VBA в Excel. Да, оно работает, но это не нормально. Так же как и драйвера, написанные на Дельфи.
Я не менее часто улыбыюсь, когда люди не зная других людей делают о них выводы.
Успехов вам в ваших начинаниях!
Да, это нормально. И не просто нормально, а отлично, т.к. позволяет с легкостью, при умении, расширять программы.
Если бы человек хотел, чтобы его программу расширяли, он бы опубликовал ее открыто. Такая незащищенность недостаток компилятора Делфи.
Я знаю несколько успешных компаний с населенностью от 100 человек, у которых ERP написана на VBA в Excel. Да, оно работает, но это не нормально. Так же как и драйвера, написанные на Дельфи.
Я не менее часто улыбыюсь, когда люди не зная других людей делают о них выводы.
Успехов вам в ваших начинаниях!
http://delphi.wikia.com/wiki/Good_Qualit…
разве после посещения этой страницы за Delphi может быть стыдно?
разве после посещения этой страницы за Delphi может быть стыдно?
Да мне за среду разработки стыдно! (Я до сих пор стараюсь использовать Delphi 7 где только можно)
Я всегда восхищался дизайном среды, удобно, практично, супер... А теперь.. тебе BDS 2005-2007 ничего не напоминает? ОНИ ВСЕ СЛИЗАЛИ С Visual Studio? Обьясни мне, зачем отказываться от своих "гениальных" разработок и следовать моде?
Я всегда восхищался дизайном среды, удобно, практично, супер... А теперь.. тебе BDS 2005-2007 ничего не напоминает? ОНИ ВСЕ СЛИЗАЛИ С Visual Studio? Обьясни мне, зачем отказываться от своих "гениальных" разработок и следовать моде?
потому что это действительно удобно.
непривычно, но это дело времени. я уже привык к 2007.
хотя на работе пишу на D3.
непривычно, но это дело времени. я уже привык к 2007.
хотя на работе пишу на D3.
Мне пока тяжело! Посмотрим может и привыкну.
Радует одно - конкуренция с VB.NET заставила их шевелиться, и сам язык стал действительно лутше.
Радует одно - конкуренция с VB.NET заставила их шевелиться, и сам язык стал действительно лутше.
удивлен. что нету замечательных программ PicturesToExe, PixBuilder Studio и WinNavigator (он правда стар уже) замечательной компании wnsoft - www.wnsoft.com
А я, не найдя хорошего XML-компонента, как-то написал свой простенький XML-подобный язык Multilevel (что-то вроде многоуровневого ini-файла).
Кстати: спасибо за подсказку, как работать с published.
Кстати: спасибо за подсказку, как работать с published.
В Lazarus данная фича делается парой кликов мыши.
ну рассказали бы хоть. я то я зря этот класс написал, получается?
XML Data Binding ?
Насколько я понял, это немножко другое. У меня это дело попроще.
Насколько я понял, это немножко другое. У меня это дело попроще.
Переходите уже на другую платформу. На .NET например. Там это 10 строк занимает, а у вас 100, это упадничество какое-то.
P.S. Я не в коем случае не хочу сказать, что Дельфи уже умерла, и не следовало ей рождаться, т.к. мне очень не хочется с кем то спорить в это чудесное утро.
P.S. Я не в коем случае не хочу сказать, что Дельфи уже умерла, и не следовало ей рождаться, т.к. мне очень не хочется с кем то спорить в это чудесное утро.
хотел в свое время, но как-то медленновато на нем все работает.
.NET прямой наследник Delphi
много строк тут занимает только класс-родитель, который делает за нас всю работу. с ним не надо возиться и переписывать.
а вот описание класса-наследника, действительно с нашим конфигов - получается очень мал. и менять мы его можем так, как нам захочется - ничего не сломается и все будет сохраняться/загружаться нормально.
а вот описание класса-наследника, действительно с нашим конфигов - получается очень мал. и менять мы его можем так, как нам захочется - ничего не сломается и все будет сохраняться/загружаться нормально.
Я по долгу службы изучаю .NET и скажу, что 10 строк там это все занимает только потому, что Микрософт за вас написала ну просто огромную кучу кода. 4000 классов о_О! И это только mscorelib! Сравните со 250 (приблизительно) в Delphi , и оцените насколько все грамотнее и лаконичнее (причем эти 250 включают в себя все компоненты). Ведь программы на Delphi пишутся с таким же успехом как и на .NET А то что структура int (обычное 32 битное число) имеет около 22 методов, вас не пугает о_О.
PS: Изучать надо язык на котором пишите.
PS: Изучать надо язык на котором пишите.
дельфи прекрасно работает с ini-файлами
или сабж немого о другом? :)
или сабж немого о другом? :)
можно прочитать и проверить.
о другом, конечно.
о другом, конечно.
т.е. не о конфиг-файлах?
об удобных и красивых конфиг-файлах. и о способе их автоматической загрузки и сохранения.
ну не знаю. на вкус и цвет как говорится...
по мне ini-файлы намного красивее xml-ек и удобнее в разборе как руками так и абсолютно любыми существующими инструментами.
повторюсь: я говорю о конфигах.
ИМХО удобный конфиг - это тот, который понятен и который легко правится.
по мне ini-файлы намного красивее xml-ек и удобнее в разборе как руками так и абсолютно любыми существующими инструментами.
повторюсь: я говорю о конфигах.
ИМХО удобный конфиг - это тот, который понятен и который легко правится.
вы видели конфиги JBoss ? конфиги на XML - величайшее зло (ИМХО).
нет, не видел. как и Вы не видели результатов отработки объекта моего класса.
ну залейте на pastebin :)
или лучше сначала попробуйте создать 2-3кб конфиг "по-вашему", а потом в консоли в vi(m) позанимайтесь его редактированием. если останетесь при мнении, что это удобно - показывайте публике.
или лучше сначала попробуйте создать 2-3кб конфиг "по-вашему", а потом в консоли в vi(m) позанимайтесь его редактированием. если останетесь при мнении, что это удобно - показывайте публике.
не люблю vim и линукса под рукой нет.
конфиг-файлы - не для редактирования вручную, я так считаю.
конфиг-файлы - не для редактирования вручную, я так считаю.
добавил в конец топика пример полученного таким образом конфиг-файла.
Гмм.. А в чём удобство xml-конфигов???
Для правки вручную - ужос-ужос.
Для парсинга... Довольно тяжёлая артилерия и так привлекается, а тут ещё и сверху такая портянка кода...
Не понимаю в чём смысл использования инструмента (xml) не по назначению.
Для правки вручную - ужос-ужос.
Для парсинга... Довольно тяжёлая артилерия и так привлекается, а тут ещё и сверху такая портянка кода...
Не понимаю в чём смысл использования инструмента (xml) не по назначению.
удобство примера в статье в том, что программисту, в случае изменения/удаления/добавления каких-либо свойств в настройки, не нужно переписывать/дописывать код, который эти настройки будет читать и сохранять.
Вы делаете такие программы, конфиги которых приходится редактировать вручную? - "ужос-ужос".
Расскажите нам, пожалуйста, в чем предназначение xml ?
Вы делаете такие программы, конфиги которых приходится редактировать вручную? - "ужос-ужос".
Расскажите нам, пожалуйста, в чем предназначение xml ?
1. Я не про пример, я про то, зачем хранить конфиги в xml? в чём удобство xml-конфигов?
2. Вы делаете такие программы, настройки которой кроме как с использованием этой же самой программы никак не изменить? Ужос-ужос. Ещё, поди, час менюшками для этого хлопать приходится? Ну-ну. Хотя нет :). Раз таки xml, значит ещё не всё потеряно :).
3. xml? в основном для обмена данными. Часто кроссплатформенного. Но конфигами кроме вашей программы никто другой не будет пользоваться. Зачем там xml?
2. Вы делаете такие программы, настройки которой кроме как с использованием этой же самой программы никак не изменить? Ужос-ужос. Ещё, поди, час менюшками для этого хлопать приходится? Ну-ну. Хотя нет :). Раз таки xml, значит ещё не всё потеряно :).
3. xml? в основном для обмена данными. Часто кроссплатформенного. Но конфигами кроме вашей программы никто другой не будет пользоваться. Зачем там xml?
XML гламурнее.
Не говоря о том, что сам по себе код довольно хреновый и дилетантский, он еще и некому не нужный. Вместо сабжа надо использовать стандартные механизмы сериализации объектов и не позориться.
ЗЫ
procedure TXMLClass.Initialize;
begin
end;
Нафиг пустой метод? Есть деректива abstract.
Префиксы а-ля венгерская нотация (oObject и iCount) не принято использовать в Delphi.
Если хочешь еще и много, то запость код на www.delphimaster.ru :)
ЗЫ
procedure TXMLClass.Initialize;
begin
end;
Нафиг пустой метод? Есть деректива abstract.
Префиксы а-ля венгерская нотация (oObject и iCount) не принято использовать в Delphi.
Если хочешь еще и много, то запость код на www.delphimaster.ru :)
о сериализации мы уже говорили в комментариях выше.
initialize - для использования в наследниках.
с префиксами привык, извините.
спасибо за отзыв.
initialize - для использования в наследниках.
с префиксами привык, извините.
спасибо за отзыв.
Ссылки почему-то не вставились :(.
Стандарт стилевого оформления исходного кода DELPHI
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802
Сериализация объектов стандартными средствами Delphi
http://rsdn.ru/article/delphi/serialization.xml
Стандарт стилевого оформления исходного кода DELPHI
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802
Сериализация объектов стандартными средствами Delphi
http://rsdn.ru/article/delphi/serialization.xml
>о сериализации мы уже говорили в комментариях выше.
Где? Я говорю о стандартной сериализации, которая используется самой средой и является естественной для Delphi.
>initialize - для использования в наследниках.
Я понимаю, так почему бы не сделать его абстрактным, коли реализации нет, а нужен он лишь для перекрытия в потомках?
А мое имхо, настройки проще хранить в ини, и не сериализовывать целые объекты. А на форум ты таки закинь исходник :)
Где? Я говорю о стандартной сериализации, которая используется самой средой и является естественной для Delphi.
>initialize - для использования в наследниках.
Я понимаю, так почему бы не сделать его абстрактным, коли реализации нет, а нужен он лишь для перекрытия в потомках?
А мое имхо, настройки проще хранить в ини, и не сериализовывать целые объекты. А на форум ты таки закинь исходник :)
Я не люблю форумы и не хочу никому ничего доказывать. если Вы считаете, что я не прав, используя такой код для хранения настроек, то я это уже понял, но не вижу причин перестать им пользоваться - он мне кажется удобным. если у Вас есть пример, как сделать то же самое, только лучше - почему бы его не написать, я им с большим удовольствием воспользуюсь. глядишь, и чему новому научусь - я знаю о том, что я не идеален и мой код тоже таким может и не быть и с удовольствием займусь его изменением в лучшую сторону.
Не, я на форум, только именно на этот, советую как раз для того, чтобы "чему новому научиться".
1. чем лучше?
2. согласен.
3. не понял.
2. согласен.
3. не понял.
1. для yaml нужно библиотеки какие-нить подключать сторонние. зачем, когда XML тоже с этим справляется. и уж тем более нативные майкрософтные библиотеки.
3. это же не значит то, что XML плох.
в чем плюс YAML перед XML ?
3. это же не значит то, что XML плох.
в чем плюс YAML перед XML ?
1) "скачать архив, распаковать и подключить компонент к проекту это препятствие перед тем что бы использовать лучшие решения.. чтож, пользуйтесь стандартными компонентами и бодрите себя мыслью, что они самые-самые...." - Позвольте спросить, у вас много опыта в создании програмного обеспечения? (Своего, не для фирмы) Подключение любой сторонней библиотеки ведет к уйме проблем - изучение документации (если она есть), отладка и переотладка кода ибо сторонние библиотеки 99% имеют глюки которые приходиться учитывать и избегать. И все это ведет только к одному - трате драгоценного :) программистского времени. Намного проще и надежнее! написать код на стандартных компонентах. Этого же мнения придерживаются почти все ведущие специалисты.
3) Микрософт, Borland использует ХМЛ везде где только можно, и по вашему получается что они глупее вас? Зачем они выбирают "плохое" решение? Не смешите меня.
YAML и XML вообще не надо сравнивать ибо XML - универсален. Изучив его вы сможете применять его во множестве областей программирования, и вас всегда и везде поймут.
3) Микрософт, Borland использует ХМЛ везде где только можно, и по вашему получается что они глупее вас? Зачем они выбирают "плохое" решение? Не смешите меня.
YAML и XML вообще не надо сравнивать ибо XML - универсален. Изучив его вы сможете применять его во множестве областей программирования, и вас всегда и везде поймут.
а у YAML есть сейчас порт для 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
никогда не срабатывает
это бага или фича?
тогда в теории вроде сложные типы тоже можно сохранять? к примеру я хочу помнить настройки шрифта для неважно-чего; я должен в 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, нужно будет создать и уничтожить.
TFontProperty = class(TPersistent)
и его опишите точно так же - published свойства этого объекта попадут внутрь.
а в своем классе определите property Font: TFontProperty.
объект, на который будет ссылаться Font, нужно будет создать и уничтожить.
небольшой пример - http://codepaste.ru/1068/
Решил опробовать модуль и получил ругань от 7 Дельфи
SetPropValue(Self, PropInfo^.Name, StrToInt(sValue));
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 моих коментария относяться к коду изложенному в вашем блоге, как оказалось он не соответсвует исходикам в статье.
Все 3 моих коментария относяться к коду изложенному в вашем блоге, как оказалось он не соответсвует исходикам в статье.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Конфиг-файлы в Delphi без проблем