IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Моя база. Исходник, продолжение темы "сохранение разнородной
AlienEmperor
сообщение 17.11.2005 13:39
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 160
Пол: Мужской
Реальное имя: Серый

Репутация: -  0  +


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

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

P.S. архив самораспаковывающийся - просто переименуйте файл в exe


Прикрепленные файлы
Прикрепленный файл  BASE.RAR ( 1.31 мегабайт ) Кол-во скачиваний: 433


--------------------
Все в жизни ботва... Кроме пчел!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
hiv
сообщение 17.11.2005 17:27
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


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

Ну а счас посмотрю исходики smile.gif
А так вообще good.gif


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 18.11.2005 12:03
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Переписал функцию сохранения файла с картинками. Так красивее, понятнее и быстрее:
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;



--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AlienEmperor
сообщение 21.11.2005 11:18
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 160
Пол: Мужской
Реальное имя: Серый

Репутация: -  0  +


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


--------------------
Все в жизни ботва... Кроме пчел!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 21.11.2005 11:38
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Да, советую еще перенести все методы, работающие с реестром, из объекта TBase в объект TForm1. Так по смыслу более правильно будет.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 1:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"