Работа с таблицами в Delphi
Редактирование таблиц в среде программирования. Свойство StringGrid и его применение. Классификация и особенности событий. Приёмы программирования: очистка таблиц, сохранение их в файл, закрашивание ячеек и помещение в них изображения, удаление строк.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.12.2013 |
Размер файла | 65,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2
Размещено на http://www.allbest.ru/
Уральский финансово-экономический колледж
Курсовая работа
На тему: «Работа с таблицами в Delphi»
учащегося III курса
дневного обучения
Группы П-31:
Кулиша А.А.
Руководитель: Арсенова А.А
Уральск, 2013
Содержание
таблица программирование stringgrid сохранение удаление
Введение
1. История Delphi. Работа с таблицами в среде программирования
2. StringGrid и его применение
2.1 Таблица StringGrid, основные сведения
2.2 Свойство StringGrid
2.3 События
3. Приёмы программирования
3.1 Как сохранить таблицу StringGrid в файл
3.2 Как полностью очистить таблицу StringGrid
3.3 Как закрасить ячейку StringGrid
3.4 Как поместить изображение в ячейку таблицы StringGrid
3.5 Как выделить несколько ячеек таблицы StringGrid
3.6 Как удалить нужную строку в таблице StringGrid
Заключение
Список использованной литературы
Введение
В данной курсовой работе рассматриваются основные принципы использовании базы данных в современном мире.
Благодаря таблицам, человек научился систематизировать информацию и приводить ее в некий порядок. Именно в таблицах можно увидеть Прогресс или Регресс того или иного предприятия, рассматривая в ней его экономические показатели. Именно в таблицах составляются все необходимые отчетные документы, связанные также с финансовой отчетностью, поскольку в таблицах легко проследить за тем, кто и сотрудников организации, сколько получает, когда у него отпуск, как долго он работает в данном направлении с тем или иным коллективом, и многие другие данные.
Еще, таблицы помогают при написании Контрольных, курсовых и дипломных работ, поскольку так структурировать информацию, как это могут таблицы, не может никто.
Только в таблицах отмечаются показатели спортсменов, их успех в том или ином виде спорта, только в таблицах работают сотрудники статистических учреждений и организаций, поскольку только благодаря ним, в этом мире возможен порядок и определенная организация имеющейся информации.
Цель курсового проекта является умение создать
Задачи курсового проекта
В самом деле, зачем нужны таблицы? Казалось бы, у них достаточно узкое назначение: представлять большие объемы числовой и текстовой информации на ограниченном пространстве. Что это нам даст?
Актуализация
Полистайте книгу с начала до конца и наоборот. Что вы видите? Сплошной текст, "льющийся" по страницам. Абзацы текста, рисунки, таблицы находятся в этом "потоке" последовательно, один за другим. Они не могут "вырваться" из этого "потока". Невозможно поместить на одном и том же месте одновременно и рисунок, и таблицу -- элементы страницы могут быть расположены только последовательно, один за другим.
"Поток" текста хорош для художественных произведений и руководств, последовательно описывающих какие-либо действия, необходимые для достижения результата. В этом случае текст читается с начала и до конца без резких "скачков" туда-сюда. "Поток" текста очень плох для технических статей, нуждающихся в многочисленных пояснениях, дополнениях и иллюстрациях; в этом случае нужно иметь перед глазами и первое, и второе, и третье, и четвертое. Также "поток" текста абсолютно не подходит для газет: читатель не хочет листать газету взад-вперед в поисках нужной статьи, а хочет видеть все главные новости на ее первой странице. Вот поэтому большинство число людей ищут пути "вырваться" из жестких рамок "потока" текста. Ищут с разным успехом.
1. История Delphi. Работа с таблицами в средах программирования
История Delphi
В 1993 году Microsoft выпустила первую визуальную среду программирования Visual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В ответ на это Borland в 1995 году выпустила первую версию Delphi (процедурный объектно-ориентированный язык высокого уровня фирмы Borland International, базирующийся на объектно-ориентированной версии языка Turbo Pascal и одноименная визуальная среда разработки), а затем, с интервалом в 1 год, - еще 4 версии: 2, 3, 4 и 5. В середине 2001 г. выпускается версия 6, а в 2002 была выпущена версия 7. Недавно вышла Delphi 8 весомо отличающаяся от предыдущих версий.
Не секрет, что лучшим языком для изучения и освоения программирования является Паскаль, а лучшей в мире системой программирования для MS-DOS - Turbo Pascal. Delphi продолжила серию Паскаль-ориентированных средств программирования и, по моему глубокому убеждению, является наиболее удобным инструментом для Windows-программирования.
Работа с таблицами с таблицами в средах программирования
Существует множество задач требующих работы с таблицами. Есть и множество табличных пакетов с разнообразными методами решения, например, матричных задач - от простых матриц до задач линейного (и не только) программирования. В зависимости от знаний и возможностей исполнителя используют Excel, Origin, Statgraph, Statistica, математические пакеты Mathematica, MatCad или другие. Однако в процессе обучения программированию эти пакеты не лучшие помощники и обычно при работе в Visual-средах Delphi, MS Visual Studio используются компоненты для создания и работы с таблицами. Если до появления MS Visual Studio. Net (MS VS) 2003 лидером считалась среда Delphi, то новая разработка одного из авторов Delphi А.Хейлсберга казалось бы должна была сменить лидера. Попробуем разобраться так ли это.
Начиная с Delphi 3 и до Delphi 8 создание и обращение к элементам таблицы производится по схожим правилам - программист указывает адрес ячейки по индексам столбца и строки следующей записью - StringGrid1.Cells[i,j]:= …; (если это первый объект StringGrid). Просто и удобно. Надо только помнить о методах перевода строковой переменной в один из числовых форматов (например, StrToInt () и т.п.). Индексация начинается с позиции 0,0.
Разрабатывая Visual Studio 2003 и последующие 2005 и 2008 MicroSoft, по-видимому, ориентировалась на работу по созданию интерфейса управления базами данных. Иначе трудно объяснить сложности создания таблиц для решения именно математических задач. В MS VS 2003 таблица формируется программно, в окне Properties для объекта DataGrid нет явной возможности прописать количество столбцов и строк. В Delphi эта возможность есть в инспекторе объектов (Object Inspector), можно задать количество столбцов и строк и в дальнейшем, при необходимости, программно изменять. Обращение к таблице в Visual Studio 2003 длиннее и требует большей квалификации программиста, надо например, знать правила образования объекта таблица и методы обращения к ячейкам таблицы. Причем, таких возможностей несколько. Студенты на младших курсах еще недостаточно подготовлены для работы в визуальных средах и им трудно привыкать к мысли, что есть разные варианты правильного решения одной и той же задачи. В версиях Visual Studio 2005 и старше разработчики сменили правила образования таблицы. Можно используя контекстное меню объекта DataGridView прописать количество озаглавленных столбцов, добавляя строки программно по мере их необходимости. Это уже удобнее и вполне соответствует технологии быстрой разработки приложений. Но все же только программное определение количества строк не совсем соответствует принципу RAD. В обеих средах имеются системы интеллектуальных подсказчиков помогающих в выборе свойств и методов объектов. В Visual Studio эта система более развита, а совместно с документацией MSDN AA предоставляется полная информация по всем используемым языкамn программирования и самой среде.
Из опыта преподавания студентам визуальных сред программирования можно сделать следующий вывод - для обучения, особенно для математических вычислений, работ с табличными данными удобнее использовать Delphi. Для работ с подключением баз данных проще и быстрее использовать MS Visual Studio начиная с версии 2005.
2. StringGrid и его применение
Таблица StringGrid предоставляет все основные возможности для размещения текстовых, а также графических данных в табличной форме. А так как данные имеют "странное" свойство группироваться по строкам и столбцам, то таблица StringGrid имеет важное значение в программировании в системе Delphi. Конечно, для работы с таблицами баз данных в Delphi существует специализированные компоненты. Но в обычных приложениях для работы с табличными данными в Delphi применяется именно компонент StringGrid.
Таблица StringGrid имеет гибкие возможности по настройке своего вида - ширины и высоты отдельных строк и столбцов, как и их количество на этапе проектирования и программно, размера фиксированной области и области редактирования, выделения как отдельной ячейки, так и зоны из нескольких ячеек, и т.д. Доступ к содержимому каждой отдельной ячейки предоставляется по индексу - номеру столбца и строки, в которых она находится.
Если ячейки не помещаются в размеры таблицы, автоматически добавляются как вертикальная, так и горизонтальная полосы прокрутки. Причём в каждый момент известны номера видимых строк и столбцов, и эта область доступна для управления. Таким образом, мы можем программно перемещать в область видимости те ячейки, где содержатся нужные нам данные.
События, на которые может реагировать таблица StringGrid, также разнообразны и предоставляют программисту широкие возможности по созданию программ, использующих таблицы, наполненные необходимой функциональностью. Всегда можно отследить нажатие и отпускание как кнопок клавиатуры так и мышки, выделение и перемещение ячеек, их редактирование.
2.1 Таблица StringGrid, основные сведения
Компонент StringGrid это таблица, содержащая данные, такие как строки типа TString, а также изображения. Таблица может быть только для чтения или редактируемой. Таблица имеет возможность прокрутки, однако некоторое число первых столбцов и строк можно сделать фиксированным - без прокрутки. Этим способом задаются заголовки столбцов и строк, которые должны постоянно отображаться в окне компонента.
Основные свойства компонента, определяющие отображаемый текст:
Строка, содержащаяся в ячейке с адресом (ACol, ARow)
Cells[ACol, ARow: Integer]: String;
Набор строк, содержащийся в столбце с индексом Index
Cols[Index: Integer]: TStrings;
Набор строк, содержащийся в строке с индексом Index
Rows[Index: Integer]: TStrings;
Объект, связанный со строкой, содержащейся в ячейке с адресом (ACol, ARow)
Objects [ACol, ARow: Integer]: TObject;
Все эти свойства отсутствуют в Инспектре Объектов, но доступны во время выполнения. Задавать содержимое ячеек программно можно как по отдельным ячейкам, так и сразу по столбцам и строкам с помощью методов класса TStrings.
Свойства таблицы StringGrid
* ColCount и RowCount - количество строк и столбцов соответственно;
* FixedCols и FixedRows - количество первых, не прокручиваемых столбцов и строк;
* FixedColor - цвет фона фиксированных ячеек;
* LeftCol и TopRow - индексы самого левого и самого верхнего видимых в настоящий момент столбца и строки при прокрутке.
Свойство ScrollBars отвечает за полосы прокрутки. При ScrollBars<>sbNone полосы прокрутки появляются автоматически , если таблица не помещается в заданный размер.
Содержимое свойства Options определяет такие свойства таблицы как:
* goFixedVertLine и goFixedHorzLine - наличие разделительных линий между фиксированными ячейками;
* goVertLine и goHorzLine - наличие разделительных линий между обычными ячейками;
* goColSizing и goRowSizing - возможность менять мышкой ширину столбцов и высоту строк;
* goColMoving и goRowMoving - возможность перемещать столбцы и строки целиком;
* goEditing - возможность редактировать содержимое таблицы,
и многие другие.
Компонент StringGrid используется в программе для выбора значений, содержащихся в ячейках. Свойства Col и Row показывают индексы столбца и строки выделенной (имеющей фокус) в настоящий момент ячейки. Также возможно выделение региона ячеек, как объекта.
Среди событий компонента StringGrid есть важное событие OnSelectСell, возникающее при выборе той или иной ячейки, но ещё до фактического перемещения в неё фокуса. В обработчик этого события передаются параметры ACol и ARow -- столбец и строка выбранной ячейки, и CanSelect -- допустимость выбора.
Значение параметра CanSelect=False используется для запрета перемещения в выбранную ячейку. А параметры ACol и ARow могут использоваться для опережающей реакции программы на выбор той или иной ячейки.
2.2 Свойство StringGrid
Свойства таблицы StringGrid включают в себя как свойства компонента StringGrid определяющие как её "внешний вид" и положение на Форме по отношению к другим элементам интерфейса, так и свойства компонента StringGrid по размещению и хранению информации.
Свойства всех объектов на Форме отображаются в окне Инспектора объектов, который для таблицы StringGrid выглядит так, как на рисунке слева.
Таблица StringGrid также обладает очень важным и полезным свойством, характерным для компонентов с графическими возможностями - Canvas (канва). Это свойство позволяет как произвольно рисовать в пределах таблицы, так и размещать в ячейках рисунки и другие графические данные. А также именно это свойство позволяет управлять расположением строк в ячейках. Дело в том, что сама таблица StringGrid размещает содержимое своих ячеек у их левого края. Программист, работая с канвой таблицы, может разместить данные как по центру, так и у правого края ячеек, в зависимости от потребностей.
Тем самым, таблица StringGrid обладает широким спектром свойств, помогающим программисту придать нужный стиль, соответствующий дизайн и информационную наполненность приложениям, использующим табличное представление и обработку рабочих данных.
2.3 События
События StringGrid позволяют разрабатывать на её основе таблицы данных, реагирующие на широкий спектр событий, происходящих вследствие действий пользователя. Правильно запрограммированная таблица StringGrid может реагировать на такие события как одиночный и двойной щелчки мышки, изменение и перемещение строк и столбцов, выбор той иной ячейки, на действия пользователя во время редактирования содержимого ячеек, и множество других событий. Щелчок левой кнопкой мышки (событие OnClick) вызывает перемещение фокуса выделения к выбранной ячейке. Перемещение по щелчку правой кнопкой нужно прописывать в обработчике события OnMouseDown. Это нужно, например, когда необходимо вызвать контекстное меню таблицы, реагирующее на номер столбца или строки выбранной ячейки.
Событие OnSelectCell происходит непосредственно перед перемещением фокуса выделения в выбранную ячейку. Имеющиеся в обработчике параметры позволяют проанализировать строку и столбец и запретить перемещение.
События OnGetEditText и OnSetEditText позволяют получать содержимое ячейки перед началом редактирования и после редактирования содержимого выбранной ячейки. Манипулируя параметром Value обработчиком этих событий, можно как угодно изменять результат редактирования.
Событие OnClick
Событие OnClick компонента StringGrid происходит в момент щелчка по компоненту StringGrid. Обработчик события щелчка мыши по компоненту может содержать реакцию программы на щелчок пользователем по таблице.
Событие OnClick относится ко всему компоненту StringGrid, безотносительно к ячейке таблицы, по которой происходит щелчок. Однако, поскольку при щелчке по компоненту StringGrid происходит перемещение фокуса ввода на выбранную ячейку, то в обработчике этого события можно запрограммировать соответствующую реакцию таблицы на выбор той или иной ячейки.
Событие OnDblClick
Событие OnDblClick компонента StringGrid может содержать обработчик события двойного щелчка мыши по компоненту. Событие OnDblClick относится ко всему компоненту StringGrid, безотносительно к ячейке таблицы, по которой происходит двойной щелчок.
Единственный параметр обработчика события OnDblClick - Sender, позволяет назначить нескольким компонентам StringGrid один и тот же обработчик этого события. Пример работы с параметром Sender - на странице OnClick.
Событие OnColumnMoved
Событие OnColumnMoved компонента StringGrid происходит в момент перемещения пользователем с помощью мыши столбца таблицы с места, где он расположен, в новое местоположение.
Для перемещения столбца нужно навести указатель мыши на заголовок столбца (одну из ячеек фиксированной зоны в этом столбце), нажать левую кнопку мышки и, удерживая её в нажатом положении, переместить указатель к новому местоположению столбца.
Событие OnEnter
Событие OnEnter компонента StringGrid происходит в момент получения компонентом StringGrid фокуса ввода. Происходить это может как вручную, кликом мышки или нажатием клавиши Tab, так и программно, с помощью оператора
Событие OnExit
Событие OnExit компонента StringGrid происходит в момент перехода фокуса ввода с таблицы на другой компонент Delphi. При переходе фокуса ввода из одной ячейки в другую ячейку таблицы событие OnExit не происходит, так как фокус ввода остаётся в пределах этого компонента.
Событие OnExit происходит при выборе другого компонента либо щелчком мышкой, либо нажатием клавиши Tab, либо программно - применением метода SetFocus какого-либо другого компонента. Однако, этот компонент должен быть в состоянии принять фокус ввода. Если компонент не может обладать фокусом ввода, либо принять его в данный момент, то событие OnExit не произойдёт.
Событие OnRowMoved
Событие OnRowMoved компонента StringGrid происходит в момент перемещения пользователем с помощью мыши строки таблицы с места, где она расположена, в новое местоположение.
Для перемещения строки нужно навести указатель мыши на заголовок строки (одну из ячеек фиксированной зоны в этой строке), нажать левую кнопку мышки и, удерживая её в нажатом положении, переместить указатель к новому местоположению строки.
Непосредственно событие OnRowMoved происходит в момент отпускания кнопки мышки.
Для того, чтобы событие OnRowMoved могло вообще наступить, необходимо установить в True параметр goRowMoving в свойстве Options компонента. Сделать это можно как в Инспекторе Объектов на этапе проектирования, так и программно.
Событие OnDrawCell
Событие OnDrawCell компонента StringGrid управляет обрисовкой таблицы. Размещая в обработчике события OnDrawCell программный код, можно раскрашивать ячейки, выводить рисунки, и делать текстовые надписи, занимающие в ячейке не только одну, но и несколько строк.
Пожалуй, событие OnDrawCell одно из самых непонятных для новичков. По сравнению с другими событиями в Delphi, вызывает непонимание то, каким способом событие OnDrawCell можно вызвать.
Событие OnSelectCell
Событие OnSelectCell компонента StringGrid происходит в момент перехода фокуса ввода в одну из ячеек таблицы StringGrid, однако ещё до непосредственного перехода. Причём неважно, как это сделано, пользователем вручную или программно.
Событие OnKeyDown
Событие OnKeyDown компонента StringGrid происходит при нажатии клавиши на клавиатуре, в момент когда клавиша находится в нижнем положении. Параметр, Shift, имеющий тип TShiftState, поможет определить, какие управляющие клавиши были нажаты совместно с нажатием нашей клавиши. Тип TShiftState это множество, состоящее из одного или нескольких следующих значений:
TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
Событие OnKeyPress
Событие OnKeyPress компонента StringGrid происходит при нажатии клавиши на клавиатуре. Событие OnKeyPress происходит после события OnKeyDown, но перед событием OnKeyUp. Обработчик события OnKeyPress имеет следующий вид:
Переменная Key, содержащая код нажатой клавиши, имеет тип Char, то есть символ, поэтому, в отличие от событий OnKeyDown и OnKeyUp событие OnKeyPress происходит при нажатии не любых, а только символьных клавиш.
Кроме того, переменная Key используется с ключевым словом var, которое означает что значение переменной Key может быть переопределено с передачей значения вовне процедуры. Эффект такого переопределения таков, как будто вместо действительно нажатой была нажата другая клавиша, имеющая значение соответствующего символа.
Событие OnKeyUp
Событие OnKeyUp компонента StringGrid происходит при нажатии клавиши на клавиатуре, в момент когда клавиша находится в верхнем положении, то есть уже отпущена. Видим, что переменная Key, содержащая код нажатой клавиши, имеет тип Word, то есть число в диапазоне 0 .. +65535. Это означает, что событие OnKeyUp наступает при нажатии не только символьных, но также и управляющих, то есть любых клавиш на клавиатуре. Кроме того, переменная Key используется с ключевым словом var, которое означает что значение переменной Key может быть переопределено с передачей значения вовне процедуры. Эффект такого переопределения таков, как будто вместо действительно нажатой была нажата другая клавиша, имеющая соответствующий код.
Событие OnMouseDown
Событие OnMouseDown компонента StringGrid происходит при нажатии клавиши мыши. Причём событие OnMouseDown вызывается при нажатии любой клавиши, левой, правой или средней. Событие OnMouseDown происходит в нижнем положении клавиши, непосредственно в момент нажатия.
Определить, какая именно клавиша была нажата и параметры нажатия, помогут встроенные переменные обработчика события. Обработчик события OnMouseDown имеет следующий вид:
Событие OnMouseMove
Событие OnMouseMove компонента StringGrid происходит при перемещении мыши в границах компонента StringGrid. Видим, что в отличие от обработчиков событий OnMouseDown и OnMouseUp в обработчике события OnMouseMove отсутствует параметр Button, а коды зажатых при перемещении клавиш содержатся в параметре Shift.
Событие OnMouseUp
Событие OnMouseUp компонента StringGrid происходит при нажатии клавиши мыши. Причём событие OnMouseUp вызывается при нажатии любой клавиши, левой, правой или средней. Событие OnMouseUp происходит в момент отпускания клавиши.
Определить, какая именно клавиша была нажата и параметры нажатия, помогут встроенные переменные обработчика события.
3. Приёмы программирования
Приёмы программирования таблицы StringGrid позволяют использовать таблицу StringGrid не просто как статичный объект для отображения данных в табличной форме, а придать таблице возможности динамически менять своё содержимое в зависимости от нужд и поведения пользователя.
Использование таблицы StringGrid предполагает такие приёмы её программирования как:
* автоматическое заполнение таблицы;
* сохранение содержимого ячеек таблицы;
* очистка всех ячеек таблицы;
* выравнивание содержимого в ячейках;
* изменение количества строк и столбцов;
* рисование в ячейках;
и многие другие.
StringGrid - компонент, обладающий как текстовыми, так и графическими свойствами. Поэтому приёмы программирования таблицы StringGrid предполагают использование практически всех имеющихся свойств и методов Delphi. Таким образом, изучение возможностей таблицы StringGrid приводит к тому, что программист всё лучше узнаёт систему Delphi, что расширяет его возможности в создании программ, использующих и другие компоненты.
3.1 Как сохранить таблицу StringGrid в файл
Сохранить таблицу StringGrid в файл необходимо, чтобы не потерять внесённые в процессе работы данные. Сохранить таблицу StringGrid в файл можно несколькими способами. Например:
Сохранение с помощью объекта StringList
Для сохранения информации в таблице можно воспользоваться объектом StringList, имеющим в своём арсенале метод для сохранения в файл своих строк. Запишем в StringList ячейки построчно, а затем воспользуемся методом SaveToFile:
3.2 Как полностью очистить таблицу StringGrid
Необходимость очистить таблицу StringGrid часто возникает в процессе работы программы. Но, к сожалению, среди методов компонента StringGrid отсутствует метод полной очистки таблицы StringGrid от ранее размещённого в ячейках содержимого.
Следовательно, необходимо использовать последовательную программную очистку ячеек одну за другой, либо воспользоваться встроенными в компонент StringGrid методами очистки отдельных строк либо столбцов.
Компонент StringGrid состоит из таких объектов как столбцы:
StringGrid1.Cols[Index: Integer]: TStrings;
и строки:
StringGrid1.Rows[Index: Integer]: TStrings;
Эти объекты, в отличие от целой таблицы, имеют методы своей полной очистки:
//Очистка столбца с индексом i
StringGrid1.Cols[i].Clear;
//Очистка строки с индексом j
StringGrid1.Rows[j].Clear;
Используя эти методы, вот как производится полная очистка таблицы StringGrid:
3.3 Как закрасить ячейку StringGrid
Закрасить одну ячейку таблицы StringGrid поможет метод FillRect такого свойства компонента StringGrid, как Canvas (холст), отвечающего за все графические возможности компонента. Для закрашивания ячейки StringGrid этот метод следует вызвать в обработчике события DrawCell.
3.4 Как поместить изображение в ячейку таблицы StringGrid
Компонент StringGrid может размещать в своих ячейках не только текст, но и графику. Поместить рисунок или другое изображение в ячейку таблицы StringGrid позволяет свойство Canvas компонента StringGrid.
Свойство Canvas имеет метод для вывода графики в заданный своими координатами прямоугольник:
Canvas.StretchDrav(const Rect: TRect; Graphic: TGraphic);
Этот метод "подгоняет" размеры рисунка под размеры прямоугольника, растягивает или сжимает его и по горизонтали и по вертикали, причём не обязательно пропорционально. Если размеры прямоугольника и размеры изображения не подобны, то рисунок будет искажён.
Значит, для вывода изображения в ячейку, предварительно нужно:
1. сделать размеры ячейки-адресата ячейки равными или пропорциональными размерам изображения;
2. определить прямоугольник вывода, то есть задать его координаты.
В компоненте StringGrid определено событие, обработчик которого специально приспособлен как раз для этих целей.
Определяя адрес ячейки (ACol, ARow) таблицы, мы тем самым задаём определённый в обработчике OnDrawCell прямоугольник Rect вывода изображения. А узнать размеры изображения, чтобы подстроить под него размеры ячейки, можно загрузив изображение вначале в специально созданный контейнер - объект типа TPicture:
Если для загрузки предполагается изображение формата JPEG, то в список uses нужно подключить модуль JPEG.
3.5 Как выделить несколько ячеек таблицы StringGrid
Прежде всего нужно сказать, что выделить несколько ячеек таблицы StringGrid возможно лишь в пределах одного прямоугольного региона. Выделить несколько ячеек таблицы StringGrid в ходе работы программы можно как мышкой, так и программно.
Для того, чтобы операция выделения нескольких ячеек стала возможной, её нужно разрешить с помощью специального свойства таблицы StringGrid - Options.
В Инспекторе Объектов свойство Options - это раскрывающийся список, содержащий набор опций с указанием их значений - True или False.
Программно свойство Options - это множество, содержащее те опции, значения которых равны True.
Таким образом, свойство Options можно настраивать как в процессе проектирования таблицы StringGrid, так и программно.
Итак, для возможности выделения нескольких ячеек мышкой опция goRangeSelect свойства Options должна быть равна True. Это можно сделать как в Инспекторе Объектов, так и программно:
Теперь, чтобы выделить несколько ячеек таблицы StringGrid, нужно левой кнопкой мышки нажать на одну из ячеек и, удерживая кнопку мыши нажатой, обвести регион выделения. Выделенный регион поменяет цвет своих ячеек, за исключением той ячейки, которая окажется в фокусе - то есть первой нажатой.
При этом, указанная операция выделения нескольких ячеек мышкой окажется невозможной, если опция goEditing (отвечающая за возможность ввода в ячейку с клавиатуры) будет равна True. Это значит, что для того чтобы иметь возможность и выделять несколько ячеек, и делать ввод с клавиатуры в ячейку, нужно поочерёдно, в нужные моменты подключать или удалять из множества Optons опцию goEditing.
Теперь нужно выяснить, как можно программно выделить несколько ячеек таблицы StringGrid. Чтобы сделать выделение нескольких ячеек программно, нужно определить свойство Selection таблицы StringGrid:
3.6 Как удалить нужную строку в таблице StringGrid
Мы можем легко добавить или удалить последнею строку в компоненте StringGrid, но не так легко удалить строку в компоненте StringGrid, не являющуюся последней. Тем самым, чтобы удалить нужную строку в таблице StringGrid, необходимо писать собственную процедуру.
Процедура, удаляющая нужную строку компонента StringGrid, должна сначала переписать все строки ниже удаляемой на одну строку вверх, затем очистить последнюю строку, затем уменьшить количество строк в таблице на одну. Очистка последней строки нужна, так как при последующем добавлении строки новая строка может иметь прежнее содержимое.
Теперь, чтобы удалить нужную строку в таблице StringGrid, нужно указать индекс нужной строки и в какой именно таблице. Вот так удаляем, например, текущую строку:
DeleteARow (StringGrid1, StringGrid1.Row);
Литература
1. Хомоненко А. - Delphi 7
2. Кошевой А. - Языки программирования
3. Архангельский А. - Delphi 7. Справочное пособие
4. Архангельский А. - Delphi 7. Приёмы программирования в Delphi
5. Баженова И. - Delphi 7.Самоучитель программиста
Ссылки на источники в Интернете
6. http://stringgrid-delphi.ru/
7. http://www.delphi-manual.ru/
8. http://bourabai.kz/einf/Delphi/history.htm
Размещено на Allbest.ru
...Подобные документы
Программа Word, позволяющая создавать таблицы, состоящие из строк и столбцов. Способы построения таблиц. Обработка таблиц и их форматирование. Вычисления в тексте и таблице. Разделение и соединение ячеек. Создание заголовков многостраничных таблиц.
контрольная работа [1,7 M], добавлен 28.01.2012Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Файл Microsoft Еxcel является рабочей книгой. Данными могут быть числа или текст. Ввод данных. Выделение ячеек. Удаление информации из ячеек (из группы ячеек). Работа с рабочими книгами. Удаление листа. Переименование листов. Сохранение файла.
лабораторная работа [12,4 K], добавлен 10.03.2007Принципы решения задач линейного программирования в среде электронных таблиц Excel, в среде пакета Mathcad. Порядок решения задачи о назначении в среде электронных таблиц Excel. Анализ экономических данных с помощью диаграмм Парето, оценка результатов.
лабораторная работа [2,0 M], добавлен 26.10.2013Разработка программы, которая выполняет удаление элементов внешних таблиц, а также очистку файлов, вывод таблиц на экран. Описание программного продукта. Выбор языка программирования. Схема информационных потоков. Комплект поставки и инсталляция.
курсовая работа [180,0 K], добавлен 09.03.2009Разработка базы данных книжного магазина в среде программирования Delphi. Создание таблиц и их заполнение. Требования к составу и параметрам технических средств. База данных как набор файлов, содержащих информацию. Этапы создания приложения в Delphi.
курсовая работа [803,6 K], добавлен 04.11.2012Изучение теоретических основ работы в Word, процесса создания и редактирования таблиц, преобразования текста в таблицу, объединения и разделения ячеек. Характеристика ввода формул с клавиатуры в программе Excel, особенностей их перемещения и копирования.
курсовая работа [3,1 M], добавлен 02.05.2012Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.
отчет по практике [961,6 K], добавлен 21.04.2012Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Разработка приложения на базе скриптового языка программирования JavaScript, с использованием каскадных таблиц стилей CSS в среде программирования Bluefish Editor. Обоснование выбора инструментов. Применение клавиш управления памятью калькулятора.
курсовая работа [3,8 M], добавлен 22.06.2015Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.
курсовая работа [2,2 M], добавлен 20.09.2014Эффективные средства разработки программного обеспечения. Технология визуального проектирования и событийного программирования. Конструирование диалоговых окон и функций обработки событий. Словесный алгоритм и процедуры программы Borland Delphi 7 Studio.
дипломная работа [660,2 K], добавлен 21.05.2012Организация работы в среде визуального программирования Delphi. Настройка, конфигурация и главное окно формы. Модификация формы, свойств и событий. Пиктографические кнопки, палитра компонентов, окно инспектора объектов. Процесс построения приложения.
реферат [40,3 K], добавлен 23.01.2011Главное назначение электронных таблиц. Рабочая книга и лист в Microsoft Excel. Строки, столбцы, ячейки таблицы. Ячейки и их адресация. Общее понятие про диапазон ячеек. Ввод, редактирование и форматирование данных. Форматирование содержимого ячеек.
презентация [2,1 M], добавлен 14.03.2012Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010Общая характеристика системы программирования Delphi, а также принципы создания ее компонентов. Описание значений файлов приложения, созданного с помощью Delphi. Структура и свойства библиотеки визуальных компонентов (Visual Component Library или VCL).
отчет по практике [1,1 M], добавлен 07.12.2010Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.
контрольная работа [3,6 M], добавлен 18.10.2012Программа MS Word как текстовый процессор. Разбиение и слияние ячеек таблицы. Понятия "строка", "столбец". Особенности форматирования таблиц, стиль и нумерация. Практический пример построения диаграммы в MS Word. Автоматическая нумерация строк таблицы.
лабораторная работа [782,1 K], добавлен 17.12.2013Основные элементы электронных таблиц в MS Excel и приемы работы с ними. Типы переменных, способы форматирования ячеек. Создание, сохранение и переименование рабочей книги. Диапазон ячеек и их автоматический выбор. Числовой и денежный форматы ячеек.
практическая работа [52,6 K], добавлен 28.12.2010