Помощь - Поиск - Пользователи - Календарь
Полная версия: Моя база. Исходник
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
AlienEmperor
Привет всем! Спасибо, что откликнулись! 2Volvo: я скину исходники в эту тему, вдруг кому-нибудь еще пригодятся. Извините за большой размер архива, просто мне очень хотелось скинуть сюда exe'шник и тестовую запись. В общем, распаковываете в отдельную папку, сохраняя структуру каталогов (т.е. в папке с программой должна быть папка DATA, содержащая тестовую базу. Далее файл\открыть\DATA\Base2t.dgr

Не все пункты меню работают (нет справки, настроек интерфейса и т.д.).
Все исходники - там же. Если у кого-то возникнуть идеи по совершенствованию кода (а тем более принципа) - буду очень рад их выслушать...

P.S. архив самораспаковывающийся - просто переименуйте файл в exe
hiv
Первое впечатление - неплохо.
Есть пара замечаний:
очищать все поля ввода в диалоге вставки новой записи;
обязательно введи кнопку отмена во всех диалогах!!! - без нее будет туго;
в том месте где удаляешь запись, на предмет того - "надо ли удалять графический файл?" - сделай проверку на наличие ссылки на этот файл в других записях.

Ну а счас посмотрю исходики smile.gif
А так вообще good.gif
hiv
Переписал функцию сохранения файла с картинками. Так красивее, понятнее и быстрее:
Procedure TPics.SaveToFile(FileName:String);
Var FS: TFileStream;
MS: TMemoryStream;
TmpCount: Word;
PicOffset: Integer;
I: Word;
Begin
If Changed = False Then Exit;

if FileExists(FileName)
then FS := TFileStream.Create(FileName,fmOpenWrite)
else FS := TFileStream.Create(FileName,fmCreate);
MS := TMemoryStream.Create;

TmpCount := Pics.Count;

FS.Write(TmpCount,SizeOf(Word)); // выводим количество картинок
For I:=0 To TmpCount-1 Do
Begin
CurrentRec:=Pics.Items[I];
CurrentRec.Bitmap.SaveToStream(MS);
PicOffset := MS.Position;
FS.Write(PicOffset,SizeOf(Integer)); // выводим смещение каждой картинки
End;
MS.SaveToStream(FS); // выводим сами картинки (все)

FS.Free;
MS.Free;
End;

AlienEmperor
2 hiv: Respect! Спасибо, это действительно гораздо красивее! (Насчет "отмен" и проверок - это же даже не бета smile.gif ... Я проверял сам принцип - чтобы до конца доделать надо много мелочей править). А за процедуру правда, большое спасибо... Сам я не допер два потока использовать...
hiv
Да, советую еще перенести все методы, работающие с реестром, из объекта TBase в объект TForm1. Так по смыслу более правильно будет.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.