Показать сообщение отдельно
Старый 08.05.2005, 17:34     # 1
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
Question Delphi. Программа постепенно сжирает всю память.

Программа работает с MSSQL через BDE. Используются TDataBase, TQuery.

Подозреваю вот эту процедурку(выполняется неоднократно):

Код:
procedure TMainForm.GetShortcuts;
var
  i:integer;
begin
  //Чистим иконки
  ShortcutIcons.Clear;
  //Получаем установленные ярлычки
  Query.Close;
  Query.SQL.Clear;
  Query.SQL.Add('SELECT a.AppName, a.AppDescription, ca.AppPath FROM T_Clients_Apps as ca, T_Applications as a WHERE ((ca.App_ID=a.App_ID) AND (ca.ClientNumber='+IntToStr(CompNum)+')) order by a.AppName');
  //Пихаем в массив
  Query.Open;
  SetLength(Shortcuts,0);
  i:=0;
  Query.First;
  while (not Query.Eof) do
  begin
    SetLength(Shortcuts, Length(Shortcuts)+1);
    Shortcuts[i].Name:=Query.FieldByName('AppName').AsString;
    Shortcuts[i].Path:=Query.FieldByName('AppPath').AsString;
    Shortcuts[i].Description:=Query.FieldByName('AppDescription').AsString;
    inc(i);
    Query.Next;
  end;
  //Перерисовываем
  for i:=0 to High(Shortcuts) do
  begin
    GetIcon(Shortcuts[i].Path, 0, ShortcutIcons);
    VShortcuts.AddItem(Shortcuts[i].Name,nil);
    VShortcuts.Items[VShortcuts.Items.Count-1].ImageIndex:=i;
  end;
  VShortcuts.Refresh;
end;
VShortcuts - TListView.
Shortcuts - TShortcuts.
ShortcutIcons - TImageList.

Код:
TPrice = array of record
    TimeStart, TimeEnd: TDateTime;
    Price30, Price60, Price90, Price120, PriceInf: Real;
  end;

  TShortcuts = array of record
    ID : Integer;
    Name: string;
    Path: string;
    Description: string;
    Comp: integer;
    Price: TPrice;
  end;
Если кто знает в чём причина и как бороться - помогите.
Спасибо.
__________________
Это жжжж неспроста...
Sam Dark вне форума