|
Декабрь 2011
Введение в GDIPlusX, часть II
Дуг Хенниг (Doug Hennig)
GDIPlusX – это проект, который разрабатывается в рамках инициативы VFPX и
обеспечивает доступ к графическому интерфейсу GDI+ как к набору библиотек
VFP-классов для приложений, создаваемых в среде VFP. Проект GDIPlusX
облегчает добавление в приложения новых возможностей для работы с графикой,
позволяя обеспечить более современный и обладающий большими возможностями
пользовательский интерфейс. Данная статья – вторая публикация в серии,
которая обеспечивает первое знакомство с проектом GDIPlusX, изучая основы
интерфейса GDI+, рассматривая классы библиотеки GDIPlusX и подробно разбирая
различные примеры использования этой библиотеки в VFP-приложениях.
В первой статье из этой серии мы рассмотрели основы работы с библиотекой
GDIPlusX, в частности, как рисовать с помощью объекта Graphics, как задать
координаты и работать с цветом. На этот раз мы будем говорить о перьях и
кистях, а также о возможности задавать для них цвет, ширину и другие
атрибуты рисуемых вами контуров.
На диске, сопровождающем этот номер журнала, есть примеры кода, для которых
нужна самая последняя версия GDIPlusX, поэтому не забудьте скачать ее по
адресу http://vfpx.codeplex.com и сохранить полученную копию приложения
System.APP в одном каталоге с примерами кода.
Используйте преимущества
улучшенного языка запросов SQL!
В последних версиях VFP была существенно расширена функциональность
встроенных SQL-команд. Использование новых возможностей может сделать ваш
программный код более совершенным.
Тамар Е. Гранор, д-р философии (Tamar E. Granor, Ph.D.)
Когда в версии FoxPro 2 появились команды языка запросов SQL, мне не
потребовалось много времени, чтобы понять что они могли бы облегчить
программирование. В частности, очень привлекательной была SQL-команда SELECT,
поскольку она позволяла извлекать необходимые данные, указывая не то, какие
именно данные мне нужны, а то, каким образом их можно найти.
За прошедшее с тех пор время встроенные в VFP команды языка SQL стали важной
составляющей моего программистского арсенала. С годами список поддерживаемых
команд стал длиннее, а функциональные возможности отдельных команд
расширились.
Версия FoxPro 2 включала команды CREATE TABLE, CREATE CURSOR, SELECT и
INSERT. В версии VFP 3 появилась команда ALTER TABLE, и были добавлены
SQL-команды DELETE и UPDATE.
После выхода версии VFP 3 набор SQL-команд сохранялся в почти неизменном
виде вплоть до появления версии VFP 8, в которой были представлены несколько
новых предложений, а также некоторые новые правила. В версии VFP 9 были
значительно расширены функциональные возможности команд SELECT, DELETE и
UPDATE. В этой статье я продемонстрирую, как некоторые из самых последних
изменений могут упростить ваш код.
Арабские в Римские средствами
VFP 9
Джон Козиол (John Koziol)
Ричард Стантон как-то упомянул о своем старом проекте по переводу арабских
цифр в римские. После некоторых размышлений, я сказал, что справлюсь таким
проектов 30 программных строк или даже менее. Результат вы видите внизу.
Получилось неплохо, хотя, не знаю, какое практическое применение это может
иметь.
Почему BINDEVENT не работает
при изменении статусной строки?
Калвин Ся (Calvin
Hsia)
У разработчика возникла проблема и они прислал свой код:
PUBLIC oHandler
oHandler = NEWOBJECT("StatusBarText")
?BINDEVENT(_VFP,[STATUSBAR],oHandler,[STATUSBAR_CHANGE],1)
_VFP.StatusBar = "AAAA" && triggers handler
SET MESSAGE TO "1111" && does not trigger handler
*navigate menus: does not trigger handler
DEFINE CLASS StatusBarText AS Session
PROCEDURE StatusBar_Change
?PROGRAM(),_vfp.StatusBar
RETURN
ENDDEFINE
Код демонстрирует три способа изменения текста статусной строки. Только один
из них вызывает срабатывание привязанного к коду события.
Создание и запуск скриптов
PowerShell динамически
Калвин Ся (Calvin Hsia)
Скрипты PowerShell позволяют манипулировать файлами, реестром и COM
объектами, используя унифицированную метафору объектами. Например, вы можете
использовать CD и DIR в командной строке для навигации по файловой системе,
реестру и хранилищу сертификатов, если необходимо. |