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

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

Медиа плейер на Delphi + Пояснительная записка
Принадлежит ли точка пересечению двух окружностей на Turbo Pascal + Отче...
Метод конечных разностей для интерполяции/экстраполяции на Delphi

Разработка программы «Блокнот» для хранения информации по месяцам года
Создайте новый проект. Сохраните новое приложение в текущей папке: файл модуля под именем Main.pas, файл проекта — Notebook.dpr.
1-й этап. Создание визуального интерфейса приложения
1.1. Задайте значения свойств формы следующим образом:
Name – NotebookF;
Caption – Блокнот.
1.2. Поместите на форму компонент Notebook (блокнот) со страницы Win3.1 палитры компонентов.
1.3. Создайте страницы компонента NoteBookl. Для этого в инспекторе объектов найдите свойство Pages (страницы); щелкните на кнопке с тремя точками для открытия диалогового окна редактирования значений выбранного свойства (рис. 1).
инспектор объектов
Рис. 1
Используя диалоговое окно, создайте 12 страниц, каждая из которых называется именем, соответствующим месяцу года (Январь, Февраль и т. д.). Для редактирования названия первой страницы воспользуйтесь кнопкой Edit, для добавления очередной страницы — кнопкой Add. Значение Help context можно оставить без изменения (это свойство используется при вызове контекстно-зависимой справочной системы приложения), так как приложение не содержит справочной системы. Для завершения создания списка страниц нажмите на кнопку Close.
1.4. Поместите компонент TabSet (список закладок) со страницы Win3.1 под компонентом NoteBookl. Сделайте эти компоненты одинаковыми по ширине.
1.5. Положите на каждую из 12 страниц компонента NoteBookl компонент ListBox (окно списка) для размещения записей на каждый месяц. Для этого выполните такую последовательность действий.
Установите свойство ActivePage (активная страница) компонента NoteBook в значение, равное 'Январь'. Щелкните на выбранной странице объекта NoteBookl. В палитре компонентов на странице Standard выберите компонент ListBox и поместите его (щелкните) в компонент NoteBookl. Для свойства Align компонента ListBox1 установите значение AlClient.
Повторите эту операцию для оставшихся 11 страниц блокнота.
1.6. В правую часть формы поместите компонент Panel (страница Standard палитры компонентов), на него положите один компонент Label, один компонент Edit и три компонента Button. Поместите еще 2 компонента Button в правой нижней части формы (рис. 2).
форма
Рис. 2
Установите следующие свойства компонентов:

1.7. Сохраните проект. Убедитесь, что после запуска приложения форма ничем не отличается от режима проектирования.
2-й этап. Создание программного кода
2.1. Создание закладок в TabSetl и синхронизация их со страницами блокнота.
Для этого используется свойство Tabs компонента TabSet, представляющее список имен закладок. В примере список закладок соответствует списку страниц блокнота (Pages). Создайте следующий обработчик события:
Procedure TNoteBookF.FormCreate(Sender: TObject);
begin
TabSetl.Tabs:=NoteBookl.Pages;
{копирование содержимого свойства Pages компонента NoteBook в свойство Tabs
компонента TabSet, т. е. создание закладок в TabSet}
TabSetl.TabIndex:=NoteBookl.Pagelndex;
{В соответствии с тем, какая страница блокнота активна во время проектирования
(свойство ActivePage), активной будет закладка с тем же именем (номером)}
end;



2.2. Используя свойства UnSelectedColor, SelectedColor, BackgroundColor, DitherBackground, StartMargin, EndMargin компо¬нента TabSetl, измените внешний вид закладок.
2.3. Сохраните и запустите проект. Проверьте, имеют ли закладки на форме названия, соответствующие страницам блокнота.
2.4. Создание обработчика события OnClick для кнопки 'Добавить'.
После щелчка на кнопке содержимое окна редактирования (RecordEdt) должно добавляться в список на выбранной странице блокнота. Для операций со строками у компонента ListBox имеется свойство Items, принадлежащее классу TStrings. Чтобы добавить строку в список, используется метод Add этого класса (см. выше список методов класса TStrings). Текст обработчика события может быть создан двумя способами.
1-й способ
procedure TNoteBookF.AddBtnClick(Sender: TObject);
begin
if RecordEdt.Text <>’’ then
begin
case NoteBookl.PageIndex of
{Для того чтобы поместить запись в список на страницу блокнота, выбираем
компонент ListBox по номеру страницы блокнота}
0 : ListBoxl.Items.Add(RecordEdt.Text);
1 : ListBox2.Items.Add(RecordEdt.Text) ;
2 : ListBox3.Items.Add(RecordEdt.Text);
3: ListBox4.Items.Add(RecordEdt.Text) ;
4 : ListBox5.Items.Add(RecordEdt.Text);
5 : ListBox6.Items.Add(RecordEdt.Text);
6: ListBox7.Iterns.Add(RecordEdt.Text);
7 : ListBox8.Items.Add(RecordEdt.Text) ;
8: ListBox9.Items.Add(RecordEdt.Text);
9: ListBox10.Items.Add(RecordEdt.Text);
10: ListBoxll.Items.Add(RecordEdt.Text);
11: ListBoxl2.Items.Add(RecordEdt.Text);
end;
RecordEdt. Text: =’’; {введенный текст затираем}
end;
end;



2-й способ
В Object Pascal имеется функция:
function FindComponent(const AName: string): TComponent;



Функция возвращает ссылку на компонент, имя которого задано параметром AName.
Эту функцию можно использовать в коде обработчика события OnClick кнопки ‘Добавить' следующим образом:
procedure TNoteBookF.AddBtnClick(Sender: TObject);
var TempComponent: TListBox; {вспомогательная переменная}
begin TempComponent:=TListBox(FindComponent('ListBox'+
IntToStr(NoteBook1.PageIndex+1)));
{TListBox(<компонент>) используется для преобразования к типу TListBox}
if RecordEdt.Text <>’’ then
TempComponent.Items.Add(RecordEdt.Text);
RecordEdt.Text:=’’;
end;




2.5. Сохраните, запустите проект и добавьте строки на разные страницы блокнота. В данном варианте программы они должны записываться только на страницу, которая была открыта при запуске приложения. Это объясняется тем, что закладки Tabset1 не синхронизированы со страницами NoteBook1, т. е. при выборе закладки соответствующая страница блокнота не активизируется.
Чтобы устранить этот недостаток, следует создать обработчик события OnClick для закладок Tabset1:
procedure TNoteBookF.TabSetlClick(Sender: TObject);
begin
NoteBook1.PageIndex:=TabSet1.TabIndex;
{страница блокнота и страница набора закладок должны совпадать}
end;



2.6. Сохраните проект и проверьте правильность работы приложения, т. е внесение записей на различные страницы блокнота.





Опубликовал Kest Декабрь 22 2009 15:02:04 · 6 Комментариев · 12141 Прочтений · Для печати

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


Комментарии
SADD Ноябрь 01 2010 18:24:00
А есть исходник полный для этого блокнота??smiley
Kest Ноябрь 02 2010 00:04:45
SADD

в этом и весь смысл )) надо собрать самому
СМЮ Декабрь 04 2010 19:32:55
А вы можете выложить полный исходник, пожалуйста! Просто не могу додуматься, как написать код программы реагирования на кнопки изменить, очистить и уделить?smiley
Kest Декабрь 04 2010 23:07:12
2СМЮ

Посмотри в разделе исходники там были типо таких программок
СМЮ Декабрь 05 2010 15:17:32
Мне нужно именно к этому блокноту Написать код программы реагирования нажатия на кнопки ‘Изменить’, ’Удалить’, ’Очистить’ (для этого воспользуйтесь свойствами Items и ItemIndex компонента ListBox). Может поможете или подскажите к кому обратиться, я заплачу, пожалуйста!smiley
Kest Декабрь 05 2010 22:28:44
2СМЮ

платно обращайся сюда - codingrus.ru/viewpage.php?page_id=2
Добавить комментарий
Имя:



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

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

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

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

Пароль



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

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

Случайные загрузки
Ehlib
Советы по Delphi
Быстрое создание ...
Flash MP3 Player ...
Язык программиров...
Ранги для форума
ATComponents
Модифицированная ...
PDJ Scrollers
C# 2005 и платфор...
Converter AMR<->W...
Billenium Effects...
StartMark
PHP в примерах
Игра "Астероиды" ...
Microsoft SQL Ser...
ZipTV
Email
Песочные часы
XPcontrol

Топ загрузок
Приложение Клие... 100760
Delphi 7 Enterp... 97438
Converter AMR<-... 20232
GPSS World Stud... 16981
Borland C++Buil... 14154
Borland Delphi ... 10167
Turbo Pascal fo... 7351
Калькулятор [Ис... 5926
Visual Studio 2... 5194
Microsoft SQL S... 3652
Случайные статьи
PokerMatch - попул...
Когда говорят про ...
6.5. Дополнительна...
Ограничение объясн...
Внутренние проверки
Настраиваемый подк...
Необходимые компле...
Объектно-ориентиро...
integer(X)
лабораторная часть...
Интерфейс семафоро...
Ходы
Инициализация Тайм...
Где купить рацию
Viking Botovod или...
Воровство контента...
Понятие "область п...
Тестирование
Однократно использ...
Рабочие нагрузки
Бонусы онлайн-казино
Уравнение теплопро...
Концепция правильн...
Линейное рехеширов...
CASE constant out ...
Статистика



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


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