Практическое программирование на Tcl и Tk
Book information
Description
В этой книге рассматривается широкий спектр вопросов, связанных с применением языка Tcl и расширения Тк. Здесь обсуждаются базовые средства составления Tcl-программ, динамическая генерация команд, использование регулярных выражений, ввод-вывод, управляемый событиями, компоненты Тк, работа с изображениями и цветом, установление соответствия между событиями и Tcl-командами средства конфигурирования и другие важные вопросы. Авторы также уделили внимание программированию Тс1-расширений на языке С. Данная книга будет полезна как опытным разработчикам, так и начинающим программистам. Оглавление Содержание Введение Некоторые аргументы в пользу выбора Tcl Версии Tcl и Тк Расширения Tcl и Тк Tcl в World Wide Web Ftp-архивы Группы новостей На кого рассчитана эта книга Как работать с данной книгой Примеры программ Соглашения о представлении материала Пиктограммы Как организована данная книга Особенности четвертого издания книги Благодарности за помощь в подготовке первого издания книги Благодарности за помощь в подготовке второго издания книги Благодарности за помощь в подготовке третьего издания книги Благодарности за помощь в подготовке четвертого издания книги Как связаться с автором книги Ждем ваших отзывов Часть I. Основы Tcl Глава 1. Общие сведения о языке Tcl Команды Tcl Hello, World! Переменные Подстановка команд Математические выражения Подстановка символов, представленных с помощью обратной косой черты Группировка с помощью фигурных скобок и двойных кавычек Особенности использования квадратных скобок Группировка перед подстановкой Группировка математических выражений с помощью фигурных скобок Примеры подстановки Процедуры Пример вычисления факториала Дополнительные сведения о переменных Особенности применения различных символов в именах переменных Команда unset Проверка наличия переменных Дополнительные сведения о математических выражениях Комментарии Правила подстановки и группировки Особенности группировки и подстановки Справочная информация Последовательности символов, начинающиеся с обратной косой черты Арифметические операции Встроенные математические функции Основные Tcl-команды Глава 2. Первые шаги Кохманда source Tcl-сценарии в системе Unix Главное меню Windows Macintosh OS 8/9 и ResEdit Macintosh OS X Команда console Параметры командной строки Опции командной строки, отображаемые программой wish Предопределенные переменные Глава 3. Простой CGI-сценарий Общие сведения о языке HTML Стандарт CGI и динамическое создание Web-страниц Сценарий guestbook.cgi Использование библиотечного файла Формирование начала HTML-документа Данные, генерируемые CGI-сценарием Использование массива Tcl в качестве базы данных Создание HTML-форм и обработка данных, введенных пользователем Форма newguest.html Пакеты ncgi и cgi.tcl Сценарий newguest.cgi Сохранение данных с помощью Тсl-сценариев Обработка ошибок в CGI-сценариях Усовершенствование сценария Глава 4. Обработка строк Команда string Индексы Строки в составе выражений Сравнение строк с шаблонами Классы символов Преобразование с помощью карты символов Команда append Команда format Команда scan Команда binary Шаблоны форматирования Примеры Двоичные данные и обмен с файлами Источники дополнительных сведений Глава 5. Списки Списки в языке Tcl Формирование списков Команда list Команда lappend Команда lset Команда concat Извлечение элементов списков: команды llength, lindex и Irange Изменение списков: команды linsert и lreplace Поиск в списке: команда lsearch Сортировка списков: команда lsort Команда split Команда join Источники дополнительных сведений Глава 6. Управляющие структуры Выражение if then else Команда switch Комментарии в составе команды switch Команда while Команда foreach Использование нескольких переменных цикла Работа с несколькими списками Команда for Команды break и continue Команда catch Обработка ситуаций, не являющихся ошибочными Команда error Команда return Глава 7. Процедуры и область видимости Команда ргос Изменение имен команд с помощью команды rename Область видимости Команда global Передача имени с помощью команды upvar Создание псевдонимов с помощью команды upvar Использование команды upvar для поддержки состояния объектов Пространства имен и команда upvar Команды, работающие с именами переменных Глава 8. Массивы Tcl Языковые средства для работы с массивами Индексы Переменные массивов Команда array Преобразование массивов в списки Передача имен массивов Создание структур данных на базе массивов Простые записи Стек Список массивов Простая база данных Альтернативы использованию массивов Глава 9. Работа с программами и файлами Запуск программ с помощью команды exec Переменная auto_noexec Особенности выполнения команды exec в системе Windows AppleScript в системе Macintosh Команда file Имена файлов на различных платформах Формирование пути: команда file join Выделение компонентов пути: команды split, dirname, tail Действия с файлами и каталогами Копирование файлов Создание каталогов Фиксированные и символьные ссылки Удаление файлов Переименование файлов и каталогов Атрибуты файлов Использование команд ввода-вывода Открытие файлов Создание канала связи с процессом Расширение Expect Чтение и запись данных Команды puts и gets Команда read Окончание строки символов Произвольный доступ к данным Закрытие каналов ввода-вывода Текущий каталог: команды cd и pwd Действия с файлами с использованием команды glob Расширение символа ~ Команды exit и pid Переменные окружения Команда registry Часть II. Расширенные средства Tcl Глава 10. Цитирование и использование команды eval Формирование кода с помощью команды list Команда eval Команды, выполняющие конкатенацию параметров Команды, обеспечивающие обратный вызов Командный префикс Динамическое формирование процедур Выполнение конкатенации в команде eval Использование команды eval в процедуре оболочки Проблемы с цитированием в команде eval Команда uplevel Команда subst Обработка строк с помощью команды subst Глава 11. Регулярные выражения В каких случаях целесообразно использовать регулярные выражения Решение часто возникающих проблем Правила записи регулярных выражений Сравнение символов Наборы символов Итераторы Оператор выбора Использование якорей Использование обратной косой черты Порядок установления соответствия Выделение подшаблонов Расширенные регулярные выражения Совместимость с шаблонами, поддерживаемыми в Tcl 8.0 Последовательности, начинающиеся с обратной косой черты Классы символов "Экономное" сопоставление Итераторы с ограниченным числом повторений Обратные ссылки Упреждающее сравнение Коды символов Элементы замены Классы эквивалентности Сравнение, чувствительное к переводу строки Встроенные опции Открытый синтаксис Синтаксис регулярных выражений Команда regexp Шаблон для разбора URL Проблемы, возникающие при использовании итераторов Примеры регулярных выражений Команда regsub Преобразование данных в программу с помощью regsub Декодирование URL Разбор CGI-параметров Декодирование HTML-примитивов Простая программа разбора HTML-кода Удаление HTML-комментариев Команды, использующие регулярные выражения Глава 12. Библиотеки сценариев и пакеты Доступ к пакетам: переменная auto_path Использование пакетов Автоматическая загрузка пакетов Пакеты, реализованные в виде С-программ Порядок загрузки пакетов Команда package Создание библиотек с помощью файла tcllndex Команда unknown Автозагрузка Запрет использования библиотеки: auto_noload Соглашения, действующие при интерактивной работе Автоматический вызов программ Предыстория вызова команд Сокращения имен команд Среда оболочки Tcl Расположение библиотеки сценариев Tcl Процедура tcl_findLibrary Стиль программирования Префиксы имен процедур Глобальные массивы и представление переменных состояния Официальные руководства Глава 13. Сведения об интерпретаторе и средства отладки Команда clock Команда info Переменные Процедуры Стек вызова Выполнение команд Сценарии и библиотеки Номера версий Среда выполнения Выполнение программ на различных платформах Контроль переменных и команд Контроль выполнения команд Переменные, предназначенные только для чтения Создание элементов массива с помощью команды trace Предыстория вызова команд Вызов команды history Обращение к предыстории в Tcl и С shell Отладка Tcl Dev Kit Отладчик с расширенными возможностями Инструмент Checker Инструмент Compiler Инструмент TclApp Инструмент Service Manager Инструмент Inspector Прочие инструменты Консоль tkcon Critcl Команда bgerror Команда tkerror Контроль производительности программ Информация о времени в файле протокола Tcl-компилятор Глава 14. Пространства имен Использование пространств имен Переменные в пространствах имен Составные имена Поиск команд Вложенные пространства имен Импортирование и экспортирование процедур Пространства имен и обратный вызов Интроспекция Команда namespace Преобразование существующих пакетов для работы с пространствами имен Объектная система [incr Tcl] Объектная система xotcl Замечания Имена компонентов, изображений и интерпретаторов Команда variable в глобальной области видимости Автозагрузка и процедура auto_import Пространства имен и команда uplevel Особенности именования пространств имен Дополнительные операции Глава 15. Интернационализация Наборы символов pi кодировки Системная кодировка Кодирование файлов и команда fconfigure Сценарии, представленные в различных кодировках Unicode и UTF-8 Двоичная кодировка Преобразование кодировок Команда encoding Каталоги сообщений Определение локального языка Управление файлами каталогов сообщений Каталоги сообщений и пространства имен Пакет msgcat Глава 16. Программы, управляемые событиями Цикл обработки событий Tcl Команда after Команда fileevent Команда vwait Команда fconfigure Неблокирующий режим ввода-вывода Команда fblocked Буферизация Преобразование символа конца строки Обработка символа конца файла Последовательные устройства Кодировки Настройка каналов ввода-вывода Глава 17. Использование сетевых гнезд Сетевые расширения Tcl Scotty Стандартная библиотека Tcl HTTP Гнезда на стороне клиента Опции, используемые при создании клиентских гнезд Серверные гнезда Опции, используемые при создании серверных гнезд Служба echo Получение данных по протоколу HTTP Proxy-серверы Запрос HEAD Запросы GET и POST Команда fcopy Пакет http Команда http::config Команда http::geturl Команда http::formatQuery Команды http::register и http::unregister Команда http::reset Команда http::cleanup Basic Authentication Глава 18. Web-сервер TclHttpd Интеграция TclHttpd с прикладными программами Архитектура TclHttpd Добавление кода к TclHttpd Модификация главной программы Обработчики доменов Состояние соединения и данные запроса Пакеты html и ncgi Передача клиенту результатов обработки запроса Application Direct Обработка данных, содержащихся в запросе Работа с MIME-типами Типы документов Шаблоны HTML + Tcl Размещение Tcl-кода Шаблоны и структура Web-узла Использование переменных для хранения информации о Web-узле Обработчики данных форм Обработчики Application Direct Шаблоны для обработчиков данных форм Формы самопроверки Пакет html Назначение процедур Стандартные модули Application Direct Информация о состоянии сервера Отладка Передача почтовых сообщений Дистрибутивный пакет TclHttpd Запуск сервера Состав дистрибутивного пакета Настройка сервера Опции командной строки Имя сервера и номер порта Идентификатор пользователя и группы Адрес администратора Web-узла Корневой каталог документов Различные установки для работы с документами Шаблоны документов Файлы протоколов Каталоги CGI Глава 19. Работа с несколькими интерпретаторами и использование Safe-Tcl Команда interp Создание интерпретаторов Иерархия интерпретаторов Имя интерпретатора в роли команды Использование команды list в составе interp eval Защищенные интерпретаторы Псевдонимы команд Интроспекция псевдонимов Скрытые команды Подстановка Поддержка ввода-вывода защищенными интерпретаторами Защищенная база Политики безопасности Ограничение доступа к гнездам Ограничения на использование временных файлов Защищенная команда after Глава 20. Safe-Tk и дополнительный модуль браузера Тк в ведомых интерпретаторах Встроенные окна Тк Ограничения Safe-Tk Дополнительный модуль браузера Переменные embed_args и plugin Пример дополнительного модуля Установка дополнительного модуля Политики безопасности и дополнительный модуль Пакет browser Настройка политик безопасности Файл config/plugin.cfg Конфигурационные файлы для политик Наборы возможностей Создание новой политики безопасности Глава 21. Многопотоковые Тсl-сценарии Что такое поток Поддержка потоков в Tcl Подготовка Tcl-интерпретатора с поддержкой потоков Использование расширений с многопотоковыми сценариями Использование расширения Thread Создание потоков Создание соединяемых потоков Передача сообщений потокам Передача синхронных сообщений Передача асинхронных сообщений Сохранение и освобождение потоков Обработка ошибок Разделяемые ресурсы Управление каналами ввода-вывода Доступ к файлам из различных потоков Передача каналов между потоками Разделяемые переменные Мютексы и переменные условий Мютексы Переменные условий Пулы потоков Команды пакета Thread Пространство имен thread Пространство имен tsv Пространство имен tpool Глава 22. Tclkit и Starkit Использование Tclkit Структура файла Starkit Доставка приложений в виде файлов Starkit Виртуальные файловые системы Обращение к содержимому ZIP-файла с помощью VFS Использование sdx для сборки приложений Создание простого файла Starkit Просмотр содержимого Starkit-файла Стандартная организация пакета Создание файла Starpack Использование виртуальной файловой системы пакета Starkit Создание tclhttpd.kit Создание разделяемых файлов Starkit Metakit Модель данных Metakit Обращение к базе данных Metakit Создание просмотров Metakit Сохранение данных в Starkit-файле Wikit и Wiki Особенности применения Starkit-файлов Наборы документов Самообновляющиеся приложения Простые инсталляторы Часть III. Основы Тк Глава 23. Общие сведения о Тк Тк-программа "Hello, World!" Именование компонентов Тк Настройка компонентов Тк Атрибуты компонентов Тк и база ресурсов Справочная информация Тк Команды Тк Команды для создания компонентов Команды для выполнения действий с компонентами Процедуры поддержки Наборы компонентов BLT Tix [incr Tk] и [incr Widgets] BWidgets TkTable Глава 24. Tk в примерах ExecLog Заголовок окна Фрейм для кнопок Командные кнопки Текстовая метка и элемент ввода Обработка нажатий клавиш и фокус ввода Размеры текста и полоса прокрутки Процедура Run Процедура Log Процедура Stop Работа на различных платформах Браузер Изменение размеров окон Управление состоянием Поиск файлов Каскадное меню Текстовый компонент, предназначенный только для чтения Тсl-оболочка Текстовые маркеры, дескрипторы и связывание Использование нескольких интерпретаторов Внешний вид окон Глава 25. Диспетчер компоновки pack Размещение относительно направления Размеры окон и команда pack propagate Горизонтальное и вертикальное размещение Модель полостей Пространство компоновки и пространство отображения Опция -fill Внутреннее дополнение, задаваемое с помощью опций -ipadx и -ipady Внешнее дополнение, задаваемое с помощью опций -padx и-pady Изменение размеров окон и опция -expand Фиксация Очередь компоновки Интроспекция Особенности компоновки полос прокрутки Выбор родительского компонента при компоновке Исключение компонента из очереди компоновки Правила компоновки Команда pack Стек окон Глава 26. Диспетчер компоновки grid Размещение компонентов в виде таблицы Опция -sticky Внешнее дополнение, реализуемое с помощью опций -padx и-pady Внутреннее дополнение, реализуемое с помощью опций -ipadx и -ipady Размещение нескольких компонентов в одной ячейке Объединение строк и столбцов Атрибуты строк и столбцов Дополнение строк и столбцов Минимальный размер ячейки Поддержка окон с изменяемыми размерами Опция -uniform Команда grid Глава 27. Диспетчер компоновки place Общие сведения о диспетчере компоновки place Управление панелями Разбор параметров и поддержка состояния Выравнивание фреймов Связывание событий Управление размещением фреймов Команда place Глава 28. Компонент panedwindow Использование panedwindow Управление содержимым панелей Программирование компонента panedwindow Атрибуты panedwindow Глава 29. Связывание команд с событиями Команда bind Команда bindtags Обработка нажатий клавиш и фокус ввода Использование команд break и continue Определение новых дескрипторов связывания Описание событий События клавиатуры События мыши Прочие события Связывания для окон верхнего уровня Модификаторы Последовательности событий Виртуальные события Генерация событий Информация о событиях Синтаксис команды event Ключевые слова событий Часть IV. Компоненты Тк Глава 30. Кнопки и меню Команды, вызываемые посредством кнопок, и области видимости Кнопки, связанные с Тс1-переменными Атрибуты кнопок Операции с кнопками Меню и menubutton Строка меню Системные меню Контекстные меню Меню опций Расположение пунктов меню в несколько столбцов События меню Выбор пунктов меню с помощью клавиатуры Виртуальные события меню Выполнение действий с меню Атрибуты меню Пакет для работы с меню по именам Комбинации клавиш для доступа к меню Глава 31. База данных ресурсов Общие сведения о ресурсах Шаблоны ресурсов Загрузка файла базы данных Включение записей в базу данных Обращение к базе данных Кнопки, определяемые пользователем Меню, определяемые пользователями Приложение и пользовательские ресурсы Особенности подстановки переменных Глава 32. Простые компоненты Тк Фреймы и окна верхнего уровня Атрибуты компонентов frame, labelframe и toplevel Использование компонента labelframe Включение других приложений Стили окон верхнего уровня Компонент label Атрибуты width и wrapLength Атрибуты компонента label Компонент message Атрибуты компонента message Выравнивание текста, содержащегося в компонентах label и message Компонент scale Связывания для компонента scale Атрибуты компонента scale Программирование линейных регуляторов Команда bell Глава 33. Полосы прокрутки Использование полос прокрутки Протокол взаимодействия с полосами прокрутки Операция set полосы прокрутки Операции xview и yview Компонент scrollbar Связывания для полос прокрутки Атрибуты компонента scrollbar Программирование полос прокрутки Глава 34. Поля редактирования и инкрементные регуляторы Использование полей редактирования Проверка содержимого полей редактирования Советы по использованию полей редактирования Использование компонента spinbox Связывания для компонентов entry и spinbox Атрибуты компонентов entry и spinbox Программирование полей редактирования и инкрементных регуляторов Глава 35. Окна списков Использование окон списков Выполнение действий с содержимым компонента listbox Программирование компонента listbox Компонент listbox Связывания для компонента listbox Режим выделения Browse Режим выделения single Режим выделения extended Режим выделения multiple Связывания для прокрутки Виртуальные события для компонента listbox Атрибуты компонента listbox Режим сетки Глава 36. Текстовый компонент Индексы Вставка и удаление текста Индексные выражения Сравнение индексов Текстовые маркеры Направление маркера Дескрипторы Атрибуты дескрипторов Использование атрибутов нескольких дескрипторов Междустрочный интервал и выравнивание Табуляторы Выделение Связывания для дескрипторов Поиск текста Встроенные компоненты Встроенные изображения Чтение содержимого текстового компонента Получение информации о дескрипторах Получение сведений о маркерах Дамп содержимого компонента Отмена выполненных действий Связывания и события Связывания для текстового компонента Виртуальные события Операции с текстом Атрибуты текстового компонента Глава 37. Компонент canvas Координаты холста Программа Hello, World! Дескрипторы холста Линейный регулятор для определения минимального и максимального значения Объекты холста Состояние холста и его объектов Штриховые линии Дуги Битовые карты Изображения Линии Овалы Многоугольники Прямоугольники Текстовые объекты Окна Операции над компонентом canvas Генерация Postscript-описаний Атрибуты компонента canvas Советы Экранные координаты и координаты холста Представление координат Масштабирование и вращение Работа с ресурсами Объекты, определяемые посредством большого количества точек Выбор объектов холста Часть V. Особенности работы Тк Глава 38. Выделение данных и буфер обмена Модель выделения Команда selection Команда clipboard Обработчики выделений Обработчик выделения для холста Глава 39. Диалоговые окна и фокус ввода Стандартные диалоговые окна Окна сообщений Диалоговые окна для работы с файлами и каталогами Диалоговые окна для выбора цвета Диалоговые окна, определяемые разработчиком Фокус ввода Команда focus Передача фокуса ввода Захват ввода Команда tkwait Удаление компонентов Совместное использование команд focus, grab и tkwait Диалоговое окно для ввода строки Комбинации клавиш и фокус ввода Анимация и команда update Глава 40. Атрибуты компонентов Тк Установка значения атрибутов Размеры компонента Обрамление и рельеф Подсветка компонентов, обладающих фокусом ввода Дополнение и точки фиксации Глава 41. Цвет, изображения и курсоры Работа с цветом Цветовые палитры Цветовые значения Карты отображения цвета и визуальные классы Битовые карты и изображения Команда image Битовые карты Атрибут bitmap Изображения photo Текстовый курсор Курсор мыши Глава 42. Шрифты и текстовые атрибуты Именование шрифтов Именованные шрифты Системные шрифты Шрифты Unicode Имена шрифтов X Window Особенности работы со шрифтами в ранних версиях Тк Метрика шрифта Команда font Текстовые атрибуты Размещение Атрибуты, управляющие выделенным текстом Использование сетки и изменение размеров Программа, реализующая выбор шрифтов Глава 43. Команда send Возможности команды send Команда send и авторизация X Window Сценарий, осуществляющий передачу данных Взаимодействие процессов Удаленное выполнение eval с использованием сетевых гнезд Глава 44. Диспетчеры окон Команда win Размеры, расположение и оформление окон верхнего уровня Пиктограммы Состояние сеанса Прочие операции с диспетчером окон Команда winfo Передача команд между приложениями Взаимосвязь между компонентами одного семейства Размер компонента Расположение компонентов Виртуальное корневое окно Работа с атомами и идентификаторами Карты отображения цвета и визуальные классы Команда tk Глава 45. Поддержка пользовательских установок Файлы, используемые приложением по умолчанию Определение пользовательских установок Интерфейс пользовательских установок Управление файлом пользовательских установок Отслеживание изменений в переменных пользовательских установок Доработка пакета Глава 46. Интерфейс для определения связываний Совместная работа окон списков Средства редактирования связываний Сохранение и загрузка связываний Часть VI. Программирование на языке С Глава 47. С-программы и язык Tcl Основные понятия Основные подходы к написанию С-кода для Tcl-приложения Командные процедуры С и объекты данных SWIG Инициализация Tcl Вызов Тсl-сценариев Использование библиотеки Tcl С Создание загружаемых пакетов Команда load Процедура инициализации пакета Использование Tcl_PkgProvide Командная процедура С Строковый командный интерфейс Коды завершения командных процедур Управление результирующими строками Командный интерфейс Tcl_Obj Управление счетчиком ссылок Tcl_Obj Модификация значений Tcl_Obj Проблемы, связанные с использованием разделяемых значений Tcl_Obj Команда blob Создание и удаление хэш-таблиц Тсl_Аllос, ckalloc и malloc Обработка параметров и использование Tcl_GetIndexFromObj Создание и удаление элементов хэш-таблицы Формирование списка Поддержка ссылок на значения Tcl_Obj Использование Tcl_ Preserve и Tcl_ Release для защиты данных Макрос CONST в Tcl 8.4 API Действия со строками и интернационализация Интерфейс DString Преобразование наборов символов Tcl_Main и Tcl_AppInit Tk_Main Цикл обработки событий Вызов сценариев из С-программ Разновидности Tcl_Eval Отказ от Tcl_Eval Глава 48. Компиляция Tcl и программных расширений Стандартная структура каталогов Дистрибутивный пакет Структура инсталляционного каталога Построение Tcl из исходных кодов Инструменты configure и autoconf Стандартные опции программы configure Инсталляция Использование библиотек-заглушек Использование autoconf Файл tcl.m4 Создание шаблонов Пример расширения Файл configure.in Файл Makefile.in Стандартные файлы заголовков Использование расширения Глава 49. Создание компонентов Тк на языке С Инициализация расширения Структура данных компонента Команда класса компонента Команда экземпляра компонента Установка и изменение значений атрибутов Определение атрибутов компонента Отображение часов Поддержка оконных событий Освобождение ресурсов Глава 50. Библиотеки С Общие сведения о С-библиотеке Tcl Инициализация приложения Создание и удаление интерпретаторов Создание и удаление команд Пакеты и динамическая загрузка Управление результирующими строками Распределение памяти Работа со списками Разбор команд Конвейерная обработка Отслеживание действий интерпретатора Выполнение Тсl-команд Информация об ошибках Действия с Тсl-переменными Обработка выражений Преобразование чисел Объекты Tcl Основные типы объектов Строковые объекты ByteArray для двоичных данных Динамические строки Наборы символов AssocData и структуры данных интерпретатора Хэш-таблицы Обработка опций Регулярные выражения и проверка строк Реализация цикла обработки событий Работа с файлами События таймера Обратные вызовы времени бездействия Ввод-вывод Драйверы каналов ввода-вывода Обработка имен файлов Получение информации о файловой системе Реализация виртуальной файловой системы Поддержка потоков Работа с сигналами Нормальное завершение программы Macintosh Аварийное завершение Прочие процедуры Общие сведения о С-библиотеке Тк Главная программа и параметры командной строки Создание окон Имя приложения для команды send Настройка окон Опции командной строки Координаты окон Стек окон Информация об окнах Установка атрибутов компонента Выделение данных и буфер обмена Интерфейс цикла обработки событий Обработка оконных событий Связывание событий Захват событий клавиатуры Обработка ошибок графического протокола Использование базы данных ресурсов Управление битовыми картами Создание новых типов изображений Использование изображений в составе компонентов Изображения photo Поддержка объектов холста Диспетчеры компоновки Идентификаторы строк Карты отображения цвета и визуальные классы Обрамления с имитацией трехмерных эффектов Курсоры мыши Шрифты и отображение текста Графический контекст Выделение памяти для карты пикселей Экранные единицы измерения Использование рельефа Позиция фиксации Стили концов линий Стили соединения линий Штриховые линии Стили выравнивания текста Атомы Управление идентификаторами ресурсов Дескрипторы приложений Windows Часть VII. Изменения в составе Tcl и Тк Глава 51. Tcl 7.4/Тк 4.0 Оболочка wish Средства, поддержка которых была прекращена Операция cget Подсветка при наличии фокуса ввода Связывания Полосы прокрутки Команда pack Поддержка фокуса ввода Команда send Внутреннее дополнение Значения переключателей опций Поле редактирования Меню Окна списков Атрибут geometry Текстовый компонент Атрибуты управления цветом Работа с цветом и команда tk colormodel Атрибут scrollincrement Выделение Команда bell Глава 52. Tcl 7.5/Tk 4.1 Выполнение сценариев на нескольких платформах Обработка имен файлов Преобразование символа новой строки Переменная tcl_platform Команда console Команда clock Команда load Команда package Использование нескольких переменных цикла Перенос цикла обработки событий из Тк в Tcl Сетевые гнезда Команда info hostname Команда fconfigure Использование нескольких интерпретаторов и Safe-Tcl Диспетчер компоновки grid Текстовый компонент Поле редактирования Глава 53. Tcl 7.6/Tk 4.2 Дополнительные операции file Виртуальные события Стандартные диалоговые окна Диспетчер компоновки grid Команда unsupported! в системе Macintosh Глава 54. Tcl/Tk 8.0 Тсl-компилятор Выявление ошибок при компиляции Поддержка двоичных строк Пространства имен Safe-Tcl Новый вариант lsort Переменная tcl_precision Соглашения 2000 Пакет http Обмен через последовательные линии связи Платформенно-независимые шрифты Команда tk scaling Включение приложений Платформенно-ориентированные меню Толщина обрамления Платформенно-ориентированные кнопки и полосы прокрутки Изображения в составе текстового компонента Команда destroy Команда grid Модификации версии 8.0 Опция -error команды fconfigure Элемент tcl_platform(debug) Процедура tcl_findLibrary Процедура auto_mkindex_old Символы клавиш Windows для работы с меню Событие MouseWheel Атрибут fill для текста на холсте Процедура safe::loadTk Глава 55. Tcl/Tk 8.1 Unicode и интернационализация приложений Опция -encoding команды fconfigure Команда encoding Пакет msgcat С API для работы с UTF-8 и Unicode Поддержка потоков Команда testthread Расширенные регулярные выражения Работа со строками Расширение DDE Дополнительные возможности Обмен через последовательные линии связи Элемент tcl_platform(user) Глава 56. Tcl/Tk 8.2 Модификация Trf Эффективные операции со строками Пустые имена массивов Особенности создания дополнительных модулей для браузера Управление последовательными портами в системе Windows Синтаксис расширенных регулярных выражений Глава 57. Tcl/Tk 8.3 Новые команды и опции для работы с файлами Новые опции команды glob Команды для работы с регулярными выражениями Результаты команды scan Удаление повторяющихся элементов списка с помощью lsort Удаление элементов массива Модификация команды clock Поддержка отложенной загрузки пакетов Дополнение Img Шаблон штриховых линий Особенности работы с холстом Скрытый текст Управление курсором мыши Проверка содержимого поля редактирования Прочие средства Тк Модификация окон списков Диалоговое окно для выбора каталогов Взаимодействие оконного диспетчера с окнами верхнего уровня Поддержка системных курсоров Windows Поддержка колесика прокрутки в системе Unix Новый модификатор Quadruple X Input Method (XIM) Модификации версии 8.3 Определение типа проверки Диалоговое окно выбора файлов в системе Macintosh Атрибут state для текстовых меток Поддержка пиктограмм в системе Windows Новые страницы интерактивной справочной системы Глава 58. Tcl/Tk 8.4 Поддержка 64-битового кода 64-битовая арифметика Преобразование 64-битовых значений Поддержка 64-битовой файловой системы Размер машинного слова Дополнительные средства для работы с файловой системой Виртуальные файловые системы Команды file и glob Работа со списками Поиск в массивах Расширенные средства поддержки обмена через последовательные линии Новые операторы сравнения строк Отслеживание выполнения команд Интроспекция Прочие изменения в составе Tcl Удаление неиспользуемых переменных Данные, возвращаемые командой regsub Повышенное разрешение таймера в системе Windows Модифицированная команда fcopy Новые компоненты Тк Отмена действий в текстовом компоненте и другие дополнения Новые возможности диспетчеров компоновки pack и grid Несимметричное дополнение Размеры строк и столбцов в диспетчере компоновки grid Отображение текста и изображений в составе компонента Новые атрибуты, определяющие рельеф кнопок Управление состоянием полей редактирования и окон списков Работа с оконным диспетчером Прочие изменения в составе Tk Автоповтор Поддержка прозрачных изображений Выбор нескольких файлов с помощью tk_getOpenFile Поддержка кнопок фиксированной ширины Доступ к содержимому буфера обмена Информация об использовании изображения Новые события для диспетчеров окон Управление текстовым курсором Новая опция команды bell Генерация Postscript-описаний для встроенных окон Глава 59. Содержимое компакт-диска Техническая подаержка Предметный указатель
Similar books
Практическое программирование на Tcl и Tk, tcl-source
2004 · RAR
Практическое программирование на Tcl и Tk sdarchive
2004 · RAR
Практическое программирование на Tcl и Tk
2004 · DJVU
Оборонная промышленность. Специальное обозрение. Рэнкинг предприятий Российского оборонно-промышленного комплекса в 2001 г. Пухов Р. Корпорации в российском ВПК уже есть. Бендукиндзе К. «Государство должно быть вменяемым заказчиком». Макиенко К. Зачем государству оборонка. Вопрос «Фокуса»: Должны ли предприятия оборонного комплекса участвовать в финансировании гособоронзаказа?. Пядушкин Н. Экспорт - наше главное оружие. Макиенко К. Международное сотрудничество в сфере ВПК сильнее национальных интересов. («Русский фокус», 22 июля - 19 августа 2002. Специальное обозрение «Оборонная промышленность»)
DJVU
Оборонная промышленность. Специальное обозрение. Рэнкинг предприятий Российского оборонно-промышленного комплекса в 2001 г. Пухов Р. Корпорации в российском ВПК уже есть. Бендукиндзе К. «Государство должно быть вменяемым заказчиком». Макиенко К. Зачем государству оборонка. Вопрос «Фокуса»: Должны ли предприятия оборонного комплекса участвовать в финансировании гособоронзаказа?. Пядушкин Н. Экспорт - наше главное оружие. Макиенко К. Международное сотрудничество в сфере ВПК сильнее национальных интересов. («Русский фокус», 22 июля - 19 августа 2002. Специальное обозрение «Оборонная промышленность»)
DJVU
Спасибо Вам! Воспоминания. Письма. Эссе
1998 · DJVU
«Минувшее меня объемлет живо...» : к 90-летнему юбилею И. В. Гура
2013 · DJVU
Труды УНИХИМ. Выпуск 66. Исследования и разработка технологии некоторых минеральных солей
1988 · DJVU