Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 63078
Имитационное мо... 58363
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

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

Расчет размера дохода на одного человека в Turbo Pascal
Диплом RSA, ЭЦП, сертификаты, шифрование на C#
Расчет мер близости на отношениях на Delphi + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Область (интервал ячеек)



Попробуем задать координаты области и поработать с ними. В первую оче-
редь нас могут заинтересовать такие параметры этой области, как количест-
во ячеек и ее реальный адрес на листе рабочей книги 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 12:28:29 · 0 Комментариев · 7393 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Аватары в комме...
ИНТЕРНЕТ ПРОГРАММ...
DiskInfo
PDJXPPack
Animated Menus
CABfiles
MP3 Архив v.2.0
iComm v.6.1 - выв...
Панель поиска
BSButton
Delphi. Готовые а...
Crypt32
Архив программ
Простой текстовый...
AlignEdit
WAP версия сайта
PHP: настольная к...
Adapter (пример D...
index.php + мод ...
Игра змейка

Топ загрузок
Приложение Клие... 100481
Delphi 7 Enterp... 87900
Converter AMR<-... 20082
GPSS World Stud... 13568
Borland C++Buil... 12072
Borland Delphi ... 8676
Turbo Pascal fo... 7048
Visual Studio 2... 5005
Калькулятор [Ис... 4912
FreeSMS v1.3.1 3545
Случайные статьи
inf (тир systemroo...
Как сделать схему ...
коммутируемых и VP...
MIPS-архитектура,
Основная работа ок...
Как расколоть орешек
INDEX (ИНДЕКСИРОВАТЬ)
Хорошие советы для...
подкаталог Ех73
Получение ресурсов...
Шашки на Strawberr...
Настройки программ...
ДЫРЯВЫЕ АБСТРАКЦИИ
Процедура Getlmage...
Операции записи да...
Судно следует по м...
Анализируя выигрыш...
Разновидности форм
зательно
MissingMappingAction
Кейс-модинг
Даны m натуральных...
1.3. Схема алгорит...
Однокоренная иерархия
История возникнове...
Статистика



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


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