Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

Ускорение запуска программы   Найти похожие ветки 

 
DJ_UZer ©   (2008-06-19 21:03) [0]

Привет всем мастерам, пожалуйста подскажите, как можно укорить запуск программы?
Или хотя бы гляньте на код при создании формы, что я делаю не так? Уж а то слишком долго грузится..
procedure TForm1.FormCreate(Sender: TObject);
var
fi: TIniFile;
begin
Application.ProcessMessages;
b := true;
scp.ItemList.LoadFromFile(ExtractFilePath(Application.ExeName)+"\templ\autohelper.alu");

fi := TIniFile.Create(ExtractFilePath(ParamStr(0)) + "Window.ini");
Form1.Top := fi.ReadInteger("Позиция", "top", Form1.Top);
Form1.Left := fi.ReadInteger("Позиция", "left", Form1.Left);
Form1.Panel2.Height := fi.ReadInteger("Позиция", "Height", Form1.Panel2.Height);
Form1.Edit3.Text := fi.ReadString("Позиция", "Прозрачность", Form1.Edit3.Text);
Form1.ComboBox1.ItemIndex := fi.ReadInteger("Позиция", "Web", Form1.ComboBox1.ItemIndex);
Form1.se.Gutter.Color := fi.ReadInteger("Font", "Фон панели", Form1.se.Gutter.Color);
Form1.se.Font.Color := fi.ReadInteger("Font", "Цвет", Form1.se.Font.Color);
Form1.se.Font.Name := fi.ReadString("Font","Шрифт", Form1.se.Font.Name);
Form1.se.Font.Size := fi.ReadInteger("Font","Размер", Form1.se.Font.Size);
Form1.se.Color := fi.ReadInteger("Font", "Фон редактора", Form1.se.Color);
Form1.se.Gutter.Font.Color := fi.ReadInteger("Font", "Фон пан. редактора", Form1.se.Gutter.Font.Color);
Form1.se.RightEdge := fi.ReadInteger("Font","Отступ линии", Form1.se.RightEdge);
Form1.se.RightEdgeColor := fi.ReadInteger("Font", "Цвет линии", Form1.se.RightEdgeColor);
Form1.se.SelectedColor.Foreground := fi.ReadInteger("Font", "Цвет выделенного", Form1.se.SelectedColor.Foreground);
Form1.se.SelectedColor.Background := fi.ReadInteger("Font", "Фон выделенного", Form1.se.SelectedColor.Background);
Form1.se.ActiveLineColor := fi.ReadInteger("Font", "Цвет активной", Form1.se.ActiveLineColor);
Form1.se.MaxUndo := fi.ReadInteger("Font", "Max Undo", Form1.se.MaxUndo);
Form1.se.WordWrap := fi.ReadBool("Font", "Перенос", Form1.se.WordWrap);
Form1.fled.Text := fi.ReadString("Font", "FileName Open/Save", Form1.fled.Text);
Form1.sb.Visible := fi.ReadBool("Font", "sb.Visible", Form1.sb.Visible);
Form1.se.Gutter.Visible := fi.ReadBool("Font", "se.Gutter.Visible", Form1.se.Gutter.Visible);
Form1.se.Gutter.ShowLineNumbers := fi.ReadBool("Font", "Gutter.ShowLineNumbers", Form1.se.Gutter.ShowLineNumbers);
Form1.se.Gutter.ZeroStart := fi.ReadBool("Font", "Gutter.ZeroStart", Form1.se.Gutter.ZeroStart);
Form1.se.BookMarkOptions.EnableKeys := fi.ReadBool("Font", "sb.BookMarkOptions.EnableKeys", Form1.se.BookMarkOptions.EnableKeys);
Form1.se.BookMarkOptions.GlyphsVisible := fi.ReadBool("Font", "BookMarkOptions.GlyphsVisible", Form1.se.BookMarkOptions.GlyphsVisible);
Form1.acrAutoCorrect.Enabled := fi.ReadBool("Font", "acrAutoCorrect.Enabled", Form1.acrAutoCorrect.Enabled);
Form1.Panel1.Visible := fi.ReadBool("Font", "Panel1.Visible", Form1.Panel1.Visible);
Form1.CheckBox10.Checked := fi.ReadBool("Font", "CheckBox10.Checked", Form1.CheckBox10.Checked);
Form1.panel2.Visible := fi.ReadBool("Font", "panel2.Visible", Form1.panel2.Visible);
Form1.CheckBox12.Checked := fi.ReadBool("Font", "CheckBox12.Checked", Form1.CheckBox12.Checked);
Form1.ToolButton30.Visible := fi.ReadBool("Font", "b1.Checked", Form1.ToolButton30.Visible);
Form1.ToolButton9.Visible := fi.ReadBool("Font", "b2.Checked", Form1.ToolButton9.Visible);
Form1.CheckBox13.Checked := fi.ReadBool("Font", "CheckBox13.Checked", Form1.CheckBox13.Checked);
Form1.sb.Visible := fi.ReadBool("Font", "sb.Visible", Form1.sb.Visible);
Form1.edit1.Text := fi.ReadString("Font", "edit1.Text", Form1.edit1.Text);
//Form1.N100.Checked := fi.ReadBool("Font", "Checked1", Form1.N100.Checked);
//Form1.N102.Checked := fi.ReadBool("Font", "Checked2", Form1.N102.Checked);
//Form1.N103.Checked := fi.ReadBool("Font", "Checked3", Form1.N103.Checked);
Form1.sh.ItemIndex := fi.ReadInteger("Шаблон", "Номер", Form1.sh.ItemIndex);
Form1.edit2.Text := fi.ReadString("Браузер", "1", Form1.edit2.Text);
Form1.edit4.Text := fi.ReadString("Браузер", "2", Form1.edit4.Text);
n := fi.ReadInteger("Popul", "pl", n);
n := n + 1;
fi.WriteInteger("Popul", "pl", n);
fi.Destroy;

 { Load from registry. }
 form1.acrAutoCorrect.LoadFromRegistry(HKEY_CURRENT_USER,
   "Software\Aerodynamica\Components\SynAutoCorrect\OLU");

op.InitialDir := ExtractFilePath(ParamStr(0));
sd.InitialDir := op.InitialDir;
Button1.Click;

If ComboBox1.ItemIndex = 0 then begin
If form1.Panel2.Width < form1.Panel2.Height then
form1.Panel2.Height := form1.Panel2.Width;
form1.Panel2.Align := alBottom;
form1.Splitter1.Align := alBottom;
form1.web.Align := alClient;
end;
If ComboBox1.ItemIndex = 1 then begin
If form1.Panel2.Width < form1.Panel2.Height then
form1.Panel2.Height := form1.Panel2.Width;
form1.Panel2.Align := alTop;
form1.Splitter1.Align := alTop;
form1.web.Align := alClient;
end;
If ComboBox1.ItemIndex = 2 then begin
If form1.Panel2.Width > form1.Panel2.Height then
form1.Panel2.Width := form1.Panel2.Height;
form1.Splitter1.Align := alLeft;
form1.Panel2.Align := alLeft;
form1.web.Align := alClient;
end;
If ComboBox1.ItemIndex = 3 then begin
If form1.Panel2.Width > form1.Panel2.Height then
form1.Panel2.Width := form1.Panel2.Height;
form1.Panel2.Align := alRight;
form1.Splitter1.Align := alRight;
form1.web.Align := alClient;
end;
   
If (ParamCount = 0) and (CheckBox10.Checked = true) then begin
If form1.sh.ItemIndex = 0 then html1.Click;
If form1.sh.ItemIndex = 1 then CSS1.Click;
If form1.sh.ItemIndex = 2 then JavaScript2.Click;
If form1.sh.ItemIndex = 3 then php2.Click;
If form1.sh.ItemIndex = 4 then perl2.Click;
end
else
N77.Click;

form1.WindowState := wsMaximized;
end;


 
Anatoly Podgoretsky ©   (2008-06-19 21:20) [1]

> DJ_UZer  (19.06.2008 21:03:00)  [0]

Какая именно строка долго выполняется?


 
Правильный-Вася   (2008-06-19 21:45) [2]

мамма мия!
зачем везде Form1 писать?
Application.ProcessMessages в начале нафиг не надо

код форматировать не учили?


 
palva ©   (2008-06-19 21:52) [3]


> Какая именно строка долго выполняется?

Вот эта:
Application.ProcessMessages;


 
Anatoly Podgoretsky ©   (2008-06-19 21:59) [4]

> palva  (19.06.2008 21:52:03)  [3]

Плохо дело.


 
DJ_UZer ©   (2008-06-19 22:31) [5]

palva, я даже не знаю какая именно..а насчет Application.ProcessMessages; гдет прочел, что при помощи него действия выполняются не по очередно, а по мере выполнения (как я понял все сразу)..


 
Правильный-Вася   (2008-06-19 22:33) [6]


> ри помощи него действия выполняются не по очередно, а по
> мере выполнения

истина
> (как я понял все сразу)

ложь

читать нужно в справке, а не в желтой прессе


 
Loginov Dmitry ©   (2008-06-19 22:41) [7]

> Уж а то слишком долго грузится..


Ты должен сам определить проблемный участок кода. Примерно так:

procedure Proc;
var
 Tc: DWORD;
begin
 Tc := GetTickCount();

 // здесь расположить исследуемый участок кода
 ..............................................

 Tc := GetTickCount() - Tc;

 // Проверяешь, сколько было затрачено времени
 if Tc > 20 then
   ShowMessageFmt("Задержка составила %d мс", [Tc]);
end;


 
Anatoly Podgoretsky ©   (2008-06-19 22:54) [8]

Да нафига какой то еще код, если для определения достаточно F8


 
DJ_UZer ©   (2008-06-19 23:24) [9]

Loginov Dmitry, пишет что 45 мс, но форма все ровно определенное время находится в минимизайт и не доступна! Может в это время прорисовываются используемые компоненты, хотя они не должны сильно загружать программу, я так думаю, если только не браузер..


 
DJ_UZer ©   (2008-06-19 23:29) [10]

Loginov Dmitry, пишет что 45 мс, но форма все ровно определенное время находится в минимизайт и не доступна! Может в это время прорисовываются используемые компоненты, хотя они не должны сильно загружать программу, я так думаю, если только не браузер..


 
Loginov Dmitry ©   (2008-06-19 23:33) [11]

> пишет что 45 мс


Так значит тормоза не на TForm1.FormCreate!


 
DJ_UZer ©   (2008-06-19 23:52) [12]

Вот именно, а где тогда?


 
Loginov Dmitry ©   (2008-06-19 23:56) [13]

> Вот именно, а где тогда?


возможно, в FormShow, возможно в другом месте.


 
DJ_UZer ©   (2008-06-20 01:11) [14]

Loginov Dmitry, а может быть такое, что какой то компонент тормозит запуск программы?


 
DJ_UZer ©   (2008-06-20 01:30) [15]

Я проверил, да это было при show, а тормозит вот это web.Navigate((ExtractFilePath(Application.ExeName))+"temp.html");, можно не скромный вопрос, почему? Ее убираешь и программа грузится, без проблем..а вот с ней к загрузке прибовляется аж 10 сек.??


 
Loginov Dmitry ©   (2008-06-20 07:43) [16]

> Я проверил, да это было при show, а тормозит вот это web.Navigate((Extrac
> tFilePath(Application.ExeName))+"temp.html");, можно не
> скромный вопрос, почему? Ее убираешь и программа грузится,
> без проблем..а вот с ней к загрузке прибовляется аж 10
> сек.??


Зависит от размера html-файла.
Размер temp.html какой?


 
ЮЮ ©   (2008-06-20 09:24) [17]

а сколько грузит ту же страницу IE?


 
Anatoly Podgoretsky ©   (2008-06-20 10:09) [18]

> DJ_UZer  (20.06.2008 1:11:14)  [14]

Вообще то это прерогатива программиста.
Так ты нашел в какой строке тормозит?


 
Anatoly Podgoretsky ©   (2008-06-20 10:10) [19]


> DJ_UZer ©   (20.06.08 01:30) [15]
> Я проверил, да это было при show, а тормозит вот это web.
> Navigate((ExtractFilePath(Application.ExeName))+"temp.html");
> , можно не скромный вопрос,

Убери web.Navigate не дело это делать при запуске.


 
Anatoly Podgoretsky ©   (2008-06-20 10:11) [20]

> ЮЮ  (20.06.2008 9:24:17)  [17]

Какой именно экземпляр?


 
Правильный-Вася   (2008-06-20 11:10) [21]


>  тормозит вот это web.Navigate

ну так сначала браузер загрузиться должен, потом показать страницу, а уж потом твоя форма появится


 
TUserClass   (2008-06-20 11:13) [22]

А Navigate разве не в отдельном потоке выполняется? :)


 
DJ_UZer ©   (2008-06-20 20:23) [23]

TUserClass, похоже нет, придется при работе программы сделать, а без этой строки грузится очень быстро..) Всем спасибо кто помог разобратся!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.045 c
2-1213902315
fedors
2008-06-19 23:05
2008.07.20
Переменная с ПК в КПК на windows mobile


1-1192341690
3Lander
2007-10-14 10:01
2008.07.20
Как вставить справку в прогу


2-1213879626
abhtr
2008-06-19 16:47
2008.07.20
Как отобразить нули, после запятой (в цене) в DBGride


4-1192435518
TIF
2007-10-15 12:05
2008.07.20
Программирование USB


2-1213696529
JS
2008-06-17 13:55
2008.07.20
Округление





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский