Кулінарна книга
Розробка програми, яка зможе групувати кулінарні рецепти в категорії, забезпечить запис нових рецептів, видалення будь-якого рецепту (одночасно з бази даних і з диску). Редагування рецепту, його перейменування, переміщення, копіювання до іншої категорії.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 14.03.2013 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
e1.text := sDefname;
m_recName := e1.Text;
x.Free;
end
else
begin
m_recName := m_name;
e1.Text := m_name;
end;
FillCombobox;
FillMemo;
PlaceFormAtCenter(@self);
OnChange;
if length(filename) < 1 then
m_NeedToSave := false
else
m_NeedToSave := true;
ApplyNormColorsOverRGB;
showmodal;
end;
procedure TRecEditorForm.cancelbutClick(Sender: TObject);
begin
close;
end;
procedure TRecEditorForm.e1Enter(Sender: TObject);
begin
e1.Color := m_clCream;
end;
procedure TRecEditorForm.e1Exit(Sender: TObject);
begin
e1.Color := m_cl3DLight;
end;
procedure TRecEditorForm.FillCombobox;
var
db : tdb;
i, rn, m_CID : longint;
m_Name : string;
begin
CB.Clear;
db.InitializeLocal;
db.OpenDatabase(MainForm.m_CatDBFilename, true);
for i := 1 to db.RecordCount do
begin
m_CID := db.DirectReadLong(i, 1);
m_Name := alltrim(db.DirectReadString(i, 2));
cB.Items.AddObject(m_Name, TObject(m_CID));
end;
db.DBClose;
if not m_editMode then
begin
cb.Enabled := true;
CB.ItemIndex := m_cbindex;
end
else
begin
cb.Enabled := false;
cb.ItemIndex := m_cbindex;
end;
end;
procedure TRecEditorForm.FillMemo;
begin
Memo.Clear;
if m_editMode then
begin
m_filename := MainForm.m_DataFolder + along2str(m_ID) + '.rec';
memo.Lines.LoadFromFile(m_filename);
end
else
if length(m_recfilename) > 0 then
Memo.Lines.LoadFromFile(m_recfilename);
end;
procedure TRecEditorForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := false;
if OnExit then
CanClose := true;
end;
procedure TRecEditorForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
#10 : begin
m_isBlocked := true;
OnSave;
end;
#27 : begin
m_isEntered := false;
Close;
end;
end;
end;
procedure TRecEditorForm.FormShow(Sender: TObject);
begin
Memo.SetFocus;
end;
procedure TRecEditorForm.im1Click(Sender: TObject);
begin
OnSave;
end;
procedure TRecEditorForm.im1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MainForm.imgclick.GetBitmap(10, im1.Picture.Bitmap);
im1.Repaint;
end;
procedure TRecEditorForm.im1MouseEnter(Sender: TObject);
begin
MainForm.imgon.GetBitmap(10, im1.Picture.Bitmap);
im1.Repaint;
end;
procedure TRecEditorForm.im1MouseLeave(Sender: TObject);
begin
MainForm.imgnorm.GetBitmap(10, im1.Picture.Bitmap);
im1.Repaint;
end;
procedure TRecEditorForm.im1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MainForm.imgnorm.GetBitmap(10, im1.Picture.Bitmap);
im1.Repaint;
end;
procedure TRecEditorForm.Im2Click(Sender: TObject);
begin
close;
end;
procedure TRecEditorForm.Im2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MainForm.imgclick.GetBitmap(11, im2.Picture.Bitmap);
im2.Repaint;
end;
procedure TRecEditorForm.Im2MouseEnter(Sender: TObject);
begin
MainForm.imgon.GetBitmap(11, im2.Picture.Bitmap);
im2.Repaint;
end;
procedure TRecEditorForm.Im2MouseLeave(Sender: TObject);
begin
MainForm.imgnorm.GetBitmap(11, im2.Picture.Bitmap);
im2.Repaint;
end;
procedure TRecEditorForm.Im2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MainForm.imgnorm.GetBitmap(11, im2.Picture.Bitmap);
im2.Repaint;
end;
procedure TRecEditorForm.MemoChange(Sender: TObject);
begin
if m_isBlocked then
begin
m_isBlocked := false;
exit;
end;
OnChange;
m_NeedToSave := true;
end;
procedure TRecEditorForm.MemoEnter(Sender: TObject);
begin
Memo.Color := m_ClCream;
end;
procedure TRecEditorForm.MemoExit(Sender: TObject);
begin
memo.Color := m_Cl3DLight;
end;
procedure TRecEditorForm.OnSave;
var
db : tdb;
i : longint;
rn, newID : longint;
begin
m_Recname := alltrim(e1.text);
db.InitializeLocal;
db.OpenDatabase(mainForm.m_RecDBFilename);
rn := tdb_lib.SeekForString(db, 3, m_RecName, false, true, true);
if (rn > 0) and (length(m_Recname) > 0) and not m_editMode then
begin
askdialog.run('Неможливо зберегти рецепт.'+#13+'Рецепт з такою назвою вже існує!', false, false, true, false);
e1.SetFocus;
db.DBClose;
exit;
end;
if length(m_Recname) < 1 then
begin
askdialog.run('Неможливо зберегти рецепт.'+#13+'Введіть, будь-ласка, назву рецепту!', false, false, true, false);
e1.SetFocus;
db.DBClose;
exit;
end;
if m_editMode then
begin
rn := tdb_lib.SeekForLong(db, 1, m_ID, false);
if rn > 0 then
begin
db.DirectWritestring(rn, 3, m_RecName);
db.DBClose(true);
memo.Lines.SaveToFile(m_filename);
m_isEntered := true;
m_needToSave := false;
close;
end;
end
else
begin
rn := db.RecordCount + 1;
newID := CalcMaxLongValue(db, 1) + 1;
m_catID := longint(cb.Items.Objects[cb.ItemIndex]);
db.DirectWriteLong(rn, 1, newID);
db.DirectWriteLong(rn, 2, m_CatID);
db.DirectWriteString(rn, 3, m_Recname);
m_filename := MainForm.m_DataFolder + along2str(newID)+'.rec';
Memo.Lines.SaveToFile(m_filename);
db.DBClose;
m_isEntered := true;
m_needToSave := false;
close;
end;
end;
function TRecEditorForm.StatusText : string;
var
i, row, col, sym : longint;
begin
sym := 0;
col := length(memo.Lines[memo.Lines.count - 1]);
row := memo.Lines.Count;
for i := 0 to memo.Lines.Count - 1 do
sym := sym + length(memo.Lines[i]);
result := inttostr(row) + ' рядків, ' + inttostr(sym) + ' символів';
end;
procedure TRecEditorForm.OnChange;
begin
StatusBar1.Panels[1].Text := StatusText;
end;
function TRecEditorForm.OnExit : boolean;
begin
if m_NeedToSave then
begin
AskDialog.Run('Текст рецепту не збережений.' +
#13 +'Зберегти текст?', true, true, false, true);
case AskDialog.m_SelectedItem of
1 : OnSave;
2 : begin
m_needToSave := false;
result := true;
m_isEntered := false;
exit;
end;
4 : begin
result := false;
exit;
end;
end;
end;
result := true;
end;
procedure TRecEditorForm.ApplyNormColorsOverRGB;
begin
panel3.Color := RGB(196, 203, 222);
panel2.Color := RGB(196, 203, 222);
m_cl3Dlight := RGB(227, 227, 227);
m_ClCream := RGB(255, 251, 240);
cb.Color := m_cl3Dlight;
Memo.Color := m_cl3Dlight;
e1.Color := m_cl3Dlight;
end;
Размещено на Allbest.ru
Подобные документы
Проектування бази даних та інтерфейсу програми. Розробка бази даних за допомогою Firebird 2.5. Контроль коректності вхідних та вихідних даних. Додавання та редагування інформації. Вплив електронно-обчислювальних машин на стан здоров'я користувачів.
дипломная работа [4,7 M], добавлен 12.10.2015Аналіз предметної області. Розробка бази даних в середовищі Microsoft SQL Server 2008. Можливості інформаційної системи. Установка зв'язків між таблицями. Створення запитів для роботи з даними (введення, видалення, редагування) та пошуку інформації.
курсовая работа [2,6 M], добавлен 09.05.2016Написання програм для перейменування файлів та копіювання файлів і підкаталогів (аналоги REN, XCOPY). Вибір методу розв'язки задачі та його обґрунтування. Алгоритм та реалізація програми, її системні вимоги. Інструкція для користувача та лістинг.
курсовая работа [14,7 K], добавлен 08.08.2009Аналіз проектування баз даних та створення програми на тему IC "Туристичні агентства". Розробка простого для розуміння інтерфейсу, огляд реалізації додавання, редагування, видалення, пошуку інформації. Характеристика задач автоматизації і фізичної моделі.
курсовая работа [4,1 M], добавлен 12.01.2012MS-DOS - перша операційна система. Створення в операційній системі MS-DOS резидентної програми захисту файлів від видалення, її використання в випадках захисту файлів від випадкового видалення. Структура вхідних та вихідних даних, алгоритм рішення задачі.
курсовая работа [35,5 K], добавлен 16.11.2012Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".
курсовая работа [4,0 M], добавлен 02.12.2014Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.
курсовая работа [43,1 K], добавлен 30.06.2015Основні дії з файлами, які використовують програми. Диски і файли. Особливості використання даних, збережених на диску. Дискова фізична модель бази даних. Управління дисковим простором. Управління буферами даних. Стратегія заміни сторінок у фреймах.
реферат [19,8 K], добавлен 10.08.2011Методи управління папками в ОС Windows. Особливості створення, копіювання або переміщення через буфер обміну, за допомогою правої кнопки миші, методом перетаскування. Алгоритм перейменування та видалення папки (за допомогою кнопок панелі інструментів).
презентация [390,9 K], добавлен 29.01.2010Постановка задачі та визначення її функціоналу: записи в файл бази, їх перегляд та редагування, видалення та використання. Формування коду програми з основного коду і процедур, що ведуть облік у базі даних абонентів та оплат за комунальні послуги.
курсовая работа [237,7 K], добавлен 12.01.2012