Собственно, этот пост расчитан на тех, кто только учится Delphi. Для тех, кто не в курсе существования функции AnsiIndexStr в Delphi скажу, что функция располагается в модуле для работы со строками (StrUtils). Возвращаемый результат – индекс строки в массиве строк. Если элемент массива, соответствующий заданой подстроке не найден в массиве, то функция вернет значение -1. Сам листинг функции выглядит следующим образом:
Читать далее »
-
10Mar
Метки: Delphi
-
02Mar
Несмотря на кажущуюcя простоту решения задачи (использование WdPartOfSpeech Enumerator’а для отдельного слова коллекции Words), решения её с использованием только методов и свойств модели Microsoft Word недостаточно. То есть нельзя прото так взят слово и определить к какой части речи его отнести – нет такого метода или свойства, только PartOfSpeechList при использованиии Тезауруса Word и то только для синонимов слова. А между тем знание того к какой части речи отнести данное слово крайне необходимо для правильного программного подбора синонимов (синонимизации) в тексте. Особенно, если наша цель получить понятный связный текст, а не наполнитель для говносайтов. Поэтому сегодня попробуем разработать небольшой алгритм для определения частей речи русского языка с использованием Microsoft Word.Метки: Word, Word в Delphi, Тезаурус
-
28Feb
Как я упоминал вчера, есть идея немного поразбираться с тезаурусом Word в Delphi. Знания эти могут быть применены и для работы в Инернет в том числе. Для начала стоит сразу определиться с чем, собственно, мы будем иметь дело. Что такое тезаурус? Вот, что нам говорит Wikipedia:Тезаурус в современной лингвистике — особая разновидность словарей общей или специальной лексики, в которых указаны семантические отношения (синонимы, антонимы, паронимы и т. п.) между лексическими единицами. Таким образом, тезаурусы, особенно в электронном формате, являются одним из действенных инструментов для описания отдельных предметных областей.
В отличие от толкового словаря, тезаурус позволяет выявить смысл не только с помощью определения, но и посредством соотнесения слова с другими понятиями и их группами, благодаря чему может использоваться в системах искусственного интеллекта.Метки: Word в Delphi, Тезаурус
-
27Feb
Сегодня, в последний рабочий день недели, практически весь день провозился над передачей данных из Delphi в Word. Так как подозрение есть, что работа продолжится то решил кое-какие моменты по работе с Microsoft Word в Delphi запечатлеть и у себя в блоге. Написать такую мини-шпаргалку (тем более, что по Excel уже кое что есть). Читать далее »Метки: Word в Delphi
-
25Feb
Сегодня рассмотрим ещё один простой способ определения специальных папок Windows. К специальным относятся такие директории как, например: “Мои документы”, “Application Data”, “Cookies” и т.д. В разное время развития операционной системы Windows, как и в разное время развития Delphi предлагалась масса различных способов определения путей к специальным директориям от самых простых – использование GetWindowsDirectory до таких “экзотических” как работа с интерфейсом ISHFolder и т.д.
Сегодня расмотрим более простой, на мой взгляд, способ получения всех без исключения системных папок. При этом мы воспользуемся всего одним заголовочным модулем Delphi – SHFolder.pas. Этот модуль содержит необходимы типы данных и константы для работы с библиотекой shfolder.dll, которая доступна во всех версиях Windows, начиная с Win95.Метки: Delphi, директории
-
21Feb
В прошлый раз мы строили дерево TreeView по данным из XML-документа. Сегодня проведем обратное преобразование – сохраним дерево TreeView любой сложности в XML-файл, чтобы довести работу до логического завершения. Раз научились читать документ – надо научиться его и правильно сохранять.
Для решеня этой задачи вы можете воспользоваться как прошлым примером и уже имеющимся списком узлов TNodeList, так и процедурой, которую мы рассмотрим в этом посте.
Читать далее »Метки: TreeView, XML, XML-документ, алгоритм
-
31Jan
Как Вы, наверное, знаете из комментариев в блоге сейчас я работаю над объединением всех статей про Ribbon Controls в Delphi в один большой документ. Что получится в итоге – пока не известно даже мне. Может это будет простой пост на 7000+ слов с картинками, а может и целый справочник для начинающих программистов. Пока кодовое название документа “Ribbon Controls. Мышинное программирование“. Может звучит немного странно, но вполне отражает суть того, что пока изложено. Дело в том, что большинство действий, совершаемых при работе с Ribbon – это движения мышкой по экрану. Эдакое программирование для дошкольников – взял кнопочку, перетянул на панельку, выбрал мышкой в свойствах значение, ткнул мышкой 2 раза, написал 1 строчку и всё готово. Только вот, как показывают вопросы по Ribbon от читателей блога, да и собственный хоть и не большой, но опыт – иногда бывает очень не просто ухватить мышкой тот самый элемент
Понимаю, что может звучит и немного неправдоподобно, но так и есть. Часто приходится выделывать что-то наподобие тануа с бубном, чтобы сделать запланированной. Вот я и решил, что хватит уже мучится с мышкой, пора бы перейти к более серьезной работе. А именно – работать с Ribbon Controls именно как с объектами Delphi, без всяких тасканий и перетаскиваний – только код. Читать далее »Метки: Ribbon, Ribbon Controls, RibbonGroup, RibbonPage, TRibbon
-
05Jan
Вообще заинтересоваться темой работой с процессами в Windows XP меня заставило не любопытство, а острая необходимость решения мелкой, но очень нехорошей проблемы.Началось всё с того, что моя жена блуждая по просторам Рунета, приволокла в свой комп нехороший вирус. Не знаю какое уж название прилепил этому вирусу Касперский, н согласно его методам именования, но вирус, мягко говоря козлячий. Смысл его работы заключался в следующем: примерно через 1-2 минуты после запуска ОС на рабочем столе появлялось окно с сообщением, типа “Тестовый период использования программы … закончился. Отошлите СМС на номер … ” и до кучи предупреждение о том, что не стоит вмешиваться работы системы иначе будет мега-коллапс. В общем развод на денюжки гордых пользователей нелегального софта честных граждан. Проблемка заключалась в том, что окно это висело аккурат по центру рабочего стола, поверх всех окон и напрочь отказывалось сменить свое положение, т.е. просто так взять и запустить диспетчер задач было нереально (кстати, он и не помог бы особо в решении проблемы). В безопасном режиме – то же самое. Читать далее »
Метки: psapi, THandle, модули, процессы Windows
-
28Dec
Попробую систематизировать информацию по вопросам мультиплатформенного программирования. Прежде, чем начинать разбор конкретных примеров, думаю, стоит ответить на вопрос: зачем вообще стоит задумываться над мультиплатформенностью своих приложений?Действительно, на текущий момент, да и в обозримом будущем, самом популярной ОС в мире есть и будет Windows. Но не всё так просто. Мне допустим, ещё месяц с небольшим назад вполне комфортно и уютно было работать в Delphi 2010. Сегодня я в срочном порядке изучаю тонкости работы в Lazarus потому, что на второй работе на часть машин установили Linux. А прикладных программ, которыми мы повседневно пользуемся (кстати, разработанных нами же под Windows) естественно в Linux не наблюдается. Вот и первая причина – банальная необходимость, несмотря на то, что в Мире “рулит” Windows. Читать далее »
Метки: Lazarus, Linux, Unix, Windows, кодировки, модули Lazarus
-
05Dec
Наверное нет такого программиста или любителя, который не мечтал бы поучаствовать в каком-нибудь большом и важном проекте. Или разработать такую программу, которая была бы полезна не только ему одному, но и, как минимум, знакомым и друзьям. И вот такой момент наступает. Свершилось – пригласили поучаствовать в проекте, или нашел-таки свою идею, такую, которую до тебя ещё никто не пробовал реализовать в виде машинного кода.
Ты рвешься “в бой”, руки так и тянутся к клавиатуре, что бы начать работать на программой. Не торопись, дорогой начинающий программист. Не забывай об одном – всегда есть тонкие моменты в программировании, которые весьма не часто можно встретить подробно описанными в литературе на основании которой мы становимся теми кем стремимся стать ежедневно – профессионалами.
Не скажу, что я добился своей цели в программировании и стал профессионалом. Нет. До уровня профессионала мне ещё расти и расти. Однако опыт поспешных разработок имеется и хотелось бы поделиться с Вами теми моментами, из-за которых мне сейчас приходится усердно перелопачивать тысячи строк кода. Итак, начнем по порядку. Читать далее »

Свежие комментарии