Форум: "Основная";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизУвеличение скорость открытия программы. Найти похожие ветки
← →
Merry (2006-09-28 09:33) [0]При запуске программы, происходит задержка от 5 до 30 сек (на разных компах по-разному)до момента открытия программы. В момент открытия основной формы все таблицы и запросы закрыты, обращения к ним нет. Вообще, форм, таблиц и запросов в программе много. Таблицы db-формата. (Те программы, где таблиц и запросов меньше открываются за 2 сек). В программе формируются отчёты, выполненные в QReporte. Причём замечено, если используется принтер, подключенный к другому компьютеру, а на этом компьютере принтера нет, то время открытия программы дольше. Может быть тут какая-то связь?
← →
Elen © (2006-09-28 09:44) [1]
> Merry
Как вариант создавай QReport и формируй отчеты в ДЛЛ или другом приложении. Пусть оно запускается потом (по желанию пользователя)
← →
Ketmar © (2006-09-28 09:46) [2]ну глянь ты в исходники QREport"а, и выясни. а лучше -- возьми нечто нормальное, а не это чудо. %-)
← →
zdm © (2006-09-28 09:46) [3]в QR врядли проблема. Как вариант пробегись пошагово по проге, и посмотри, точно-ли не происходит коннекта к БД или попытки сформировать отчет до действий юзера
← →
zdm © (2006-09-28 09:47) [4]FastReport форева
← →
Плохиш © (2006-09-28 11:28) [5]
> Merry (28.09.06 09:33)
Для начала надо убрать все ненужные формы/репорты из автосоздания и создавать их по мере необходимости.
← →
Merry (2006-09-28 21:27) [6]Спасибо за советы.
Не понятно, что значит:
>Плохиш © (28.09.06 11:28) [5] :Для начала надо убрать все ненужные формы/репорты из автосоздания и создавать их по мере необходимости.
Что такое автосоздание? Естественно, каждая форма и любой отчёт формируется только в момент нажатия пользователем определённой клавиши. Формы вызываю Forma1.ShowModal;
Отчёты Qreport1.Preview.
Всё же, я думаю, что дело не в QReporte. И таблицы я открываю не в момент открытия проги, и запросы тоже. Может, недостаточно оперативки свободной или чего-то ещё???
← →
Ketmar © (2006-09-28 21:30) [7]"формируется" и "создаётся" -- вещи разные. загляни в .dpr -- там куча создавалок? или создаёшь (Create) формы в рантайме, показываешь, и тут же убиваешь, когда они больше не нужны?
← →
Merry (2006-09-28 21:49) [8]Нет. Не создаю в реальном времени.
Вызываю Forma1.ShowModal; и закрываю close.
← →
Ketmar © (2006-09-28 21:50) [9]тогда создавай. у тебя при старте программы создаётся куча форм и компонентов на них. зачем? память загромождают, а толку -- никакого.
← →
Merry (2006-09-28 21:54) [10]t.e. вместо Forma1.ShowModal
пишу Forma1.Create.
А как " убиваешь, когда они больше не нужны?"
← →
Ketmar © (2006-09-28 21:55) [11]не надо нобум. лучше сначала почитай статейки.
← →
RASkov (2006-09-29 00:51) [12]В меню Delphi "Project"->"Options" или Shift+Ctrl+F11
Оставляешь в Auto-create только главную форму, остальные в Available forms
Ну и по мере надобности создаешь и вызываешь так...
if Form1=nil then Form1:=TForm1.Create(Self);
Form1.ShoModal;
Form1.Free;
Form1:=nil;
//или вместо последних двух строк кода можно одну - FreeAndNil(Form1);
....
это для модальных окон, для не модальных можно попробывать так....
if Form2=nil then Form2:=TForm2.Create(Self);
Form2.Show;
....
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree; Form2:=nil;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c