Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата Johny777:
только вот вылетала »
Другими словами Insert('\', dir, Length(dir)+1); это тоже самое, что dir := dir + '\';. Написал так, т.к. процедура Insert работает быстрее, а почему вылетела такая ошибка, не знаю...
Цитата Johny777:
исправил (выделил зелёным): »
всё правильно сделали
Цитата Johny777:
форма появляется при таком вот условии »
Если при проверке количества файлов вам не нужно знать их всё количество, то можно подкорректировать функцию именно по вашим условиям:
читать дальше »

Код: Выделить весь код
function GetFileCount(dir: string): Integer;
var
  FindFiles: TFindRec;
begin
  Result := 0;
  if FindFirst(dir + '\*_update.exe', FindFiles) then
    begin
      repeat
        if FindFiles.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
          case FindFiles.Name of
            {#FNames}: Result := Result + 1;
          end;
      until not FindNext(FindFiles) or (Result > 1);
      FindClose(FindFiles);
    end;
end;

Цитата Johny777:
если есть ещё способы по ускорению скорости её работы »
Для увеличения скорости по мере возможности старайтесь меньше обращаться к контролам формы, т.е. загоняйте эти значения в переменные и уже потом работаете с этими переменными.
читать дальше »

Код: Выделить весь код
//////////////////////////////////////////////////////////
  i_portal_russian_gcf: Integer;                       // 25
  dir: string;
begin
  if not Size_Form_Exist then
  begin
    if not Param and not Game_From_INI_Selected then
    begin
      dir := WizardForm.DirEdit.Text;
      half_life_2_russian_gcf := FileExists(dir + '\half-life 2_russian.gcf');
      half_life_2_buka_russian_gcf := FileExists(dir + '\half-life 2 buka russian.gcf');
      half_life_2_2007_base_content_gcf := FileExists(dir + '\half-life 2 2007 base content.gcf');
///////////////////////////////////////////////////////

Для уменьшения количества переменных я бы использовал массивы, а при однообразных вызовах работал через for... to...do. Так же по возможности нужно стараться разгружать InitializeWizard запуская большие расчёты в отдельном потоке.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:50, 08-08-2012 | #563