Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 13
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование круглосуточного интернет кафе на GPSS + Отчет
Метод конечных разностей для интерполяции/экстраполяции на Delphi
Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...

Область (интервал ячеек)



Попробуем задать координаты области и поработать с ними. В первую оче-
редь нас могут заинтересовать такие параметры этой области, как количест-
во ячеек и ее реальный адрес на листе рабочей книги Excel. Во-вторых, нам
будет полезно узнать, как изменить, скопировать или очистить содержание
ячеек этой области.

Рис. 12.10. Запись и чтение комментария для ячейки
Рассмотрим в качестве примера следующие процедуры (см. приложение на
сопроводительном диске книги).
Параметры области, заполнение ячеек области
procedure TOKBottomDlg3.addresExit(Sender: TObject);
begin
// Определяем ссылку на область
Range:=forml.E.ActiveSheet.Range[addres.Text];
count.Text:=inttostr(Range.Count); // Количество ячеек в области
area addres.Text:=Range.Address; // Реальный адрес области
end;
procedure TOKBottomDlg3.ButtonlClick(Sender: TObject);
begin
// Выделяем область
Range.Select;
end;
procedure TOKBottomDlg3.Button3Click(Sender: TObject);
begin
// Очищаем область
Range, deadend;
procedure TOKBottomDlg3.Button2Click(Sender: TObject);
begin
// Заполняем ячейки выбранной области
Range.Value:=textl.Text;
end;



Результат выполнения процедуры заполнения ячеек области представлен
на рис. 12.11.

Рис. 12.11. Заполнение ячеек области
К области можно применять почти все методы, которые мы применяли к
одной ячейке. Есть и дополнительные возможности, присущие области.
Важной особенностью является использование виртуального адреса внутри
заданной области. Это означает, что внутри области можно задавать адреса,
начиная с адреса А1 для верхней левой ячейки области. Эта замечательная
особенность обусловлена тем, что объект Range включает в себя такой же
по характеристикам дочерний объект Range. Первая ячейка дочернего объ-
екта имеет виртуальный адрес А1, а ее реальный адрес совпадает с адресом
начала области. Это может избавить программиста от многих проблем, свя-
занных с адресацией ячеек, и существенно упростить исходный текст про-
граммы. Например, зададим адрес и размер области 'B5.F15'. Получим
ссылку на нее:
Range:=E.ActiveSheet.Range['B5:F15'] ;



После этого определим дочернюю область, принадлежащую заданной облас-
ти. Для этого используем оператор:
MyRange:=Range['Al:В2'];



Область MyRange принадлежит области Range и находится в ее начале. Да-
лее заполним ячейки области MyRange строкой символов, например:
MyRange.Value:='222';



Все эти манипуляции можно выполнить иначе (см. следующую процедуру).
Использование виртуальной области
procedure TOKBottomDlg3.Button4Click(Sender: TObject);
begin
Range.Range[addres1.Text].Value:=text2.Text;
end;



Результат будет таким же (рис. 12.12).
Мы рассмотрели случаи, когда область задается программным путем по-
средством адресов. Но часто пользователь просто выделяет область ячеек, а
затем выполняет с ней последовательность каких-либо действий. Програм-
мист Delphi, разрабатывая свое приложение, должен учесть этот случай и
обработать выделенную часть листа рабоче# книги Excel. Одним из свойств
объекта Application является объект Selection, который обладает множеством
свойств и методов, присущих визуальным компонентам Excel, в том числе
некоторыми свойствами объекта Range, позволяющими обеспечить доступ к
выделенной области. В общем случае для обеспечения доступа к выделен-
ным ячейкам можно воспользоваться оператором
Range:=Е.Selection;



который присваивает переменной Range значение ссылки на область выде-
ленных ячеек. После этого программист может воздействовать на эту об-
ласть.
Есть и другой способ обращения к выделенной области — без использова-
ния промежуточных ссылочных переменных. Можно напрямую применять
к объекту Selection методы и использовать свойства объекта Range, но толь-
ко когда выделена хотя бы одна ячейка. Следующие процедуры демонстри-
руют это.

Рис. 12.12. Работа с виртуальной областью
Определение адреса и заполнение выделенной области

procedure TOKBottomDlg3.ButtonUClick(Sender: TObject);
begin
address_s.Text:=E.Selection.Address;
end;
procedure TOKBottomDlg3.Buttonl2Click(Sender: TObject);
begin
E.Selection.Value:=text_s.Text;
end;



На рис. 12.13 представлена форма приложения Delphi, в которой использу-
ются представленные процедуры, определяющие адрес выделенной области
и заполняющие все ее ячейки значением, выбранным пользователем этого
приложения.

Рис. 12.13. Работа с областью выделенных ячеек
Когда требуется программно выделить интервал ячеек листа Excel, исполь-
зуют метод Select объекта Range. После этого можно обращаться к ячейкам
уже как к выделенной области, используя объект Selection.
Обычно к выделенной области применяют методы, позволяющие копиро-
вать ее содержимое в буфер обмена (метод Сору), или, реже, методы, по-
зволяющие переместить (метод Cut) содержимое в другую область или при-
ложение или документ. Выделенную область ячеек можно также заменить
информацией из буфера обмена (метод PasteSpecial). Все эти методы ис-
пользуются, как правило, применительно к объекту Selection, но иногда бы-
вает необходимо применить их непосредственно к ячейкам или областям
ячеек, используя объект Range. Все зависит от конкретной постановки зада-
чи и от стиля программирования.
Программное выделение и очистка области
procedure TOKBottomDlg3.ButtonlClick(Sender: TObject)
begin
Range.Select;
end;
procedure TOKBottomDlg3.Buttonl3Click(Sender: TObject);
begin
E. Selection.deadend;



От объектов, описывающих ячейки и области, перейдем к другим объек-
там — столбцам и строкам. Если задана область ячеек и получена ссылка
Range на нее, то количество столбцов будет определяться свойством Count
коллекции Columns объекта Range, а количество строк — свойством Count
коллекции Rows объекта Range. Доступ ко всем строкам и столбцам листа
рабочей книги предоставляют коллекции Rows и Columns объекта
ActiveSheet — активного листа рабочей книги. Следующие процедуры по-
зволяют, соответственно, определить количество строк и столбцов, очистить
ячейки в выбранных столбцах и строках и заполнить их.
Очистка и заполнение ячеек строк и столбцов листа рабочей книги
procedure TOKBottomDlg3.FormCreate(Sender: TObject);
begin
row_ount.text:=inttostr(forml.E.Application.ActiveSheet.Rows.Count);
col_ount.text:=inttostr(forml.E.Application.ActiveSheet.Columns.Count);
end;
procedure TOKBottomDlg3.Button7Click(Sender: TObject);
begin
E.ActiveSheet.Rows[Row.Value].Clear;
E.ActiveSheet.Rows[Row.Value].Value:= text_rc.Text;
end;
procedure TOKBottomDlg3.Button8Click(Sender: TObject);
begin
E.ActiveSheet.Columns[Col.Value].Clear;
E.ActiveSheet.Columns[Col.Value].Value:= t ext_rc.Text;
end;



На рис. 12.14 показан результат выполнения представленных процедур.
Опубликовал Kest September 29 2009 08:28:29 · 0 Комментариев · 10503 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Профессиональное ...
Панель Календарь
База каталогов ( ...
TmxOutlookBarPro
Ильдар Хабибуллин...
Простой текстовый...
Приложение Клиент...
Создание меню на ...
Пример OpenGL гра...
C++ Стандартная б...
Проигрыватель Mp3
Сапёр
Разработка клиент...
Delphi 2005 для .NET
Размещение элемен...
Род Стивенс. Delp...
Графика в проекта...
Info
Delphi 6 программ...
Flash MP3 Player ...

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20261
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
Этап 5 - использов...
Евровидение 2017
Утилиты: библиотек...
Сборка. Продолжение
Счет в Сингапуре
Разреженные массивы
NUKE. Факты из ист...
Как заработать в к...
Абстрактные типы д...
Чтобы гарантироват...
Игровой зал всех п...
15.6. Дополнительн...
Париматч: киберспо...
Error in expression
БЛУЖДАНИЯ БЕЗ ОРИЕ...
Использование кома...
Рис. 10.2. Разреже...
5.1.1. Вывод термов
Services for Macin...
Тип данных boolean...
Звуковая карта
АНТИПАТТЕРН: ИСПОЛ...
Функции обработки ...
Прожигатетели врем...
повлиять на развер...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?